|
|
1.1 ! root 1: /*++ ! 2: ! 3: ! 4: Copyright (c) 1992 Microsoft Corporation ! 5: ! 6: Module Name: ! 7: ! 8: cv.h ! 9: ! 10: Abstract: ! 11: ! 12: This file contains all of the type definitions for accessing ! 13: CODEVIEW data. ! 14: ! 15: Author: ! 16: ! 17: Wesley A. Witt (wesw) 19-April-1993 ! 18: ! 19: Environment: ! 20: ! 21: Win32, User Mode ! 22: ! 23: --*/ ! 24: #include <cvtypes.h> ! 25: #include <cvinfo.h> ! 26: #include <cvexefmt.h> ! 27: ! 28: // Global Segment Info table ! 29: typedef struct _sgf { ! 30: unsigned short fRead :1; ! 31: unsigned short fWrite :1; ! 32: unsigned short fExecute:1; ! 33: unsigned short f32Bit :1; ! 34: unsigned short res1 :4; ! 35: unsigned short fSel :1; ! 36: unsigned short fAbs :1; ! 37: unsigned short res2 :2; ! 38: unsigned short fGroup :1; ! 39: unsigned short res3 :3; ! 40: } SGF; ! 41: ! 42: typedef struct _sgi { ! 43: SGF sgf; // Segment flags ! 44: unsigned short iovl; // Overlay number ! 45: unsigned short igr; // Group index ! 46: unsigned short isgPhy; // Physical segment index ! 47: unsigned short isegName; // Index to segment name ! 48: unsigned short iclassName; // Index to segment class name ! 49: unsigned long doffseg; // Starting offset inside physical segment ! 50: unsigned long cbSeg; // Logical segment size ! 51: } SGI; ! 52: ! 53: typedef struct _sgm { ! 54: unsigned short cSeg; // number of segment descriptors ! 55: unsigned short cSegLog; // number of logical segment descriptors ! 56: } SGM; ! 57: ! 58: #define FileAlign(x) ( ((x) + p->optrs.optHdr->FileAlignment - 1) & \ ! 59: ~(p->optrs.optHdr->FileAlignment - 1) ) ! 60: #define SectionAlign(x) (((x) + p->optrs.optHdr->SectionAlignment - 1) & \ ! 61: ~(p->optrs.optHdr->SectionAlignment - 1) ) ! 62: ! 63: #define NextSym32(m) ((DATASYM32 *) \ ! 64: (((DWORD)(m) + sizeof(DATASYM32) + \ ! 65: ((DATASYM32*)(m))->name[0] + 3) & ~3)) ! 66: ! 67: #define NextSym16(m) ((DATASYM16 *) \ ! 68: (((DWORD)(m) + sizeof(DATASYM16) + \ ! 69: ((DATASYM16*)(m))->name[0] + 1) & ~1))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.