* Sync to trunk r63845.
[reactos.git] / 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 4
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 PVOID ConsPutChar;
56 PVOID ConsKbHit;
57 PVOID ConsGetCh;
58 PVOID VideoClearScreen;
59 PVOID VideoSetDisplayMode;
60 PVOID VideoGetDisplaySize;
61 PVOID VideoGetBufferSize;
62 PVOID VideoSetTextCursorPosition;
63 PVOID VideoHideShowTextCursor;
64 PVOID VideoPutChar;
65 PVOID VideoCopyOffScreenBufferToVRAM;
66 PVOID VideoIsPaletteFixed;
67 PVOID VideoSetPaletteColor;
68 PVOID VideoGetPaletteColor;
69 PVOID VideoSync;
70 PVOID GetTime;
71 } ARM_BOARD_CONFIGURATION_BLOCK, *PARM_BOARD_CONFIGURATION_BLOCK;
72
73 VOID
74 NTAPI
75 LlbAllocateMemoryEntry(
76 IN BIOS_MEMORY_TYPE Type,
77 IN ULONG BaseAddress,
78 IN ULONG Length
79 );
80
81 VOID
82 NTAPI
83 LlbSetCommandLine(
84 IN PCHAR CommandLine
85 );
86
87 VOID
88 NTAPI
89 LlbBuildArmBlock(
90 VOID
91 );
92
93 VOID
94 NTAPI
95 LlbBuildMemoryMap(
96 VOID
97 );
98
99 VOID
100 NTAPI
101 LlbLoadOsLoader(
102 VOID
103 );
104
105 VOID
106 NTAPI
107 LlbBoot(
108 VOID
109 );
110
111 /* EOF */