@@ -14,17 +14,18 @@ use x86_64::{PhysAddr, VirtAddr};
14
14
// Reminder of the memory layout (documented in more
15
15
// detail in README.md):
16
16
//
17
- // | Region | Start address | Last address |
18
- // | ------------------- | --------------------- | --------------------- |
19
- // | NULL page | 0x0 | 0x1f_ffff |
20
- // | Userspace | 0x20_0000 | 0x7fff_ffff_ffff |
21
- // | Kernel binary | 0xffff_8000_0000_0000 | 0xffff_8000_3fff_ffff |
22
- // | Bootloader info | 0xffff_8000_4000_0000 | 0xffff_8000_4000_0fff |
23
- // | Kernel heap | 0xffff_8000_4444_0000 | 0xffff_8000_444b_ffff |
24
- // | Kernel stack guard | 0xffff_8000_5554_f000 | 0xffff_8000_5554_ffff |
25
- // | Kernel stack | 0xffff_8000_5555_0000 | 0xffff_8000_555c_ffff |
26
- // | MMIO address space | 0xffff_8000_6666_0000 | 0xffff_8000_6675_ffff |
27
- // | Physical memory map | 0xffff_8000_8000_0000 | 0xffff_ffff_ffff_ffff |
17
+ // | Region | Start address | Last address |
18
+ // | -------------------- | --------------------- | --------------------- |
19
+ // | NULL page | 0x0 | 0x1f_ffff |
20
+ // | Userspace | 0x20_0000 | 0x7fff_ffff_ffff |
21
+ // | Kernel binary | 0xffff_8000_0000_0000 | 0xffff_8000_3fff_ffff |
22
+ // | Bootloader info | 0xffff_8000_4000_0000 | 0xffff_8000_4000_0fff |
23
+ // | Kernel heap | 0xffff_8000_4444_0000 | 0xffff_8000_444b_ffff |
24
+ // | Kernel stack 0 guard | 0xffff_8000_5554_f000 | 0xffff_8000_5554_ffff |
25
+ // | Kernel stack 0 | 0xffff_8000_5555_0000 | 0xffff_8000_555c_ffff |
26
+ // | Kernel stacks 1+ | 0xffff_8000_555d_0000 | 0xffff_8000_5d5c_ffff |
27
+ // | MMIO address space | 0xffff_8000_6666_0000 | 0xffff_8000_6675_ffff |
28
+ // | Physical memory map | 0xffff_8000_8000_0000 | 0xffff_ffff_ffff_ffff |
28
29
29
30
/// NULL_PAGE is reserved and always unmapped to ensure that null pointer
30
31
/// dereferences always result in a page fault.
@@ -75,8 +76,9 @@ const KERNEL_STACK_GUARD_END: VirtAddr = const_virt_addr(0xffff_8000_5554_ffff a
75
76
/// the end address.
76
77
///
77
78
pub const KERNEL_STACK : VirtAddrRange = VirtAddrRange :: new ( KERNEL_STACK_END , KERNEL_STACK_START ) ;
78
- const KERNEL_STACK_START : VirtAddr = const_virt_addr ( 0xffff_8000_555c_ffff as u64 ) ;
79
+ const KERNEL_STACK_START : VirtAddr = const_virt_addr ( 0xffff_8000_5d5c_ffff as u64 ) ;
79
80
const KERNEL_STACK_END : VirtAddr = const_virt_addr ( 0xffff_8000_5555_0000 as u64 ) ;
81
+ pub const KERNEL_STACK_1_START : VirtAddr = const_virt_addr ( 0xffff_8000_555d_0000 as u64 ) ;
80
82
81
83
/// MMIO_SPACE is the virtual address space used for accessing
82
84
/// hardware devices via memory mapped I/O.
0 commit comments