58 lines
1.4 KiB
C
58 lines
1.4 KiB
C
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
// Copyright (c) 2025 0xKarinyash
|
|
|
|
#pragma once
|
|
|
|
typedef unsigned char u8;
|
|
typedef unsigned short u16;
|
|
typedef unsigned int u32;
|
|
typedef unsigned long long u64;
|
|
|
|
typedef signed char i8;
|
|
typedef signed short i16;
|
|
typedef signed int i32;
|
|
typedef signed long long i64;
|
|
|
|
typedef u64 usize;
|
|
typedef u64 uintptr_t;
|
|
|
|
typedef struct {
|
|
u64 rax, rbx, rcx, rdx, rbp, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15; // Pushed by us
|
|
u64 int_no, err_code; // Pushed by macro
|
|
u64 rip, cs, rflags, rsp, ss; // Pushed by CPU
|
|
} Registers;
|
|
|
|
typedef struct {
|
|
u32 type;
|
|
u32 pad;
|
|
u64 physical_start;
|
|
u64 virtual_start;
|
|
u64 number_of_pages;
|
|
u64 attribute;
|
|
} __attribute__((packed)) efi_memory_descriptor_k;
|
|
|
|
typedef enum {
|
|
EfiReservedMemoryType,
|
|
EfiLoaderCode,
|
|
EfiLoaderData,
|
|
EfiBootServicesCode,
|
|
EfiBootServicesData,
|
|
EfiRuntimeServicesCode,
|
|
EfiRuntimeServicesData,
|
|
EfiConventionalMemory,
|
|
EfiUnusableMemory,
|
|
EfiACPIReclaimMemory,
|
|
EfiACPIMemoryNVS,
|
|
EfiMemoryMappedIO,
|
|
EfiMemoryMappedIOPortSpace,
|
|
EfiPalCode,
|
|
EfiPersistentMemory,
|
|
EfiMaxMemoryType
|
|
} EFI_MEMORY_TYPE;
|
|
|
|
#ifndef __cplusplus
|
|
#define bool _Bool
|
|
#define true 1
|
|
#define false 0
|
|
#endif
|