blob: 42a640b0dd902fab4b01528e441104d7644b1455 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
//! GDT Load Instructions
pub const Gdtr = packed struct {
limit: u16,
base: u64,
};
pub fn lgdt(gdtr: *const Gdtr) void {
asm volatile ("lgdt (%[gdtr])"
:
: [gdtr] "r" (gdtr),
: .{ .memory = true });
}
pub fn sgdt() Gdtr {
var gdtr: Gdtr = undefined;
asm volatile ("sgdt (%[gdtr])"
:
: [gdtr] "r" (&gdtr),
: .{ .memory = true });
return gdtr;
}
|