-
Notifications
You must be signed in to change notification settings - Fork 0
/
kernel.h
31 lines (26 loc) · 856 Bytes
/
kernel.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once
#include <efi.h>
#include <protocol.h>
/* Public types --------------------------------------------------------------*/
typedef struct
{
UINTN mm_size;
EFI_MEMORY_DESCRIPTOR *mm_descriptor;
UINTN map_key;
UINTN descriptor_size;
UINT32 descriptor_version;
} memory_map_t;
/**
* @brief - Kernel boot parameters structure. This structure will be shared
* with uefi os loader code. The loader will pass this param to
* kernel when it's passing the control to kernel.
*/
typedef struct
{
memory_map_t mm;
EFI_RUNTIME_SERVICES *runtime_services;
EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE graphic_out_protocol;
UINTN custom_protocol_data;
} boot_params_t;
typedef void (*kernel_entry)(boot_params_t *params);
/* Public function prototypes ------------------------------------------------*/