3moon
|
f0f926b716
|
kernel_main(): wire up IDT
|
8 years ago |
3moon
|
cfe95a098f
|
+x86_64::interrupts, x86_64::interrupts::gdt
|
8 years ago |
3moon
|
abaf770dd1
|
x86::memory: return a MemoryController from init(), wire up stackalloc
|
8 years ago |
3moon
|
c6ae501bc6
|
x86_64::memory: implement an allocator for stacks
|
8 years ago |
3moon
|
324662247b
|
pull in lazy_static, raw-cpuid, bit_field
|
8 years ago |
3moon
|
b103cc9222
|
derive Clone for memory::paging::PageIter
|
8 years ago |
3moon
|
db6cc040e9
|
impl Add<usize> for memory::paging::Page
|
8 years ago |
3moon
|
767c85e665
|
add note extolling the extreme badness of the frame allocator
|
8 years ago |
3moon
|
200e1a167b
|
some warning cleanup
|
8 years ago |
3moon
|
500b5f91db
|
bump spin to v0.4.6 (instead of a git ref)
|
8 years ago |
3moon
|
633d571522
|
[extremely gross] port from x86 to the x86_64 crate
|
8 years ago |
3moon
|
f4a16c16cc
|
+src::arch::x86_64::interrupts
|
8 years ago |
3moon
|
30b7ebb71f
|
docs: more docssssss
|
8 years ago |
3moon
|
80ac44f4fe
|
alloca: hack in phil-opp's linked_list_allocator
|
8 years ago |
3moon
|
cbe7669dc8
|
set up a static ::alloca::Allocator as the #[global_allocator]
|
8 years ago |
3moon
|
68caeb67f1
|
memory::init(): map memory for the kheap
|
8 years ago |
3moon
|
f27ac4bf6e
|
+::alloca: wire allocator lib to a rust Alloc
|
8 years ago |
3moon
|
8ab9c749ed
|
pull in the bump allocator as a dep
|
8 years ago |
3moon
|
7d90b6e9c2
|
memory: return the active page table after remapping the kernel
|
8 years ago |
3moon
|
4cbbb2053f
|
+lib/alloc/bump: shitty bump allocator for testing
|
8 years ago |
3moon
|
4e7fa1ad31
|
memory: implement Page::rage_inclusive()
|
8 years ago |
3moon
|
242b218e47
|
memory::init(): double-call guard
|
8 years ago |
3moon
|
8ebf1a2f28
|
+lib/once: a little library to make sure stuff only gets called once
|
8 years ago |
3moon
|
e0380c6b0a
|
vga_console: bounds-check move_cursor()
|
8 years ago |
3moon
|
3b26e716e3
|
vga_console: fix write_byte wrapping
|
8 years ago |
3moon
|
e5da571f0b
|
vga_console: document
|
8 years ago |
3moon
|
590f35a4c5
|
Xargo.toml: build alloc
|
8 years ago |
3moon
|
e9dee7092e
|
switch on feature(const_unique_new)
|
8 years ago |
3moon
|
288e4b55dc
|
depend on a fork of spin-rs that actually builds on nightly
|
8 years ago |
3moon
|
f4706ec30d
|
make HierarchicalLevel pub
|
8 years ago |
3moon
|
9045c8ca3b
|
Unique::new() -> Unique::new_unchecked()
|
8 years ago |
3moon
|
d83db2e669
|
Use the old p4 table's page as a guard page
|
8 years ago |
3moon
|
c361682d4c
|
slight cleanup; move memory initialization to memory::init()
|
8 years ago |
3moon
|
b62a39956d
|
Remove scary warning comment in kernel_main()
it no longer applies
|
8 years ago |
3moon
|
ae4c7cbd63
|
Configurable log level
|
8 years ago |
3moon
|
955815007e
|
boot.asm: fix typo that made p3[0] -> p2 PRESENT but not WRITABLE
This caused major issues when switching on the WRPROT flag
|
8 years ago |
3moon
|
0b22410c5e
|
kernel_main: enable NXE, WRPROT bits before remapping kernel
|
8 years ago |
3moon
|
718b2eead9
|
kernel_main: some additional logging/testing stuff
|
8 years ago |
3moon
|
63446779fe
|
remap_kernel: Identity map the Multiboot info structure
|
8 years ago |
3moon
|
e5bca418c0
|
memory::paging::remap_kernel: use ELF section flags when setting up pages
|
8 years ago |
3moon
|
24f0bd6ca0
|
memory::paging::entry::Entry: implement flag loading from ELF section
|
8 years ago |
3moon
|
c83ab3c3a2
|
Remap the kernel! (finally)
|
8 years ago |
3moon
|
4985b66dd0
|
memory: add Frame::range_inclusive() and FrameIter implementing Iterator
|
8 years ago |
3moon
|
f897b6b09e
|
memory::paging: add an InactivePageTable struct
|
8 years ago |
3moon
|
c2a1b848cd
|
memory::paging::ActivePageTable: implement with(), switch()
|
8 years ago |
3moon
|
0f847cdb20
|
Implement a TemporaryPage
|
8 years ago |
3moon
|
8fa0c57d48
|
memory::paging: Move most of ActivePageTable to memory::paging::mapper::Mapper
|
8 years ago |
3moon
|
27ead2f20b
|
linker.ld: Make sure all ELF sections are page-aligned
|
8 years ago |
3moon
|
aa8cab945b
|
Temporary test function for paging
|
8 years ago |
3moon
|
6efd05377e
|
memory::paging::ActivePageTable: impl translation, mapping, unmapping
|
8 years ago |