home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / borhead.zip / EXE.H < prev    next >
C/C++ Source or Header  |  1994-11-09  |  3KB  |  87 lines

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