home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / DEF.ZIP / DEF.H < prev    next >
Text File  |  1989-11-24  |  5KB  |  110 lines

  1. /*****************************************************************************
  2.  
  3.    NAME:          DEF.C
  4.  
  5.    DESCRIPTION:   This is the header file for the def application.
  6.  
  7. *****************************************************************************/
  8.  
  9. /*****************************************************************************
  10.                            T Y P E D E F S
  11. *****************************************************************************/
  12.  
  13. typedef struct _OLD_EXE
  14. {
  15.    unsigned short magic;               /* magic number */
  16.    unsigned short cblp;                /* bytes on last page of file */
  17.    unsigned short cp;                  /* pages in file  */
  18.    unsigned short crlc;                /* relocations */
  19.    unsigned short cparhdr;             /* size of header in paragraphs */
  20.    unsigned short minalloc;            /* minimum extra paragraphs needed */
  21.    unsigned short maxalloc;            /* maximum extra paragraphs needed */
  22.    unsigned short ss;                  /* initial SS value */
  23.    unsigned short sp;                  /* initial SP value */
  24.    unsigned short csum;                /* checksum */
  25.    unsigned short cs;                  /* initial CS value */
  26.    unsigned short ip;                  /* initial IP value */
  27.    unsigned short lfarlc;              /* file address of relocation table */
  28.    unsigned short ovno;                /* overlay number */
  29.    unsigned short res[4];      
  30.    unsigned short oemid;               /* OEM identifier */
  31.    unsigned short oeminfo;             /* OEM information */
  32.    unsigned short res2[10];     
  33.    unsigned long  lfanew;              /* file address of new exe header */
  34. } OLD_EXE;
  35.  
  36. typedef struct _NEW_EXE
  37. {
  38.    unsigned short magic;               /* magic number */
  39.    unsigned char  ver;                 /* version number */
  40.    unsigned char  rev;                 /* revision number */
  41.    unsigned short enttab;              /* offset of entry table */
  42.    unsigned short cbenttab;            /* number o bytes in entry table */
  43.    unsigned long  crc;                 /* checksum of whole file */
  44.    unsigned short flags;               /* flag word */
  45.    unsigned short autodata;            /* automatic data segment number */
  46.    unsigned short heap;                /* initial heap allocation */
  47.    unsigned short stack;               /* initial stack allocation */
  48.    unsigned short ip;                  /* initial IP setting */
  49.    unsigned short cs;                  /* initial CS setting */
  50.    unsigned short sp;                  /* initial SP setting */
  51.    unsigned short ss;                  /* initial SS setting */
  52.    unsigned short cseg;                /* count of file segments */
  53.    unsigned short cmod;                /* entries in module reference table */
  54.    unsigned short cbnrestab;           /* size of non-resident name table */
  55.    unsigned short segtab;              /* offset of segment table */
  56.    unsigned short rsrctab;             /* offset of resource table */
  57.    unsigned short restab;              /* offset of resident name table */
  58.    unsigned short modtab;              /* offset of module reference table */
  59.    unsigned short imptab;              /* offset of imported names table */
  60.    unsigned long  nrestab;             /* offset of non-resident names table */
  61.    unsigned short cmovent;             /* count of moveable entries */
  62.    unsigned short calign;              /* segment alignment shift count */
  63.    unsigned short cres;                /* count of resource entries */
  64.    unsigned char  exetyp;              /* target operating system */
  65. } NEW_EXE;
  66.  
  67. typedef struct _NEW_SEG
  68. {
  69.    unsigned short sector;              /* file sector of start of segment */
  70.    unsigned short cbseg;               /* number of bytes in segment */
  71.    unsigned short flags;               /* attribute flags */
  72.    unsigned short minalloc;            /* minimum allocation in bytes */
  73. } NEW_SEG, *PNEW_SEG;
  74.  
  75. typedef struct _IMP_ORD                /* import ordinal reloc entry */
  76. {
  77.    unsigned char type;                 /* type of relocation */
  78.    unsigned char id;                   /* type of entry */
  79.    unsigned short offset;              /* offset to item within segment */
  80.    unsigned short index;               /* index to module reference table */
  81.    unsigned short ordinal;             /* ordinal number */
  82. } IMP_ORD, *PIMP_ORD;
  83.  
  84. typedef struct _INFO_TBL
  85. {
  86.    ATOM     atomName;
  87.    SEL      selRestab;
  88.    SEL      selNRestab;
  89.    CHAR     *restab;
  90.    CHAR     *nrestab;
  91.    USHORT   restab_size;
  92.    USHORT   nrestab_size;
  93. } INFO_TBL, *PINFO_TBL;
  94.  
  95. /*****************************************************************************
  96.                          P R O T O T Y P E S 
  97. *****************************************************************************/
  98.  
  99. void main(USHORT argc, CHAR *argv[]);
  100. void getstring(CHAR *table, USHORT num, CHAR *buf);
  101. void error_exit(USHORT err, CHAR *msg, USHORT line, CHAR *file);
  102. VOID CreateTable(HFILE hf, USHORT size, ULONG offset, CHAR **table, PSEL sel);
  103. PNEW_SEG getsegment(PNEW_SEG table, USHORT num);
  104. VOID BuildImportedInfoTable(VOID);
  105. VOID GetDLLTables(PINFO_TBL pInfo, CHAR *szTmp);
  106. VOID FreeImportedInfoTable(VOID);
  107. CHAR *TableLookup(CHAR *szName, USHORT ordinal);
  108.  
  109.  
  110.