|
|
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.