reactos/boot/armllb/inc/osloader.h

112 lines
2 KiB
C

/*
* PROJECT: ReactOS Boot Loader
* LICENSE: BSD - See COPYING.ARM in the top level directory
* FILE: boot/armllb/inc/osloader.h
* PURPOSE: Shared header between LLB and OS Loader
* PROGRAMMERS: ReactOS Portable Systems Group
*/
//
// OS Loader Main Routine
//
typedef
VOID (*POSLOADER_INIT)(
IN PVOID BoardInit
);
//
// Type of memory detected by LLB
//
typedef enum
{
BiosMemoryUsable = 1,
BiosMemoryBootLoader,
BiosMemoryBootStrap,
BiosMemoryReserved
} BIOS_MEMORY_TYPE;
//
// Firmware Memory Map
//
typedef struct
{
LONGLONG BaseAddress;
LONGLONG Length;
ULONG Type;
ULONG Reserved;
} BIOS_MEMORY_MAP, *PBIOS_MEMORY_MAP;
//
// Information sent from LLB to OS Loader
//
#define ARM_BOARD_CONFIGURATION_MAJOR_VERSION 1
#define ARM_BOARD_CONFIGURATION_MINOR_VERSION 4
typedef struct _ARM_BOARD_CONFIGURATION_BLOCK
{
ULONG MajorVersion;
ULONG MinorVersion;
ULONG BoardType;
ULONG ClockRate;
ULONG TimerRegisterBase;
ULONG UartRegisterBase;
ULONG MemoryMapEntryCount;
PBIOS_MEMORY_MAP MemoryMap;
CHAR CommandLine[256];
PVOID ConsPutChar;
PVOID ConsKbHit;
PVOID ConsGetCh;
PVOID VideoClearScreen;
PVOID VideoSetDisplayMode;
PVOID VideoGetDisplaySize;
PVOID VideoGetBufferSize;
PVOID VideoSetTextCursorPosition;
PVOID VideoHideShowTextCursor;
PVOID VideoPutChar;
PVOID VideoCopyOffScreenBufferToVRAM;
PVOID VideoIsPaletteFixed;
PVOID VideoSetPaletteColor;
PVOID VideoGetPaletteColor;
PVOID VideoSync;
PVOID GetTime;
} ARM_BOARD_CONFIGURATION_BLOCK, *PARM_BOARD_CONFIGURATION_BLOCK;
VOID
NTAPI
LlbAllocateMemoryEntry(
IN BIOS_MEMORY_TYPE Type,
IN ULONG BaseAddress,
IN ULONG Length
);
VOID
NTAPI
LlbSetCommandLine(
IN PCHAR CommandLine
);
VOID
NTAPI
LlbBuildArmBlock(
VOID
);
VOID
NTAPI
LlbBuildMemoryMap(
VOID
);
VOID
NTAPI
LlbLoadOsLoader(
VOID
);
VOID
NTAPI
LlbBoot(
VOID
);
/* EOF */