73ae70ebeda0c7a348f99516d374c30235036c97
[reactos.git] / reactos / include / reactos / rosldr.h
1 #ifndef __REACTOS_LDR_H
2 #define __REACTOS_LDR_H
3
4 #define MB_FLAGS_MEM_INFO (0x1)
5 #define MB_FLAGS_BOOT_DEVICE (0x2)
6 #define MB_FLAGS_COMMAND_LINE (0x4)
7 #define MB_FLAGS_MODULE_INFO (0x8)
8 #define MB_FLAGS_AOUT_SYMS (0x10)
9 #define MB_FLAGS_ELF_SYMS (0x20)
10 #define MB_FLAGS_MMAP_INFO (0x40)
11 #define MB_FLAGS_DRIVES_INFO (0x80)
12 #define MB_FLAGS_CONFIG_TABLE (0x100)
13 #define MB_FLAGS_BOOT_LOADER_NAME (0x200)
14 #define MB_FLAGS_APM_TABLE (0x400)
15 #define MB_FLAGS_GRAPHICS_TABLE (0x800)
16 #define MB_FLAGS_ACPI_TABLE (0x1000)
17
18 typedef struct _LOADER_MODULE
19 {
20 ULONG_PTR ModStart;
21 ULONG_PTR ModEnd;
22 ULONG_PTR String;
23 ULONG_PTR Reserved;
24 } LOADER_MODULE, *PLOADER_MODULE;
25
26 typedef struct _ROS_LOADER_PARAMETER_BLOCK
27 {
28 ULONG Flags;
29 ULONG_PTR MemLower;
30 ULONG_PTR MemHigher;
31 ULONG BootDevice;
32 PCHAR CommandLine;
33 ULONG ModsCount;
34 PLOADER_MODULE ModsAddr;
35 UCHAR Syms[12];
36 SIZE_T MmapLength;
37 ULONG_PTR MmapAddr;
38 SIZE_T RdLength;
39 ULONG_PTR RdAddr;
40 ULONG DrivesCount;
41 PARC_DISK_SIGNATURE DrivesAddr;
42 ULONG ConfigTable;
43 ULONG BootLoaderName;
44 ULONG_PTR PageDirectoryStart;
45 ULONG_PTR PageDirectoryEnd;
46 ULONG_PTR KernelBase;
47 ULONG_PTR ArchExtra;
48 ULONG (*FrLdrDbgPrint)(const char *Format, ...);
49 } ROS_LOADER_PARAMETER_BLOCK, *PROS_LOADER_PARAMETER_BLOCK;
50
51 VOID
52 NTAPI
53 KiRosPrepareForSystemStartup(
54 IN PROS_LOADER_PARAMETER_BLOCK LoaderBlock
55 );
56
57 #endif