|
|
Microsoft OS/2 SDK 12-15-1987
/*
* InfoSeg Data Structures
*/
/*
* The structure below defines the content and organization of the system
* information segment (InfoSeg). The actual table is statically defined in
* SDATA.ASM and the read-only ring 3 selector is defined in the GDT table
* in the same file. Ring 0, read/write access is obtained by the clock
* device driver using the DevHlp GetDOSVar function.
*/
struct InfoSegGDT
{
/* Time */
unsigned long BigTime ; /* Time from 1-1-1970 in seconds */
unsigned long MsCount ; /* Freerunning milliseconds counter */
unsigned char HrsTime ; /* Hours */
unsigned char MinTime ; /* Minutes */
unsigned char SecTime ; /* Seconds */
unsigned char HunTime ; /* Hundredths of seconds */
unsigned short TimeZone ; /* Timezone in min from GMT (Set to EST) */
unsigned short ClkIntrvl ; /* Timer interval (units=0.0001 secs) */
/* Date */
unsigned char DayDate ; /* Day-of-month (1-31) */
unsigned char MonDate ; /* Month (1-12) */
unsigned short YrsDate ; /* Year (>= 1980) */
unsigned char DOWDate ; /* Day-of-week (1-1-80 = Tues = 3) */
/* Version */
unsigned char VerMajor ; /* Major version number */
unsigned char VerMinor ; /* Minor version number */
unsigned char RevLettr ; /* Revision letter */
/* System Status */
unsigned char CurScrnGrp ; /* Current screen group */
unsigned char MaxScrnGrp ; /* Maximum number of screen groups */
unsigned char HugeShfCnt ; /* Shift count for huge segments */
unsigned char ProtMdOnly ; /* Protect-mode-only indicator */
unsigned short FgndPID ; /* Foreground process ID */
/* Scheduler Parms */
unsigned char Dynamic ; /* Dynamic variation flag (1=enabled) */
unsigned char MaxWait ; /* Maxwait (seconds) */
unsigned short MinSlice ; /* Minimum timeslice (milliseconds) */
unsigned short MaxSlice ; /* Maximum timeslice (milliseconds) */
/* Boot Drive */
unsigned short BootDrv ; /* Drive from which system was booted */
/* RAS Major Event Code Table */
unsigned char mec_table[32]; /* Table of RAS Major Event Codes (MECs) */
} ;
/*
* InfoSeg LDT Data Segment Structure
*
* The structure below defines the content and organization of the system
* information in a special per-process segment to be accessable by the
* process through the LDT (read-only).
*/
struct InfoSegLDT
{
unsigned short CurProcID ; /* Current process ID */
unsigned short ParProcID ; /* Process ID of parent */
unsigned short CurThrdPri ; /* Current thread priority */
unsigned short CurThrdID ; /* Current thread ID */
unsigned short CurScrnGrp ; /* Screengroup */
unsigned short SubScrnGrp ; /* Subscreen group */
unsigned short Fgnd ; /* Current process is in foreground */
} ;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.