46c087625056ff7730e9ad768fc1a3f52e7ff884
[reactos.git] / reactos / ntoskrnl / dbg / kdb.h
1 #define NTOS_MODE_KERNEL
2 #include <ntos.h>
3
4 typedef struct _KDB_MODULE_INFO
5 {
6 WCHAR Name[256];
7 ULONG_PTR Base;
8 ULONG Size;
9 PROSSYM_INFO RosSymInfo;
10 } KDB_MODULE_INFO, *PKDB_MODULE_INFO;
11
12 /* from kdb_symbols.c */
13
14 BOOLEAN
15 KdbpSymFindModuleByAddress(IN PVOID Address,
16 OUT PKDB_MODULE_INFO pInfo);
17
18 BOOLEAN
19 KdbpSymFindModuleByName(IN LPCWSTR Name,
20 OUT PKDB_MODULE_INFO pInfo);
21
22 BOOLEAN
23 KdbpSymFindModuleByIndex(IN INT Index,
24 OUT PKDB_MODULE_INFO pInfo);
25
26 BOOLEAN
27 KdbSymPrintAddress(IN PVOID Address);
28
29 NTSTATUS
30 KdbSymGetAddressInformation(IN PROSSYM_INFO RosSymInfo,
31 IN ULONG_PTR RelativeAddress,
32 OUT PULONG LineNumber OPTIONAL,
33 OUT PCH FileName OPTIONAL,
34 OUT PCH FunctionName OPTIONAL);
35
36 /* other functions */
37 #define KdbpSafeReadMemory(dst, src, size) MmSafeCopyFromUser(dst, src, size)
38 #define KdbpSafeWriteMemory(dst, src, size) MmSafeCopyToUser(dst, src, size)
39 CHAR
40 KdbTryGetCharKeyboard(PULONG ScanCode);
41 ULONG
42 KdbTryGetCharSerial(VOID);
43 VOID
44 KdbEnter(VOID);
45 VOID
46 DbgRDebugInit(VOID);
47 VOID
48 DbgShowFiles(VOID);
49 VOID
50 DbgEnableFile(PCH Filename);
51 VOID
52 DbgDisableFile(PCH Filename);
53 VOID
54 KdbInitProfiling();
55 VOID
56 KdbInitProfiling2();
57 VOID
58 KdbDisableProfiling();
59 VOID
60 KdbEnableProfiling();
61 VOID
62 KdbProfileInterrupt(ULONG_PTR Eip);
63
64 VOID
65 KdbModuleLoaded(IN PUNICODE_STRING Name);
66
67
68 struct KDB_BPINFO {
69 DWORD Addr;
70 DWORD Type;
71 DWORD Size;
72 DWORD Enabled;
73 };