aboutsummaryrefslogtreecommitdiff
path: root/mirai/kagami/state.zig
blob: 86a77ed2a1fc598192573764a7c0c24bfe687f9d (plain)
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
32
33
34
35
36
37
38
39
40
41
//! Kagami State

const types = @import("types/types.zig");
const Kagami = types.Kagami;

var kernel_kagami: Kagami = .{
    .pml4_physical = 0,
    .reference_count = 1,
    .resident_pages = 0,
    .wired_pages = 0,
    .table_pages = 0,
    .lock = false,
};

var current_kagami: *Kagami = &kernel_kagami;

var initialized: bool = false;

pub fn get_kernel_kagami() *Kagami {
    return &kernel_kagami;
}

pub fn get_current_kagami() *Kagami {
    return current_kagami;
}

pub fn set_current_kagami(kagami: *Kagami) void {
    current_kagami = kagami;
}

pub fn set_kernel_pml4(pml4_physical: u64) void {
    kernel_kagami.pml4_physical = pml4_physical;
}

pub fn is_initialized() bool {
    return initialized;
}

pub fn set_initialized() void {
    initialized = true;
}