|
|
1.1 root 1: /*
2: * InfoSeg Data Structures
3: */
4:
5: /*
6: * The structure below defines the content and organization of the system
7: * information segment (InfoSeg). The actual table is statically defined in
8: * SDATA.ASM and the read-only ring 3 selector is defined in the GDT table
9: * in the same file. Ring 0, read/write access is obtained by the clock
10: * device driver using the DevHlp GetDOSVar function.
11: */
12:
13: struct InfoSegGDT
14: {
15:
16: /* Time */
17:
18: unsigned long BigTime ; /* Time from 1-1-1970 in seconds */
19: unsigned long MsCount ; /* Freerunning milliseconds counter */
20: unsigned char HrsTime ; /* Hours */
21: unsigned char MinTime ; /* Minutes */
22: unsigned char SecTime ; /* Seconds */
23: unsigned char HunTime ; /* Hundredths of seconds */
24: unsigned short TimeZone ; /* Timezone in min from GMT (Set to EST) */
25: unsigned short ClkIntrvl ; /* Timer interval (units=0.0001 secs) */
26:
27: /* Date */
28:
29: unsigned char DayDate ; /* Day-of-month (1-31) */
30: unsigned char MonDate ; /* Month (1-12) */
31: unsigned short YrsDate ; /* Year (>= 1980) */
32: unsigned char DOWDate ; /* Day-of-week (1-1-80 = Tues = 3) */
33:
34: /* Version */
35:
36: unsigned char VerMajor ; /* Major version number */
37: unsigned char VerMinor ; /* Minor version number */
38: unsigned char RevLettr ; /* Revision letter */
39:
40: /* System Status */
41:
42: unsigned char CurScrnGrp ; /* Current screen group */
43: unsigned char MaxScrnGrp ; /* Maximum number of screen groups */
44: unsigned char HugeShfCnt ; /* Shift count for huge segments */
45: unsigned char ProtMdOnly ; /* Protect-mode-only indicator */
46: unsigned short FgndPID ; /* Foreground process ID */
47:
48: /* Scheduler Parms */
49:
50: unsigned char Dynamic ; /* Dynamic variation flag (1=enabled) */
51: unsigned char MaxWait ; /* Maxwait (seconds) */
52: unsigned short MinSlice ; /* Minimum timeslice (milliseconds) */
53: unsigned short MaxSlice ; /* Maximum timeslice (milliseconds) */
54:
55: /* Boot Drive */
56:
57: unsigned short BootDrv ; /* Drive from which system was booted */
58:
59: /* RAS Major Event Code Table */
60:
61: unsigned char mec_table[32]; /* Table of RAS Major Event Codes (MECs) */
62:
63: } ;
64:
65:
66:
67: /*
68: * InfoSeg LDT Data Segment Structure
69: *
70: * The structure below defines the content and organization of the system
71: * information in a special per-process segment to be accessable by the
72: * process through the LDT (read-only).
73: */
74:
75: struct InfoSegLDT
76: {
77:
78: unsigned short CurProcID ; /* Current process ID */
79: unsigned short ParProcID ; /* Process ID of parent */
80: unsigned short CurThrdPri ; /* Current thread priority */
81: unsigned short CurThrdID ; /* Current thread ID */
82: unsigned short CurScrnGrp ; /* Screengroup */
83: unsigned short SubScrnGrp ; /* Subscreen group */
84: unsigned short Fgnd ; /* Current process is in foreground */
85:
86: } ;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.