XenevaOS
Loading...
Searching...
No Matches
xnldr.h
Go to the documentation of this file.
1
31#ifndef __XNLDR2_H__
32#define __XNLDR2_H__
33
34#include <stdint.h>
35#include <Uefi.h>
36#include <stddef.h>
37#ifndef SIZE_MAX
38#if defined(ARCH_ARM64) || defined(ARCH_X64) || defined(_M_AMD64) || defined(_M_ARM64) || defined(__x86_64__) || defined(__aarch64__)
39#define SIZE_MAX 0xFFFFFFFFFFFFFFFFULL
40#else
41#define SIZE_MAX 0xFFFFFFFFULL
42#endif
43#endif
44//#include <stddef.h>
45
46#define SIZE_MAX 0xFFFFFFFF
47
48
49#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID \
50{0x9042a9de,0x23dc,0x4a38,\
51{0x96,0xfb,0x7a,0xde,0xd0,0x80,0x51,0x6a}}
52
53#ifdef __TARGET_BOARD_RPI3__
54#define MMIO_BASE 0x3F000000
55#endif
56
57//#pragma pack(push,1)
58
59/*
60 *FRAMEBUFFER_INFORMATION :
61 * framebuffer structure
62 */
63typedef struct _FB_INFO_ {
66 size_t size;
75
76
77#define BOOT_UEFI_X64 1
78#define BOOT_UEFI_ARM64 2
79/* XEBootInfo, Xeneva Boot information
80 * structure passed to the kernel
81 */
82typedef struct _XE_BOOT_INFO_ {
83 int boot_type;
84 void* allocated_mem;
86 void* map;
90 size_t fb_size;
99 size_t kernel_size;
101 void (*printf_gui) (const char* text, ...);
108 void* ap_code;
109
110 /*Boot device specific */
115
116//#pragma pack(pop)
117
118typedef void(*XEImageEntry)(XEBootInfo*);
119
120
121struct EfiMemoryMap {
127};
128
131extern EFI_BOOT_SERVICES* gBS;
133
134/*
135 * XEAllocatePool -- allocate pool memory
136 * @param sz -- size in bytes to allocate
137 */
138extern void* XEAllocatePool(const uint64_t sz);
139
140/*
141 * XEFreePool -- frees up previously allocated
142 * pool memory
143 * @param Buffer -- Pointer to previously allocated
144 * pool memory
145 */
146extern void XEFreePool(void* Buffer);
147
148extern void ASCIIToChar16(const char* src, wchar_t* dst);
149extern void Char16ToASCII(char* dest, CHAR16* src);
150#endif
UINT64 UINTN
Definition ProcessorBind.h:118
unsigned short CHAR16
Definition ProcessorBind.h:105
unsigned int UINT32
Definition ProcessorBind.h:102
void ASCIIToChar16(const char *src, wchar_t *dst)
Definition xnldr.cpp:273
void Char16ToASCII(char *dest, CHAR16 *src)
Definition xnldr.cpp:266
struct _XE_BOOT_INFO_ * XEPBootInfo
EFI_RUNTIME_SERVICES * gRS
Definition xnldr.cpp:49
struct _FB_INFO_ * PFRAMEBUFFER_INFORMATION
struct _XE_BOOT_INFO_ XEBootInfo
void * XEAllocatePool(const uint64_t sz)
Definition mem.cpp:39
struct _FB_INFO_ FRAMEBUFFER_INFORMATION
EFI_HANDLE gImageHandle
Definition xnldr.cpp:41
void XEFreePool(void *Buffer)
Definition mem.cpp:50
EFI_SYSTEM_TABLE * gSystemTable
Definition xnldr.cpp:42
void(* XEImageEntry)(XEBootInfo *)
Definition xnldr.h:106
EFI_BOOT_SERVICES * gBS
Definition xnldr.cpp:50
VOID * EFI_HANDLE
Definition UefiBaseType.h:37
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
Definition UefiSpec.h:1850
Definition UefiSpec.h:104
Definition UefiSpec.h:1798
Definition UefiSpec.h:1963
Definition xnldr.h:109
UINTN MapKey
Definition xnldr.h:124
UINT32 DescriptorVersion
Definition xnldr.h:112
UINTN MemMapSize
Definition xnldr.h:123
UINTN DescriptorSize
Definition xnldr.h:125
EFI_MEMORY_DESCRIPTOR * memmap
Definition xnldr.h:110
Definition xnldr.h:52
uint32_t greenmask
Definition xnldr.h:60
uint32_t * graphics_framebuffer
Definition xnldr.h:54
uint16_t X_Resolution
Definition xnldr.h:57
uint16_t Y_Resolution
Definition xnldr.h:58
uint32_t redmask
Definition xnldr.h:59
uint32_t * phyaddr
Definition xnldr.h:53
uint32_t bluemask
Definition xnldr.h:61
size_t size
Definition xnldr.h:55
uint16_t pixelsPerLine
Definition xnldr.h:56
uint32_t resvmask
Definition xnldr.h:62
Definition xnldr.h:70
uint8_t * driver_entry2
OTHER.
Definition xnldr.h:91
uint64_t mem_map_size
Definition xnldr.h:76
uint8_t * driver_entry1
Definition xnldr.h:90
void * map
Definition xnldr.h:74
uint8_t * driver_entry6
ATA.
Definition xnldr.h:95
uint8_t * driver_entry4
AHCI.
Definition xnldr.h:93
void * allocated_mem
Definition xnldr.h:72
size_t kernel_size
Definition xnldr.h:87
uint32_t cid
Definition xnldr.h:101
uint16_t pixels_per_line
Definition xnldr.h:81
uint32_t resvmask
Definition xnldr.h:85
int boot_type
Definition xnldr.h:71
void * acpi_table_pointer
Definition xnldr.h:86
uint8_t * driver_entry5
FLOPPY.
Definition xnldr.h:94
uint32_t redmask
Definition xnldr.h:82
uint8_t * font_binary_address
Definition xnldr.h:88
uint16_t X_Resolution
Definition xnldr.h:79
uint32_t * graphics_framebuffer
Definition xnldr.h:77
void(* printf_gui)(const char *text,...)
Definition xnldr.h:89
uint32_t hid
Definition xnldr.h:99
uint8_t * driver_entry3
NVME.
Definition xnldr.h:92
void * ap_code
USB.
Definition xnldr.h:96
uint32_t uid
Definition xnldr.h:100
uint16_t Y_Resolution
Definition xnldr.h:80
uint64_t reserved_mem_count
Definition xnldr.h:73
uint64_t descriptor_size
Definition xnldr.h:75
size_t fb_size
Definition xnldr.h:78
uint32_t greenmask
Definition xnldr.h:83
uint32_t bluemask
Definition xnldr.h:84