Voxia OS
v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
init.h
Go to the documentation of this file.
1
#ifndef __INIT__INIT_H__
2
#define __INIT__INIT_H__
3
4
#include "
hal/graphic/framebuffer.h
"
5
#include "
init/initrd.h
"
6
#include "
memory/entry.h
"
7
8
#define MAX_MEMORY_ENTRIES 256
9
10
typedef
struct
{
11
uint64_t
memory_entries
;
12
memory_entry_t
memory_map
[
MAX_MEMORY_ENTRIES
];
13
}
memory_context_t
;
14
15
typedef
struct
{
16
initrd_module_t
initrd_module
;
17
memory_context_t
memory
;
18
uintptr_t
rsdp_addr
;
19
framebuffer_t
framebuffer
;
20
uintptr_t
kernel_raw_addr
;
21
size_t
kernel_raw_size
;
22
}
init_context_t
;
23
24
typedef
void (*
initcall_t
)(
init_context_t
* ctx);
25
26
#define INIT(fn) \
27
void init##fn(__attribute__((unused)) init_context_t* ctx); \
28
static initcall_t __init_##fn \
29
__attribute__((used, section(".init_early." #fn))) = init##fn; \
30
void init##fn(__attribute__((unused)) init_context_t* ctx)
31
32
#define INFLOOP \
33
for (;;) \
34
__asm__ volatile("hlt");
35
36
#endif
// __INIT__INIT_H
entry.h
framebuffer.h
framebuffer_t
framebuffer_t
Definition
framebuffer.h:19
MAX_MEMORY_ENTRIES
#define MAX_MEMORY_ENTRIES
Definition
init.h:8
initcall_t
void(* initcall_t)(init_context_t *ctx)
Definition
init.h:24
initrd.h
initrd_module_t
struct initrd_module initrd_module_t
init_context_t
Definition
init.h:15
init_context_t::kernel_raw_size
size_t kernel_raw_size
Definition
init.h:21
init_context_t::kernel_raw_addr
uintptr_t kernel_raw_addr
Definition
init.h:20
init_context_t::initrd_module
initrd_module_t initrd_module
Definition
init.h:16
init_context_t::framebuffer
framebuffer_t framebuffer
Definition
init.h:19
init_context_t::memory
memory_context_t memory
Definition
init.h:17
init_context_t::rsdp_addr
uintptr_t rsdp_addr
Definition
init.h:18
memory_context_t
Definition
init.h:10
memory_context_t::memory_entries
uint64_t memory_entries
Definition
init.h:11
memory_context_t::memory_map
memory_entry_t memory_map[256]
Definition
init.h:12
uintptr_t
unsigned long uintptr_t
Definition
type.h:73
uint64_t
unsigned long uint64_t
Definition
type.h:25
kernel
init
init.h
Generated on Sat May 30 2026 11:09:57 for Voxia OS by
1.13.2