f0f926b
(HEAD -> master)
kernel_main(): wire up IDT by
2017-10-31 22:13:23 -0500
cfe95a0
+x86_64::interrupts, x86_64::interrupts::gdt by
2017-10-31 22:12:28 -0500
abaf770
x86::memory: return a MemoryController from init(), wire up stackalloc by
2017-10-31 22:11:51 -0500
c6ae501
x86_64::memory: implement an allocator for stacks by
2017-10-31 22:10:54 -0500
3246622
pull in lazy_static, raw-cpuid, bit_field by
2017-10-31 22:10:29 -0500
b103cc9
derive Clone for memory::paging::PageIter by
2017-10-31 22:09:08 -0500
db6cc04
impl Add<usize> for memory::paging::Page by
2017-10-31 22:08:31 -0500
767c85e
add note extolling the extreme badness of the frame allocator by
2017-10-31 22:07:54 -0500
200e1a1
some warning cleanup by
2017-10-31 22:07:30 -0500
500b5f9
bump spin to v0.4.6 (instead of a git ref) by
2017-10-31 22:05:50 -0500
633d571
[extremely gross] port from x86 to the x86_64 crate by
2017-10-30 19:04:19 -0500
f4a16c1
+src::arch::x86_64::interrupts by
2017-10-30 18:47:46 -0500
30b7ebb
docs: more docssssss by
2017-10-30 18:47:31 -0500
80ac44f
alloca: hack in phil-opp's linked_list_allocator by
2017-10-30 18:21:30 -0500
cbe7669
set up a static ::alloca::Allocator as the #[global_allocator] by
2017-09-18 22:37:16 -0500
68caeb6
memory::init(): map memory for the kheap by
2017-09-18 22:37:03 -0500
f27ac4b
+::alloca: wire allocator lib to a rust Alloc by
2017-09-18 22:35:53 -0500
8ab9c74
pull in the bump allocator as a dep by
2017-09-18 22:35:41 -0500
7d90b6e
memory: return the active page table after remapping the kernel by
2017-09-18 22:33:49 -0500
4cbbb20
+lib/alloc/bump: shitty bump allocator for testing by
2017-09-18 22:32:47 -0500
4e7fa1a
memory: implement Page::rage_inclusive() by
2017-09-18 22:32:25 -0500
242b218
memory::init(): double-call guard by
2017-09-18 22:31:22 -0500
8ebf1a2
+lib/once: a little library to make sure stuff only gets called once by
2017-09-18 22:30:27 -0500
e0380c6
vga_console: bounds-check move_cursor() by
2017-09-18 22:30:01 -0500
3b26e71
vga_console: fix write_byte wrapping by
2017-09-18 22:29:40 -0500
e5da571
vga_console: document by
2017-09-18 22:29:28 -0500
590f35a
Xargo.toml: build alloc by
2017-09-17 14:45:11 -0500
e9dee70
switch on feature(const_unique_new) by
2017-09-17 14:44:52 -0500
288e4b5
depend on a fork of spin-rs that actually builds on nightly by
2017-09-17 14:44:26 -0500
f4706ec
make HierarchicalLevel pub by
2017-09-16 09:19:18 -0500
9045c8c
Unique::new() -> Unique::new_unchecked() by
2017-09-16 09:18:57 -0500
d83db2e
Use the old p4 table's page as a guard page by
2017-06-06 14:35:57 -0500
c361682
slight cleanup; move memory initialization to memory::init() by
2017-06-06 14:35:44 -0500
b62a399
Remove scary warning comment in kernel_main() by
2017-06-06 14:35:03 -0500
ae4c7cb
Configurable log level by
2017-06-06 14:34:55 -0500
9558150
boot.asm: fix typo that made p3[0] -> p2 PRESENT but not WRITABLE by
2017-06-05 11:18:08 -0500
0b22410
kernel_main: enable NXE, WRPROT bits before remapping kernel by
2017-06-05 11:17:49 -0500
718b2ee
kernel_main: some additional logging/testing stuff by
2017-06-05 11:17:34 -0500
6344677
remap_kernel: Identity map the Multiboot info structure by
2017-06-05 11:16:15 -0500
e5bca41
memory::paging::remap_kernel: use ELF section flags when setting up pages by
2017-06-05 11:15:20 -0500
24f0bd6
memory::paging::entry::Entry: implement flag loading from ELF section by
2017-06-05 11:14:54 -0500
c83ab3c
Remap the kernel! (finally) by
2017-06-04 17:51:17 -0500
4985b66
memory: add Frame::range_inclusive() and FrameIter implementing Iterator by
2017-06-04 17:50:29 -0500
f897b6b
memory::paging: add an InactivePageTable struct by
2017-06-04 17:49:50 -0500
c2a1b84
memory::paging::ActivePageTable: implement with(), switch() by
2017-06-04 17:49:24 -0500
0f847cd
Implement a TemporaryPage by
2017-06-04 17:48:43 -0500
8fa0c57
memory::paging: Move most of ActivePageTable to memory::paging::mapper::Mapper by
2017-06-04 17:48:14 -0500
27ead2f
linker.ld: Make sure all ELF sections are page-aligned by
2017-06-04 17:46:03 -0500
aa8cab9
Temporary test function for paging by
2017-06-04 15:55:16 -0500
6efd053
memory::paging::ActivePageTable: impl translation, mapping, unmapping by
2017-06-04 15:54:37 -0500
3bb62e4
memory::paging::Page: impl useful functions by
2017-06-04 15:54:12 -0500
24032a9
memory::paging: add a struct to own the P4 table, make Page Clone+Copy by
2017-06-04 15:53:45 -0500
e01d081
memory::paging: Add note that we use recursive P4 paging by
2017-06-04 15:52:19 -0500
d471b2c
memory::paging::entry::Entry.set(): nicer misalignment panic message by
2017-06-04 15:51:54 -0500
ec45a5e
memory: private "cloning" of Frames by
2017-06-04 15:51:25 -0500
2813cce
memory::paging::Table: next_table, next_table_create by
2017-06-04 15:50:51 -0500
27b6e55
memory::paging::Table: type-system based table level safety by
2017-06-04 15:50:10 -0500
7d7bf0d
boot.asm: recursively map p4[511] -> p4 by
2017-06-04 15:49:05 -0500
d889ff1
Makefile: add debug rule making qemu wait for gcc connection by
2017-06-04 15:48:46 -0500
8e2ee50
Preliminary data structures required for a page table manager by
2017-06-04 11:45:26 -0500
791ddb5
Test the frame allocator by
2017-06-04 11:45:14 -0500
7de3dcf
Implement a basic physical frame allocator by
2017-06-04 11:45:00 -0500
e94f741
lib.rs: Wire Multiboot section parsing up by
2017-06-04 11:43:57 -0500
4c6c6d4
Add bitflags, multiboot2 to Cargo.toml by
2017-06-04 11:42:17 -0500
1d4eb87
linker.ld: merge small sections by
2017-06-04 11:37:11 -0500
1b68cf6
Pull in the `x86` crate in lib.rs by
2017-06-04 11:30:16 -0500
600ffcc
add a hlt-loop in _Unwind_Resume() by
2017-06-04 11:29:45 -0500
65761dc
Make panic!s nicer by
2017-06-04 11:29:34 -0500
48ca218
Implement a `log` backend which writes to the VGA console by
2017-06-04 11:27:14 -0500
ea581fc
Nicer startup message by
2017-06-04 11:26:13 -0500
c250c57
vga_console: add Writer.move_cursor(), make write_str move the cursor by
2017-06-04 11:24:51 -0500
d5fcb9d
Make vga_console::Color::new() pub by
2017-06-04 11:24:34 -0500
3b21392
documentation! by
2017-06-04 11:24:23 -0500
5c8c19a
Add empty Xargo.toml by
2017-06-03 17:20:06 -0500
2147553
lib.rs: reindent, wire up console printing by
2017-06-03 17:18:50 -0500
8aa1f15
Add VGA text-mode console driver by
2017-06-03 17:18:05 -0500
323e72b
boot.asm: Expand the stack to be four pages long by
2017-06-03 17:14:41 -0500
ec431fd
boot.asm: indentation by
2017-06-03 17:14:22 -0500
ce9fb7c
boot.asm: Clean up start by
2017-06-03 17:14:05 -0500
84d7ef1
long.asm: ensure hlt state, print EXIT instead of OKAY by
2017-06-03 17:13:12 -0500
c04b4cb
Add an editorconfig by
2017-06-03 17:12:31 -0500
127ad88
Make sure Xargo is always run by make by
2017-06-03 17:10:53 -0500
6a4f6c7
Makefile to tie everything together by
2017-06-03 13:00:27 -0500
7393da2
Add Rust stuff (unwind stubs, kernel_main() stub) by
2017-06-03 13:00:01 -0500
8285981
'''small''' asm multiboot2 stub (switches to long mode) by
2017-06-03 12:59:19 -0500
1fa5e0d
Initial commit by
2017-06-03 12:58:42 -0500