- More fixes
[reactos.git] / reactos / boot / armllb / inc / osloader.h
1 /*
2 * PROJECT: ReactOS Boot Loader
3 * LICENSE: BSD - See COPYING.ARM in the top level directory
4 * FILE: boot/armllb/inc/osloader.h
5 * PURPOSE: Shared header between LLB and OS Loader
6 * PROGRAMMERS: ReactOS Portable Systems Group
7 */
8
9 //
10 // OS Loader Main Routine
11 //
12 typedef
13 VOID (*POSLOADER_INIT)(
14 IN PVOID BoardInit
15 );
16
17 //
18 // Type of memory detected by LLB
19 //
20 typedef enum
21 {
22 BiosMemoryUsable = 1,
23 BiosMemoryBootLoader,
24 BiosMemoryBootStrap,
25 BiosMemoryReserved
26 } BIOS_MEMORY_TYPE;
27
28 //
29 // Firmware Memory Map
30 //
31 typedef struct
32 {
33 LONGLONG BaseAddress;
34 LONGLONG Length;
35 ULONG Type;
36 ULONG Reserved;
37 } BIOS_MEMORY_MAP, *PBIOS_MEMORY_MAP;
38
39 //
40 // Information sent from LLB to OS Loader
41 //
42 #define ARM_BOARD_CONFIGURATION_MAJOR_VERSION 1
43 #define ARM_BOARD_CONFIGURATION_MINOR_VERSION 1
44 typedef struct _ARM_BOARD_CONFIGURATION_BLOCK
45 {
46 ULONG MajorVersion;
47 ULONG MinorVersion;
48 ULONG BoardType;
49 ULONG ClockRate;
50 ULONG TimerRegisterBase;
51 ULONG UartRegisterBase;
52 ULONG MemoryMapEntryCount;
53 PBIOS_MEMORY_MAP MemoryMap;
54 CHAR CommandLine[256];
55 } ARM_BOARD_CONFIGURATION_BLOCK, *PARM_BOARD_CONFIGURATION_BLOCK;
56
57 VOID
58 NTAPI
59 LlbAllocateMemoryEntry(
60 IN BIOS_MEMORY_TYPE Type,
61 IN ULONG BaseAddress,
62 IN ULONG Length
63 );
64
65 VOID
66 NTAPI
67 LlbSetCommandLine(
68 IN PCHAR CommandLine
69 );
70
71 VOID
72 NTAPI
73 LlbBuildArmBlock(
74 VOID
75 );
76
77 VOID
78 NTAPI
79 LlbBuildMemoryMap(
80 VOID
81 );
82
83 VOID
84 NTAPI
85 LlbLoadOsLoader(
86 VOID
87 );
88
89 VOID
90 NTAPI
91 LlbBoot(
92 IN PCHAR CommandLine
93 );
94
95 /* EOF */