xref: /reactos/sdk/lib/rossym/rossympriv.h (revision 40462c92)
1 /*
2  * COPYRIGHT:       See COPYING in the top level directory
3  * PROJECT:         ReactOS kernel
4  * FILE:            lib/rossym/rossympriv.h
5  * PURPOSE:         Private header for rossym
6  *
7  * PROGRAMMERS:     Ge van Geldorp (gvg@reactos.com)
8  */
9 
10 #pragma once
11 
12 typedef struct _ROSSYM_INFO {
13   PROSSYM_ENTRY Symbols;
14   ULONG SymbolsCount;
15   PCHAR Strings;
16   ULONG StringsLength;
17 } ROSSYM_INFO;
18 
19 extern ROSSYM_CALLBACKS RosSymCallbacks;
20 
21 #define RosSymAllocMem(Size) (*RosSymCallbacks.AllocMemProc)(Size)
22 #define RosSymFreeMem(Area) (*RosSymCallbacks.FreeMemProc)(Area)
23 #define RosSymReadFile(FileContext, Buffer, Size) (*RosSymCallbacks.ReadFileProc)((FileContext), (Buffer), (Size))
24 #define RosSymSeekFile(FileContext, Position) (*RosSymCallbacks.SeekFileProc)((FileContext), (Position))
25 
26 extern BOOLEAN RosSymZwReadFile(PVOID FileContext, PVOID Buffer, ULONG Size);
27 extern BOOLEAN RosSymZwSeekFile(PVOID FileContext, ULONG_PTR Position);
28 
29 #define ROSSYM_IS_VALID_DOS_HEADER(DosHeader) (IMAGE_DOS_SIGNATURE == (DosHeader)->e_magic \
30                                                && 0L != (DosHeader)->e_lfanew)
31 #define ROSSYM_IS_VALID_NT_HEADERS(NtHeaders) (IMAGE_NT_SIGNATURE == (NtHeaders)->Signature \
32                                                && IMAGE_NT_OPTIONAL_HDR_MAGIC == (NtHeaders)->OptionalHeader.Magic)
33 
34 /* EOF */
35