source: trunk/tools/dbginfo/hll.h@ 3265

Last change on this file since 3265 was 3248, checked in by bird, 26 years ago

Removed ulReserved from HLLHDR.
ulReserved from HLLDIR is two shorts, cb and cbEntry.

File size: 4.3 KB
Line 
1/* $Id: hll.h,v 1.4 2000-03-27 12:36:17 bird Exp $
2 *
3 * HLL definitions.
4 *
5 * Copyright (c) 2000 knut st. osmundsen (knut.stange.osmundsen@pmsc.no)
6 *
7 * Project Odin Software License can be found in LICENSE.TXT
8 *
9 */
10#ifndef _HLL_h_
11#define _HLL_h_
12
13#pragma pack(1)
14
15
16/*******************************************************************************
17* Defined Constants And Macros *
18*******************************************************************************/
19
20/*
21 * HLL Directory entry types.
22 */
23#define HLL_DE_MODULES 0x0101 /* Filename */
24#define HLL_DE_PUBLICS 0x0102 /* Public symbols */
25#define HLL_DE_TYPES 0x0103 /* Types */
26#define HLL_DE_SYMBOLS 0x0104 /* Symbols */
27#define HLL_DE_LIBRARIES 0x0106 /* Libraries */
28#define HLL_DE_SRCLINES 0x0105 /* Line numbers - (IBM C/2 1.1) */
29#define HLL_DE_SRCLNSEG 0x0109 /* Line numbers - (MSC 6.00) */
30#define HLL_DE_IBMSRC 0x010B /* Line numbers - (IBM HLL) */
31
32
33/*
34 * HLL Module debug style
35 */
36#define HLL_MOD_STYLE 0x4C48 /* 'HL' */
37
38
39/*
40 * HLL Public symbol wide flag.
41 */
42#define HLL_PFS_WIDE 0x6e /* Wide flag. */
43
44
45
46/*******************************************************************************
47* Structures and Typedefs *
48*******************************************************************************/
49
50/*
51 * HLL Header
52 */
53typedef struct _HLLHdr
54{
55 unsigned char achSignature[4]; /* LX Debug Info Signature, 'NB04' */
56 unsigned long offDirectory; /* Offset to the HLL Directory.
57 * (Relative to start of this header.) */
58} HLLHDR, *PHLLHDR;
59
60
61/*
62 * HLL Directory Entry.
63 */
64typedef struct _HLLDirEntry
65{
66 unsigned short usType; /* Entry type. HLL_DE_* flag. */
67 unsigned short iMod; /* Module number data applies to. */
68 unsigned long off; /* Offset to data. This is based at
69 * the start of the start of the debug
70 * info. */
71 unsigned long cb; /* Size of data. */
72} HLLDIRENTRY, *PHLLDIRENTRY;
73
74
75
76/*
77 * HLL Directory.
78 */
79typedef struct _HLLDirectory
80{
81 unsigned short cb; /* Size of this struct (minus aEntries)
82 * / offset of aEntries relative to start of this structure. */
83 unsigned short cbEntry; /* Size of the directory entries (HLLDIRENTRY). */
84 unsigned long cEntries; /* Count of directory entires. */
85 HLLDIRENTRY aEntries[1]; /* Directory. */
86} HLLDIR, *PHLLDIR;
87
88
89/*
90 * HLL Segment
91 */
92typedef struct _HLLSegInfo
93{
94 unsigned short iObject; /* LX Object number. */
95 unsigned long off; /* Offset into the load image. */
96 unsigned long cb; /* Object length. */
97} HLLSEGINFO, *PHLLSEGINFO;
98
99
100/*
101 * HLL Module (file)
102 */
103typedef struct _HLLModule
104{
105 HLLSEGINFO SegInfo0; /* Segment info entry 0. */
106 unsigned short overlay; /* unused. */
107 unsigned short iLib; /* Library number it came from. */
108 unsigned char cSegInfo; /* Number of segment info entries. */
109 unsigned char pad; /* 1 byte padding. */
110 unsigned short usDebugStyle; /* Debug style -'HL' */
111 unsigned char chVerMinor; /* HLL version - minor number. */
112 unsigned char chVerMajor; /* HLL version - major number. */
113 unsigned char cchName; /* Filename length. */
114 unsigned char achName[1]; /* Filename. (*) */
115 /* HLLSEGINFO aSegInfo[] */ /* Array of segment info, starting with entry 1. (Starts at achName[cchName]) */
116} HLLMODULE, *PHLLMODULE;
117
118
119/*
120 * HLL Public Symbols
121 */
122typedef struct _HLLPublicSymbol
123{
124 unsigned long off; /* 32-bit offset (into the LX object) of the symbol location. */
125 unsigned short iObject; /* LX Object number. */
126 unsigned short iType; /* Symbol type index (into the type info data). */
127 unsigned char cchName; /* Size of name. */
128 unsigned char achName[1]; /* Name (*) */
129} HLLPUBLICSYM, *PHLLPUBLICSYM;
130
131
132
133
134
135#pragma pack()
136
137#endif
Note: See TracBrowser for help on using the repository browser.