home *** CD-ROM | disk | FTP | other *** search
/ The Developer Connection…ice Driver Kit for OS/2 3 / DEV3-D1.ISO / devtools / os2tk21j / c / os2h / exe.h__ / exe.h
Encoding:
C/C++ Source or Header  |  1993-03-12  |  3.1 KB  |  81 lines

  1. /*static char *SCCSID = "@(#)exe.h    6.3 92/03/15";*/
  2. /*static char *SCCSID = "@(#)exe.h    6.3 92/03/15";*/
  3. /****************************** Module Header ******************************\
  4. *                                                                          *
  5. * Copyright (c) 1987  - 1992 IBM Corporation                               *
  6. *                                                                          *
  7. * Module Name: EXE.H                                                       *
  8. *                                                                          *
  9. * EXE header format.                                                       *
  10. *                                                                          *
  11. \***************************************************************************/
  12.  
  13. #ifdef __IBMC__
  14. #pragma checkout( suspend )
  15.    #ifndef __CHKHDR__
  16.       #pragma checkout( suspend )
  17.    #endif
  18. #pragma checkout( resume )
  19. #endif
  20.  
  21. #ifndef __EXE__
  22. #define __EXE__
  23.  
  24. #ifndef BYTE
  25. typedef unsigned char BYTE;
  26. #endif
  27.  
  28. #ifndef WORD
  29. typedef unsigned short WORD;
  30. #endif
  31.  
  32. typedef WORD bbmask;
  33.  
  34. struct exe {
  35.         WORD eid;                       /* contains EXEID, below */
  36.         WORD elast;                     /* # of bytes in last page */
  37.         WORD epagsiz;                   /* # of pages in whole file */
  38.         WORD erelcnt;                   /* # of relocation entrys */
  39.         WORD ehdrsiz;                   /* size of header, in paragraphs */
  40.         WORD eminfre;                   /* min # of free paragraphs needed */
  41.         WORD emaxfre;                   /* max # of free paragraphs needed */
  42.         WORD eiSS;                      /* initial SS value */
  43.         WORD eiSP;                      /* initial SP value */
  44.         WORD enegsum;                   /* negative sum of entire file */
  45.         WORD eiIP;                      /* initial IP value */
  46.         WORD eiCS;                      /* initial CS value */
  47.         WORD ereloff;                   /* offset in file of relocation table */
  48.         WORD eovlnum;                   /* number of the overlay */
  49.  
  50. /*      the following fields may not be present.
  51.  *              ereloff = 28            not present
  52.  *                      = 30            exe.ever present and valid
  53.  *                      = 32            exe.ever field contains garbage
  54.  *              ereloff > 32            exe.ever present and valid
  55.  *                                              = 0 if "don't know"
  56.  */
  57.  
  58.         WORD ever;                      /* version # of producing linker */
  59.         WORD dumy;                      /* unused */
  60.  
  61. /*      the following fields may not be present - if the exe.ereloff
  62.  *      value encompasses the fields then they are present and valid.
  63.  */
  64.  
  65.         bbmask  ebb;                    /* behavior bits */
  66.         WORD dumy2[7];                  /* must be 0 until defined */
  67. };
  68.  
  69.  
  70. #define EXEID 0x5a4d                    /* magic ID value */
  71.  
  72. #endif /* __EXE__ */
  73.  
  74. #ifdef __IBMC__
  75. #pragma checkout( suspend )
  76.    #ifndef __CHKHDR__
  77.       #pragma checkout( resume )
  78.    #endif
  79. #pragma checkout( resume )
  80. #endif
  81.