XenevaOS
Loading...
Searching...
No Matches
xnldr.h
Go to the documentation of this file.
1
32#ifndef __XNLDR2_H__
33#define __XNLDR2_H__
34
35#include <stdint.h>
36#include <Uefi.h>
37
38#define SIZE_MAX 0xFFFFFFFF
39
40
41#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID \
42{0x9042a9de,0x23dc,0x4a38,\
43{0x96,0xfb,0x7a,0xde,0xd0,0x80,0x51,0x6a}}
44
45#ifdef __TARGET_BOARD_RPI3__
46#define MMIO_BASE 0x3F000000
47#endif
48
49//#pragma pack(push,1)
50
51/*
52 *FRAMEBUFFER_INFORMATION :
53 * framebuffer structure
54 */
55typedef struct _FB_INFO_ {
58 size_t size;
67
68
69#define BOOT_UEFI_X64 1
70#define BOOT_UEFI_ARM64 2
71/* XEBootInfo, Xeneva Boot information
72 * structure passed to the kernel
73 */
74typedef struct _XE_BOOT_INFO_ {
75 int boot_type;
76 void* allocated_mem;
78 void* map;
82 size_t fb_size;
91 size_t kernel_size;
93 void (*printf_gui) (const char* text, ...);
100 void* ap_code;
101
102 /*Boot device specific */
107
108//#pragma pack(pop)
109
110typedef void(*XEImageEntry)(XEBootInfo*);
111
112
113struct EfiMemoryMap {
119};
120
123extern EFI_BOOT_SERVICES* gBS;
125
126/*
127 * XEAllocatePool -- allocate pool memory
128 * @param sz -- size in bytes to allocate
129 */
130extern void* XEAllocatePool(const uint64_t sz);
131
132/*
133 * XEFreePool -- frees up previously allocated
134 * pool memory
135 * @param Buffer -- Pointer to previously allocated
136 * pool memory
137 */
138extern void XEFreePool(void* Buffer);
139
140extern void ASCIIToChar16(const char* src, wchar_t* dst);
141extern void Char16ToASCII(char* dest, CHAR16* src);
142#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:250
void Char16ToASCII(char *dest, CHAR16 *src)
Definition xnldr.cpp:243
struct _XE_BOOT_INFO_ * XEPBootInfo
EFI_RUNTIME_SERVICES * gRS
Definition xnldr.cpp:47
struct _FB_INFO_ * PFRAMEBUFFER_INFORMATION
struct _XE_BOOT_INFO_ XEBootInfo
void * XEAllocatePool(const uint64_t sz)
Definition mem.cpp:36
struct _FB_INFO_ FRAMEBUFFER_INFORMATION
EFI_HANDLE gImageHandle
Definition xnldr.cpp:44
void XEFreePool(void *Buffer)
Definition mem.cpp:47
EFI_SYSTEM_TABLE * gSystemTable
Definition xnldr.cpp:45
void(* XEImageEntry)(XEBootInfo *)
Definition xnldr.h:104
EFI_BOOT_SERVICES * gBS
Definition xnldr.cpp:46
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:107
UINTN MapKey
Definition xnldr.h:116
UINT32 DescriptorVersion
Definition xnldr.h:110
UINTN MemMapSize
Definition xnldr.h:115
UINTN DescriptorSize
Definition xnldr.h:117
EFI_MEMORY_DESCRIPTOR * memmap
Definition xnldr.h:108
Definition xnldr.h:50
uint32_t greenmask
Definition xnldr.h:58
uint32_t * graphics_framebuffer
Definition xnldr.h:52
uint16_t X_Resolution
Definition xnldr.h:55
uint16_t Y_Resolution
Definition xnldr.h:56
uint32_t redmask
Definition xnldr.h:57
uint32_t * phyaddr
Definition xnldr.h:51
uint32_t bluemask
Definition xnldr.h:59
size_t size
Definition xnldr.h:53
uint16_t pixelsPerLine
Definition xnldr.h:54
uint32_t resvmask
Definition xnldr.h:60
Definition xnldr.h:68
uint8_t * driver_entry2
OTHER.
Definition xnldr.h:89
uint64_t mem_map_size
Definition xnldr.h:74
uint8_t * driver_entry1
Definition xnldr.h:88
void * map
Definition xnldr.h:72
uint8_t * driver_entry6
ATA.
Definition xnldr.h:93
uint8_t * driver_entry4
AHCI.
Definition xnldr.h:91
void * allocated_mem
Definition xnldr.h:70
size_t kernel_size
Definition xnldr.h:85
uint32_t cid
Definition xnldr.h:99
uint16_t pixels_per_line
Definition xnldr.h:79
uint32_t resvmask
Definition xnldr.h:83
int boot_type
Definition xnldr.h:69
void * acpi_table_pointer
Definition xnldr.h:84
uint8_t * driver_entry5
FLOPPY.
Definition xnldr.h:92
uint32_t redmask
Definition xnldr.h:80
uint8_t * font_binary_address
Definition xnldr.h:86
uint16_t X_Resolution
Definition xnldr.h:77
uint32_t * graphics_framebuffer
Definition xnldr.h:75
void(* printf_gui)(const char *text,...)
Definition xnldr.h:87
uint32_t hid
Definition xnldr.h:97
uint8_t * driver_entry3
NVME.
Definition xnldr.h:90
void * ap_code
USB.
Definition xnldr.h:94
uint32_t uid
Definition xnldr.h:98
uint16_t Y_Resolution
Definition xnldr.h:78
uint64_t reserved_mem_count
Definition xnldr.h:71
uint64_t descriptor_size
Definition xnldr.h:73
size_t fb_size
Definition xnldr.h:76
uint32_t greenmask
Definition xnldr.h:81
uint32_t bluemask
Definition xnldr.h:82