2004-11-27 Casper S. Hornstrup <chorns@users.sourceforge.net>
[reactos.git] / reactos / include / ntos / kdbgsyms.h
1
2 #ifndef __KDBGSYMS_H
3 #define __KDBGSYMS_H
4
5 #include <ddk/ntddk.h>
6
7 #define ST_FILENAME 0x00
8 #define ST_FUNCTION 0x01
9 #define ST_LINENUMBER 0x02
10
11 typedef struct _SYMBOL
12 {
13 struct _SYMBOL *Next;
14 /* Address relative to module base address */
15 ULONG RelativeAddress;
16 ULONG SymbolType;
17 ANSI_STRING Name;
18 ULONG LineNumber;
19 } SYMBOL, *PSYMBOL;
20
21 typedef struct _SYMBOL_TABLE
22 {
23 ULONG SymbolCount;
24 PSYMBOL Symbols;
25 } SYMBOL_TABLE, *PSYMBOL_TABLE;
26
27 typedef struct _IMAGE_SYMBOL_INFO
28 {
29 SYMBOL_TABLE FileNameSymbols;
30 SYMBOL_TABLE FunctionSymbols;
31 SYMBOL_TABLE LineNumberSymbols;
32 ULONG_PTR ImageBase;
33 ULONG_PTR ImageSize;
34 PVOID FileBuffer;
35 PVOID SymbolsBase;
36 ULONG SymbolsLength;
37 PVOID SymbolStringsBase;
38 ULONG SymbolStringsLength;
39 } IMAGE_SYMBOL_INFO, *PIMAGE_SYMBOL_INFO;
40
41 #define AreSymbolsParsed(si)((si)->FileNameSymbols.Symbols \
42 || (si)->FunctionSymbols.Symbols \
43 || (si)->LineNumberSymbols.Symbols)
44
45 #endif