aboutsummaryrefslogtreecommitdiff
path: root/mirai/boot/gdt/constants/selectors.zig
blob: 5163e9334b59ef114436b9d3a2101107fd73dd39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//! GDT Selector Constants

pub const null_selector: u16 = 0x00;
pub const kernel_code_selector: u16 = 0x08;
pub const kernel_data_selector: u16 = 0x10;
pub const user_code_selector: u16 = 0x18;
pub const user_data_selector: u16 = 0x20;
pub const tss_selector: u16 = 0x28;

pub const kernel_code_index: u16 = 1;
pub const kernel_data_index: u16 = 2;
pub const user_code_index: u16 = 3;
pub const user_data_index: u16 = 4;
pub const tss_index: u16 = 5;

pub const ring_0: u8 = 0;
pub const ring_3: u8 = 3;

pub fn selector_with_rpl(selector: u16, rpl: u8) u16 {
    return (selector & 0xFFF8) | @as(u16, rpl & 0x03);
}