diff options
| -rw-r--r-- | defs/x86_64-hm-linker.ld | 12 | ||||
| -rw-r--r-- | src/arch/x86_64/interrupt/mod.rs | 1 | ||||
| -rw-r--r-- | src/lib.rs | 1 |
3 files changed, 14 insertions, 0 deletions
diff --git a/defs/x86_64-hm-linker.ld b/defs/x86_64-hm-linker.ld index 563940e..c8a213c 100644 --- a/defs/x86_64-hm-linker.ld +++ b/defs/x86_64-hm-linker.ld @@ -82,6 +82,9 @@ SECTIONS *(".text") *(".text.*") *(".text$") + *(".ltext") + *(".ltext.*") + *(".ltext$") } .data : AT(ADDR(.data) - KERNEL_OFFSET) @@ -89,13 +92,19 @@ SECTIONS *(".data") *(".data.*") *(".data$") + *(".ldata") + *(".ldata.*") + *(".ldata$") } .bss : AT(ADDR(.bss) - KERNEL_OFFSET) { PROVIDE (___BSS_START__ = .); *(".bss") + *(".lbss") *(".bss.*") + *(".lbss.*") + *(".lbss$") PROVIDE (___BSS_END__ = .); } @@ -104,6 +113,9 @@ SECTIONS *(".rodata") *(".rodata$") *(".rodata.*") + *(".lrodata") + *(".lrodata$") + *(".lrodata.*") } PROVIDE (___KERNEL_PM_END__ = . - KERNEL_OFFSET); diff --git a/src/arch/x86_64/interrupt/mod.rs b/src/arch/x86_64/interrupt/mod.rs index 6591bde..9273ef7 100644 --- a/src/arch/x86_64/interrupt/mod.rs +++ b/src/arch/x86_64/interrupt/mod.rs @@ -27,6 +27,7 @@ extern "C" { // [48:63] - addr[16:31] // [64:95] - addr[32:63] #[repr(C)] +#[repr(packed)] pub struct GateDescriptor64 { pub offset_1: u16, pub selector: u16, @@ -1,5 +1,6 @@ #![allow(dead_code)] #![allow(unused_imports)] +#![allow(unexpected_cfgs)] #![no_std] #![no_main] #![feature(const_option)] |
