xref: /reactos/boot/armllb/inc/osloader.h (revision c2c66aff)
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 */
112