ReactOS  0.4.14-dev-114-gc8cbd56
rossym.h
Go to the documentation of this file.
1 /*
2  * COPYRIGHT: See COPYING in the top level directory
3  * PROJECT: ReactOS kernel
4  * FILE: include/reactos/rossym.h
5  * PURPOSE: Handling of rossym symbol info
6  *
7  * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com)
8  */
9 
10 #ifndef REACTOS_ROSSYM_H_INCLUDED
11 #define REACTOS_ROSSYM_H_INCLUDED
12 
13 #define ROSSYM_SECTION_NAME ".rossym"
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 typedef struct _ROSSYM_HEADER {
20  unsigned long SymbolsOffset;
21  unsigned long SymbolsLength;
22  unsigned long StringsOffset;
23  unsigned long StringsLength;
25 
26 typedef struct _ROSSYM_ENTRY {
32 
42 
59 };
60 
61 typedef struct _ROSSYM_REGISTERS {
64 
65 typedef struct _ROSSYM_PARAMETER {
67  char *ValueName;
69 
70 typedef enum _ROSSYM_LINEINFO_FLAGS {
73 
74 typedef enum _ROSSYM_LINEINFO_TYPE {
82 
83 typedef struct _ROSSYM_LINEINFO {
86  char *FileName;
87  char *FunctionName;
92 
93 typedef struct _ROSSYM_AGGREGATE_MEMBER {
99 
100 typedef struct _ROSSYM_AGGREGATE {
104 
105 typedef struct _ROSSYM_CALLBACKS {
112 
113 #ifdef __ROS_DWARF__
114 typedef struct _ROSSYM_OWN_FILECONTEXT {
115  BOOLEAN (*ReadFileProc)(PVOID FileContext, PVOID Buffer, ULONG Size);
116  BOOLEAN (*SeekFileProc)(PVOID FileContext, ULONG_PTR Position);
117 } ROSSYM_OWN_FILECONTEXT, *PROSSYM_OWN_FILECONTEXT;
118 
119 struct Dwarf;
120 typedef struct Dwarf *PROSSYM_INFO;
121 #else
122 typedef struct _ROSSYM_INFO *PROSSYM_INFO;
123 #endif
124 
126 #ifndef __ROS_DWARF__
128 #endif
130 
132  PROSSYM_INFO *RosSymInfo);
133 BOOLEAN RosSymCreateFromMem(PVOID ImageStart, ULONG_PTR ImageSize,
134  PROSSYM_INFO *RosSymInfo);
137 VOID RosSymGetRawData(PROSSYM_INFO RosSymInfo, PVOID RawData);
138 #ifdef __ROS_DWARF__
140  ULONG_PTR RelativeAddress,
141  PROSSYM_LINEINFO RosSymLineInfo);
142 #else
144  ULONG_PTR RelativeAddress,
145  ULONG *LineNumber,
146  char *FileName,
147  char *FunctionName);
148 #endif
149 VOID RosSymFreeInfo(PROSSYM_LINEINFO RosSymLineInfo);
150 VOID RosSymDelete(PROSSYM_INFO RosSymInfo);
151 BOOLEAN
154 
155 #ifdef __cplusplus
156 }
157 #endif
158 
159 #endif /* REACTOS_ROSSYM_H_INCLUDED */
160 
161 /* EOF */
162 
signed char * PCHAR
Definition: retypes.h:7
ULONG SourceLine
Definition: rossym.h:30
VOID RosSymInitKernelMode(VOID)
Definition: initkm.c:32
_ROSSYM_REGNAME
Definition: rossym.h:33
Type
Definition: Type.h:6
BOOLEAN RosSymCreateFromRaw(PVOID RawData, ULONG_PTR DataSize, PROSSYM_INFO *RosSymInfo)
Definition: fromraw.c:19
struct _ROSSYM_HEADER * PROSSYM_HEADER
VOID RosSymFreeInfo(PROSSYM_LINEINFO RosSymLineInfo)
Definition: dwarfpc.c:398
char * FileName
Definition: rossym.h:86
VOID RosSymInitUserMode(VOID)
Definition: initum.c:29
static COORD Position
Definition: mouse.c:34
BOOLEAN RosSymCreateFromMem(PVOID ImageStart, ULONG_PTR ImageSize, PROSSYM_INFO *RosSymInfo)
Definition: frommem.c:20
VOID RosSymDelete(PROSSYM_INFO RosSymInfo)
Definition: delete.c:16
BOOLEAN RosSymAggregate(PROSSYM_INFO RosSymInfo, PCHAR Type, PROSSYM_AGGREGATE Aggregate)
Definition: find.c:137
BOOLEAN RosSymCreateFromFile(PVOID FileContext, PROSSYM_INFO *RosSymInfo)
Definition: fromfile.c:20
ULONG NumParams
Definition: rossym.h:89
ULONG NumElements
Definition: rossym.h:101
struct _ROSSYM_INFO * PROSSYM_INFO
Definition: rossym.h:122
ULONGLONG Registers[32]
Definition: rossym.h:62
_ROSSYM_LINEINFO_TYPE
Definition: rossym.h:74
VOID(* FreeMemProc)(PVOID Area)
Definition: rossym.h:107
struct _ROSSYM_AGGREGATE * PROSSYM_AGGREGATE
ULONG RosSymGetRawDataLength(PROSSYM_INFO RosSymInfo)
Definition: getraw.c:16
Definition: rossym.h:26
unsigned long StringsOffset
Definition: rossym.h:22
struct _ROSSYM_ENTRY * PROSSYM_ENTRY
struct _ROSSYM_AGGREGATE_MEMBER ROSSYM_AGGREGATE_MEMBER
uint32_t ULONG_PTR
Definition: typedefs.h:63
struct _ROSSYM_REGISTERS * PROSSYM_REGISTERS
struct _ROSSYM_REGISTERS ROSSYM_REGISTERS
ULONG FileOffset
Definition: rossym.h:29
ROSSYM_PARAMETER Parameters[16]
Definition: rossym.h:90
char * ValueName
Definition: rossym.h:67
struct _ROSSYM_HEADER ROSSYM_HEADER
unsigned char BOOLEAN
enum _ROSSYM_LINEINFO_FLAGS ROSSYM_LINEINFO_FLAGS
BOOLEAN RosSymGetAddressInformation(PROSSYM_INFO RosSymInfo, ULONG_PTR RelativeAddress, ULONG *LineNumber, char *FileName, char *FunctionName)
Definition: find.c:94
enum _ROSSYM_LINEINFO_TYPE ROSSYM_LINEINFO_STRINGTYPE
void * PVOID
Definition: retypes.h:9
_In_ PFCB _In_ PCD_NAME _In_ BOOLEAN _Inout_ PFILE_ENUM_CONTEXT FileContext
Definition: cdprocs.h:444
PROSSYM_AGGREGATE_MEMBER Elements
Definition: rossym.h:102
struct _ROSSYM_CALLBACKS ROSSYM_CALLBACKS
struct _ROSSYM_ENTRY ROSSYM_ENTRY
ULONGLONG Value
Definition: rossym.h:66
PVOID(* AllocMemProc)(ULONG_PTR Size)
Definition: rossym.h:106
const struct winhelp_callbacks Callbacks
Definition: callback.c:161
uint64_t ULONGLONG
Definition: typedefs.h:65
char * FunctionName
Definition: rossym.h:87
struct _ROSSYM_LINEINFO ROSSYM_LINEINFO
_Must_inspect_result_ typedef _In_ ULONG _In_ BOOLEAN Target
Definition: iotypes.h:1068
VOID RosSymInit(PROSSYM_CALLBACKS Callbacks)
Definition: init.c:17
BOOLEAN(* MemGetProc)(PVOID FileContext, ULONG_PTR *Target, PVOID SourceMem, ULONG Size)
Definition: rossym.h:110
VOID RosSymFreeAggregate(PROSSYM_AGGREGATE Aggregate)
Definition: find.c:126
#define VOID
Definition: acefi.h:82
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
BOOLEAN(* SeekFileProc)(PVOID FileContext, ULONG_PTR Position)
Definition: rossym.h:109
BOOLEAN(* ReadFileProc)(PVOID FileContext, PVOID Buffer, ULONG Size)
Definition: rossym.h:108
unsigned long StringsLength
Definition: rossym.h:23
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 LineNumber
Definition: acpixf.h:1206
_ROSSYM_LINEINFO_FLAGS
Definition: rossym.h:70
Definition: dwarf.h:436
struct _ROSSYM_PARAMETER ROSSYM_PARAMETER
struct _ROSSYM_LINEINFO * PROSSYM_LINEINFO
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char UINT32 ACPI_STATUS const char UINT32 const char * FunctionName
Definition: acpixf.h:1264
ROSSYM_LINEINFO_FLAGS Flags
Definition: rossym.h:84
ROSSYM_REGISTERS Registers
Definition: rossym.h:88
ULONG LineNumber
Definition: rossym.h:85
#define BOOLEAN
Definition: pedump.c:73
struct _ROSSYM_PARAMETER * PROSSYM_PARAMETER
unsigned long SymbolsLength
Definition: rossym.h:21
unsigned int ULONG
Definition: retypes.h:1
struct _ROSSYM_AGGREGATE_MEMBER * PROSSYM_AGGREGATE_MEMBER
unsigned long SymbolsOffset
Definition: rossym.h:20
IN BOOLEAN OUT PSTR Buffer
Definition: progress.h:34
struct _ROSSYM_AGGREGATE ROSSYM_AGGREGATE
ULONG FunctionOffset
Definition: rossym.h:28
VOID RosSymGetRawData(PROSSYM_INFO RosSymInfo, PVOID RawData)
Definition: getraw.c:24
ULONG_PTR Address
Definition: rossym.h:27
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
Definition: ndis.h:4751
struct _ROSSYM_CALLBACKS * PROSSYM_CALLBACKS