home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c221 / 1.ddi / INC / GDA.H < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-19  |  4.9 KB  |  144 lines

  1. /*----------------------------------------------------------------------------;
  2. ;    NAME:    GDA  -    GLOBAL DATA AREA FOR 386 PROGRAMS              ;
  3. ;  COPYRIGHT:    SOFTGUARD SYSTEMS, INC. 1986, 1987.  ALL RIGHTS RESERVED.     ;
  4. ;----------------------------------------------------------------------------*/
  5. #ifndef _GDA_H
  6. #define _GDA_H
  7. #pragma push_align_members(64);
  8.  
  9. #ifdef __CPLUSPLUS__
  10. extern "C" {
  11. #endif
  12.  
  13. typedef struct {
  14.     char eye[4];             /* EYECATCHER */
  15.     char rlse[4];            /* VMRUN RELEASE LEVEL */
  16.     int prv;                /* LOCATION OF PREVIOUS GDA (FLAT) */
  17.     int nxt;                /* LOCATION OF NEXT GDA (FLAT) */
  18.     int pspa;                /* PSP ADDRESS (FLAT) */
  19.     int pspa6;                /* PSP ADDRESS (OFF:SEG) */
  20.     int pro;                /* PROFILE ADDRESS (FLAT) */
  21.     int ldpt;                /* APPLICATION START ADDR (FLAT) */
  22.  
  23.     struct {             /* POINTER TO 256 ENTRY TABLE */
  24.     void *before;        /* . FOR HIGH INTERCEPTS */
  25.     void *after;        /* . ENTRIES ARE: */
  26.                 /* . DD FLAT ADDRESS OF "BEFORE" ROUTINE */
  27.     } *hint;            /* .. DD FLAT ADDRESS OF "AFTER" ROUTINE */
  28.  
  29.     int hint_reserved;         /* RESERVED */
  30.  
  31.     struct {             /* POINTER TO 32 ENTRY TABLE */
  32.     void *flat;         /* .. FOR INTEL INTERCEPTS */
  33.     char count;         /* .. ENTRIES ARE: */
  34.     char dup[3];         /* .. DD FLAT ADDRESS */
  35.     } *intel;         /* .. DB PARAMETER COUNT (DWORDS) */
  36.                 /* .. DB 3 DUP(0) RESERVED */
  37.  
  38.     char irq0[2];           /* SOFT INTS FOR IRQ'S 0-7 */
  39.     char irq8[2];        /* SOFT INTS FOR IRQ'S 8-F */
  40.  
  41.     int serv;            /* POINTER TO SERVICE ROUTINE (FLAT) */
  42.     int ldcsel;            /* APPLICATION CODE SELECTOR */
  43.     int lddsel;            /* APPLICATION DATA SELECTOR */
  44.     int hmem;            /* TOTAL AVAILABLE HIGH MEMORY IN K'S */
  45.     int lmem;            /* TOTAL AVAILABLE LOW MEMORY IN K'S */
  46.     int tstg;            /* TOTAL STORAGE IN K'S */
  47.     int vstk;            /* A LOW STACK FOR V86 INTS (FLAT) */
  48.     int vstk6;            /* A LOW STACK FOR V86 INTS (OFF:SEG) */
  49.     int hlod;            /* HIGHEST USED LOAD ADDRESS */
  50.                 /*  THIS VALUE WILL BE EITHER THE */
  51.                 /*  TOP OF THE 386 PROGRAM */
  52.                 /*  OR THE TOP OF AN APPENDED STACK */
  53.  
  54.     int tlow;            /* HIGHEST USED LOW ADDRESS */
  55.                 /*  THIS VALUE CAN BE USED FOR */
  56.                 /*  FREEBLOCK REQUESTS */
  57.  
  58.     int lbuff;            /* ADDRESS OF USER LOW BUFFER (FLAT)*/
  59.     int lbuff6;            /* ADDRESS OF USER LOW BUFFER (OFF:SEG) */
  60.     int buffsz;            /* SIZE OF LOW BUFFER IN K'S */
  61.  
  62.     int work;            /* PTR TO USER LOW WORK AREA (FLAT) */
  63.     int work6;            /* PTR TO USER LOW WORK AREA (OFF:SEG) */
  64.     int worksz;            /* LENGTH OF USER WORK AREA IN BYTES */
  65.  
  66.     int stk;            /* PTR TO STACK (FLAT) */
  67.     int stksz;            /* LENGTH OF STACK IN K'S */
  68.     int mstksz;            /* MAX LENGTH OF STACK IN K'S */
  69.  
  70.     int vbuff;            /* PTR TO VM LOW BUFFERS (FLAT) */
  71.     int vbuff6;         /* PTR TO VM LOW BUFFERS (OFF:SEG) */
  72.     int vbuffsz;         /* LENGTH OF VM BUFFERS (MAX) IN K'S */
  73.  
  74.     int vwrk;             /* PTR TO VM LOW WORK AREA (FLAT) */
  75.     int vwrk6;             /* PTR TO VM LOW WORK AREA (OFF:SEG) */
  76.     int vwrksz;         /* LENGTH OF VM WORK AREA IN BYTES */
  77.  
  78.     int dta;             /* LOW DTA PTR (FLAT) */
  79.     int dta6;             /* LOW DTA PTR (OFF:SEG) */
  80.     int dtasz;            /* LOW DTA SIZE (MAXIMUM) IN BYTES */
  81.     int dtasz_reserved;     /* ...RESERVED */
  82.  
  83.     int asy;            /* LOCATION OF ASYNCH PROFILE (FLAT) */
  84.     int asy6;            /* LOCATION OF ASYNCH PROFILE (OFF:SEG) */
  85.  
  86.     int vmb;            /* LOCATION OF VMLD (FLAT) */
  87.     int vmb6;            /* LOCATION OF VMLD (OFF:SEG) */
  88.  
  89.     char stov;            /* ACTION ON STACK OVERFLOW */
  90.                 /*  E=EXPAND */
  91.                 /*  Q=QUIT */
  92.                 /*  D=DEBUG */
  93.  
  94.     char dpl;            /*  DPL */
  95.     char iop;            /*  IOPL */
  96.     char iop_reserved;        /*  ...RESERVED */
  97.  
  98.                 /*  DEBUG OPTIONS FOR APPLICATIONS */
  99.     char p_asy;            /*  ASYNCH DEBUGGER OPTION */
  100.                 /*  Y=YES N=NO */
  101.     char dbg;            /*  INITIAL BREAKPOINT FOR DEBUG */
  102.                 /*  Y=YES N=NO */
  103.     char dbg_reserved[2];    /*  ...RESERVED */
  104.     int dbp;            /*  INITIAL BREAKPOINT VALUE FOR DEBUG */
  105.  
  106.     int trace;             /*  LOCATION OF TRACE TABLE */
  107.  
  108.     int symh;             /* LOCATION OF SYMBOL TABLE HEADER */
  109.     int  symsz;         /* LEN OF SYMBOL TABLE-EXCLUDE WORD AREA */
  110.     int swk;             /* LOCATION OF SYMBOL TABLE WORK AREA */
  111.     int swksz;             /* LEN OF SYMBOL TABLE WORK AREA */
  112.  
  113.     char nmi;             /* ..V=V86, D=DEBUG */
  114.     char rmp;             /* ..Y=YES N=NO */
  115.     char ttb;             /* ..Y=YES N=NO */
  116.     char com;             /* ..1 OR 2 */
  117.     char sym;             /* ..Y=YES N=NO */
  118.     char hpl;             /* ..Y=YES N=NO */
  119.     char hpl_reserved[2];    /* RESERVED FOR FUTURE USE */
  120.  
  121.     int vstksz;            /* SIZE OF LOW STACK FOR V86 INTS */
  122.     int vstksz_reserved[12];    /* .. */
  123.  
  124.     int r1;            /*  RESERVED FOR SOFTGUARD */
  125.     int r2;             /*  .. */
  126.     int r3;             /*  .. */
  127.     int r4;             /*  .. */
  128.  
  129.     int u1;             /*  RESERVED FOR USER */
  130.     int u2;             /*  .. */
  131.     int u3;             /*  .. */
  132.     int u4;             /*  .. */
  133.     int u5;             /*  .. */
  134.     int u6;             /*  .. */
  135.     int u7;             /*  .. */
  136.     int u8;             /*  .. */
  137.     } GDA;
  138. #ifdef __CPLUSPLUS__
  139. }
  140. #endif
  141.  
  142. #pragma pop_align_members();
  143. #endif
  144.