Commit Graph

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