|
|
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.