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