ReactOS 0.4.16-dev-320-g3bd9ddc
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
16extern "C" {
17#endif
18
19typedef struct _ROSSYM_HEADER {
20 unsigned long SymbolsOffset;
21 unsigned long SymbolsLength;
22 unsigned long StringsOffset;
23 unsigned long StringsLength;
25
26typedef struct _ROSSYM_ENTRY {
32
42
59};
60
61typedef struct _ROSSYM_REGISTERS {
64
65typedef struct _ROSSYM_PARAMETER {
67 char *ValueName;
69
73
82
83typedef struct _ROSSYM_LINEINFO {
86 char *FileName;
92
99
100typedef struct _ROSSYM_AGGREGATE {
104
105typedef struct _ROSSYM_CALLBACKS {
112
113#ifdef __ROS_DWARF__
114typedef 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
119struct Dwarf;
120typedef struct Dwarf *PROSSYM_INFO;
121#else
122typedef struct _ROSSYM_INFO {
128#endif
129
131#ifndef __ROS_DWARF__
133#endif
135
137 PROSSYM_INFO *RosSymInfo);
138BOOLEAN RosSymCreateFromMem(PVOID ImageStart, ULONG_PTR ImageSize,
139 PROSSYM_INFO *RosSymInfo);
142VOID RosSymGetRawData(PROSSYM_INFO RosSymInfo, PVOID RawData);
143#ifdef __ROS_DWARF__
145 ULONG_PTR RelativeAddress,
146 PROSSYM_LINEINFO RosSymLineInfo);
147#else
149 ULONG_PTR RelativeAddress,
151 char *FileName,
152 char *FunctionName);
153#endif
154VOID RosSymFreeInfo(PROSSYM_LINEINFO RosSymLineInfo);
155VOID RosSymDelete(PROSSYM_INFO RosSymInfo);
159
160#ifdef __cplusplus
161}
162#endif
163
164#endif /* REACTOS_ROSSYM_H_INCLUDED */
165
166/* EOF */
167
unsigned char BOOLEAN
Type
Definition: Type.h:7
#define VOID
Definition: acefi.h:82
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:1220
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:1279
const struct winhelp_callbacks Callbacks
Definition: callback.c:161
_In_ PFCB _In_ PCD_NAME _In_ BOOLEAN _Inout_ PFILE_ENUM_CONTEXT FileContext
Definition: cdprocs.h:442
Definition: bufpool.h:45
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
Definition: ndis.h:4755
#define BOOLEAN
Definition: pedump.c:73
VOID RosSymFreeAggregate(PROSSYM_AGGREGATE Aggregate)
Definition: find.c:126
_ROSSYM_LINEINFO_FLAGS
Definition: rossym.h:70
@ ROSSYM_LINEINFO_HAS_REGISTERS
Definition: rossym.h:71
_ROSSYM_LINEINFO_TYPE
Definition: rossym.h:74
@ ROSSYM_LINEINFO_ANSI_STRING
Definition: rossym.h:78
@ ROSSYM_LINEINFO_WIDE_STRING
Definition: rossym.h:77
@ ROSSYM_LINEINFO_NARROW_STRING
Definition: rossym.h:76
@ ROSSYM_LINEINFO_UNICODE_STRING
Definition: rossym.h:79
@ ROSSYM_LINEINFO_UNKNOWN
Definition: rossym.h:75
@ ROSSYM_LINEINFO_HANDLE
Definition: rossym.h:80
VOID RosSymFreeInfo(PROSSYM_LINEINFO RosSymLineInfo)
Definition: dwarfpc.c:398
enum _ROSSYM_LINEINFO_FLAGS ROSSYM_LINEINFO_FLAGS
struct _ROSSYM_CALLBACKS * PROSSYM_CALLBACKS
enum _ROSSYM_LINEINFO_TYPE ROSSYM_LINEINFO_STRINGTYPE
_ROSSYM_REGNAME
Definition: rossym.h:33
@ ROSSYM_X64_RBP
Definition: rossym.h:49
@ ROSSYM_X64_R12
Definition: rossym.h:55
@ Rossym_X64_R8
Definition: rossym.h:51
@ ROSSYM_X86_ESI
Definition: rossym.h:40
@ ROSSYM_X64_R13
Definition: rossym.h:56
@ ROSSYM_X64_RAX
Definition: rossym.h:43
@ ROSSYM_X86_EBX
Definition: rossym.h:37
@ ROSSYM_X64_RCX
Definition: rossym.h:45
@ ROSSYM_X64_R14
Definition: rossym.h:57
@ ROSSYM_X86_EAX
Definition: rossym.h:34
@ ROSSYM_X64_RSP
Definition: rossym.h:50
@ ROSSYM_X64_R15
Definition: rossym.h:58
@ ROSSYM_X64_RSI
Definition: rossym.h:47
@ ROSSYM_X64_R9
Definition: rossym.h:52
@ ROSSYM_X86_EDX
Definition: rossym.h:36
@ ROSSYM_X64_RDX
Definition: rossym.h:44
@ ROSSYM_X86_ECX
Definition: rossym.h:35
@ ROSSYM_X86_EDI
Definition: rossym.h:41
@ ROSSYM_X64_R11
Definition: rossym.h:54
@ ROSSYM_X64_RBX
Definition: rossym.h:46
@ ROSSYM_X86_ESP
Definition: rossym.h:38
@ ROSSYM_X64_RDI
Definition: rossym.h:48
@ ROSSYM_X86_EBP
Definition: rossym.h:39
@ ROSSYM_X64_R10
Definition: rossym.h:53
VOID RosSymDelete(PROSSYM_INFO RosSymInfo)
Definition: delete.c:15
struct _ROSSYM_REGISTERS * PROSSYM_REGISTERS
VOID RosSymInit(PROSSYM_CALLBACKS Callbacks)
Definition: init.c:17
BOOLEAN RosSymCreateFromRaw(PVOID RawData, ULONG_PTR DataSize, PROSSYM_INFO *RosSymInfo)
Definition: fromraw.c:18
VOID RosSymGetRawData(PROSSYM_INFO RosSymInfo, PVOID RawData)
Definition: getraw.c:23
struct _ROSSYM_ENTRY * PROSSYM_ENTRY
struct _ROSSYM_ENTRY ROSSYM_ENTRY
struct _ROSSYM_HEADER ROSSYM_HEADER
struct _ROSSYM_PARAMETER * PROSSYM_PARAMETER
struct _ROSSYM_INFO * PROSSYM_INFO
struct _ROSSYM_AGGREGATE ROSSYM_AGGREGATE
VOID RosSymInitKernelMode(VOID)
Definition: initkm.c:32
struct _ROSSYM_LINEINFO * PROSSYM_LINEINFO
VOID RosSymInitUserMode(VOID)
Definition: initum.c:29
ULONG RosSymGetRawDataLength(PROSSYM_INFO RosSymInfo)
Definition: getraw.c:15
struct _ROSSYM_REGISTERS ROSSYM_REGISTERS
BOOLEAN RosSymCreateFromMem(PVOID ImageStart, ULONG_PTR ImageSize, PROSSYM_INFO *RosSymInfo)
Definition: frommem.c:19
struct _ROSSYM_PARAMETER ROSSYM_PARAMETER
struct _ROSSYM_HEADER * PROSSYM_HEADER
BOOLEAN RosSymGetAddressInformation(PROSSYM_INFO RosSymInfo, ULONG_PTR RelativeAddress, ULONG *LineNumber, char *FileName, char *FunctionName)
Definition: find.c:94
BOOLEAN RosSymAggregate(PROSSYM_INFO RosSymInfo, PCHAR Type, PROSSYM_AGGREGATE Aggregate)
Definition: find.c:137
BOOLEAN RosSymCreateFromFile(PVOID FileContext, PROSSYM_INFO *RosSymInfo)
Definition: fromfile.c:19
struct _ROSSYM_AGGREGATE_MEMBER ROSSYM_AGGREGATE_MEMBER
struct _ROSSYM_AGGREGATE_MEMBER * PROSSYM_AGGREGATE_MEMBER
struct _ROSSYM_AGGREGATE * PROSSYM_AGGREGATE
struct _ROSSYM_LINEINFO ROSSYM_LINEINFO
struct _ROSSYM_INFO ROSSYM_INFO
struct _ROSSYM_CALLBACKS ROSSYM_CALLBACKS
Definition: dwarf.h:437
ULONG NumElements
Definition: rossym.h:101
PROSSYM_AGGREGATE_MEMBER Elements
Definition: rossym.h:102
VOID(* FreeMemProc)(PVOID Area)
Definition: rossym.h:107
BOOLEAN(* ReadFileProc)(PVOID FileContext, PVOID Buffer, ULONG Size)
Definition: rossym.h:108
PVOID(* AllocMemProc)(ULONG_PTR Size)
Definition: rossym.h:106
BOOLEAN(* SeekFileProc)(PVOID FileContext, ULONG_PTR Position)
Definition: rossym.h:109
BOOLEAN(* MemGetProc)(PVOID FileContext, ULONG_PTR *Target, PVOID SourceMem, ULONG Size)
Definition: rossym.h:110
Definition: rossym.h:26
ULONG SourceLine
Definition: rossym.h:30
ULONG FileOffset
Definition: rossym.h:29
ULONG_PTR Address
Definition: rossym.h:27
ULONG FunctionOffset
Definition: rossym.h:28
unsigned long SymbolsOffset
Definition: rossym.h:20
unsigned long SymbolsLength
Definition: rossym.h:21
unsigned long StringsLength
Definition: rossym.h:23
unsigned long StringsOffset
Definition: rossym.h:22
ULONG SymbolsCount
Definition: rossym.h:124
ULONG StringsLength
Definition: rossym.h:126
PROSSYM_ENTRY Symbols
Definition: rossym.h:123
PCHAR Strings
Definition: rossym.h:125
ULONG LineNumber
Definition: rossym.h:85
char * FunctionName
Definition: rossym.h:87
char * FileName
Definition: rossym.h:86
ROSSYM_REGISTERS Registers
Definition: rossym.h:88
ROSSYM_LINEINFO_FLAGS Flags
Definition: rossym.h:84
ULONG NumParams
Definition: rossym.h:89
ULONGLONG Value
Definition: rossym.h:66
char * ValueName
Definition: rossym.h:67
ULONGLONG Registers[32]
Definition: rossym.h:62
static COORD Position
Definition: mouse.c:34
void * PVOID
Definition: typedefs.h:50
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
char * PCHAR
Definition: typedefs.h:51
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
Definition: wdfio.h:869
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306