|
| | | | D O S _ F D R _ M A I N
| | | | | SOURCE: qdev_structures.txt 1.10 (15/08/2014) English struct dos_fdr_main
{
void *fm_cluster;
struct MinList fm_chanlist;
struct MinList fm_clilist;
struct dos_fdr_chan *fm_chandef;
LONG fm_chancount;
LONG fm_fdtotal;
LONG fm_clitotal;
LONG fm_fdcheck;
UBYTE *fm_devname;
LONG fm_flushreq;
LONG fm_flushcnt;
LONG fm_flushnum;
struct DosList *fm_dol;
struct DosPacket *fm_dp;
struct timerequest fm_treq;
void *fm_gluefp;
};
fm_cluster
- Memory cluster where all the clients live. Consider this memory
pool where each allocation is of fixed size, requires no global
arbitration and is incredibly fast upon chunk request.
fm_chanlist
- A list of all channels created so far on this descriptor relay.
fm_clilist
- A list of all descriptor relay clients/callers.
fm_chandef
- So called default channel when calling by "*" or "CONSOLE:". It
can be set/changed at any point. By default there is no default
channel but when called a "NULL" channel is created.
fm_chancount
- Total number of channels created and maintained. This count can
decrease in case channel-self-termination-when-no-clients was
set.
fm_fdtotal
- Total number of all file descriptors handled right now.
fm_clitotal
- Total number of clients/callers linked to the descriptor relay.
fm_fdcheck
- Reference address used to check against each FileHandle. This
in particular is fh_Func1.
fm_devname
- This member points at the device name. The name is colonless.
fm_flushreq
- After how many addressed channel calls, dead channels(marked as
killable when no client) should be flushed.
fm_fluchcnt
- Current addressed channel access count. This wraps at crca 255!
fm_flushnum
- Number of channels that were removed at this time. This is only
useful when debugging.
fm_dol - This Doslist pointer is here just to make inter-function access
quicker. It really points at the device node!
fm_dp - Main DOS packet pointer, also here to make it all look simplier
when dealing with nested calls.
fm_treq - This is not a primary timer request space as you may have
guessed. It is only a template that gets copied per instance!
fm_gluefp
- Standalone packet glue I/O, a real interrupt function that
gets loaded from separate segment! This function is responsible
for fh_Arg1 injection into dp_Res2, so that all packets are
fully operational from a single process.
| |
| | | | |
|