Commit Graph

102 Commits

Author SHA1 Message Date
Philipp Oppermann
6322bcce2a Use pc-keyboard crate for translating scancodes 2018-11-17 16:31:51 +01:00
Philipp Oppermann
e7d4012653 Import lazy_static through normal use 2018-11-13 11:36:40 +01:00
Philipp Oppermann
a56112e789 The bootloader is now buildable on all platforms (#497)
It is now also linked with LLD, so it can be compiled out of the box on Linux, Windows, and macOS.
2018-11-09 08:56:19 +01:00
acheronfail
68ffc3cd59 refactor interrupts (#476) 2018-10-20 18:57:17 +02:00
acheronfail
5243ef874d add gifs for keyboard and fix source to compile 2018-10-20 18:55:04 +02:00
acheronfail
7ad0ed9254 update source to match draft 2018-10-20 18:55:04 +02:00
Philipp Oppermann
f2d2c476f3 The bootloader_precompiled crate should be in lib.rs 2018-07-20 10:50:11 +02:00
Philipp Oppermann
3365a4f9ff Remove unneeded const_fn feature 2018-07-01 18:26:48 +02:00
Philipp Oppermann
22bf95ac19 Run rustfmt 2018-06-18 23:48:17 +02:00
Philipp Oppermann
99c0fa5ebf Redesign code 2018-06-18 21:30:47 +02:00
Philipp Oppermann
5499471279 Begin porting the double faults post 2018-06-18 21:30:47 +02:00
Philipp Oppermann
6529cbc674 Run rustfmt 2018-06-12 19:26:17 +02:00
Philipp Oppermann
8b5be6ebc0 Implement code for integration test post 2018-06-12 19:25:53 +02:00
Philipp Oppermann
2629945c72 Delete code from first edition 2018-02-10 16:42:51 +01:00
Rob Gries
f7868a1bd8 Use proper size for heap init (#376) 2017-12-15 10:06:57 +01:00
Philipp Oppermann
e89e4f5277 Rewrite bump allocator and integrate it in main crate 2017-11-19 15:29:36 +01:00
Will
3e7aea0d51 Fix eh_personality linker errors (#364) 2017-11-14 15:21:14 +01:00
johanmon
30fcae9dce A rewrite of the bump allocator to conform to the new API (#361) 2017-10-24 08:31:08 +02:00
Philipp Oppermann
b58ee1e52b Add new const_unique_new feature gate (#355) 2017-10-03 13:29:22 +02:00
Will
0175e83387 Update to use the new API for custom allocators (#348)
* Update to new allocator API

* Change linked_list_allocator dependency to link directly to git repository

* Add Cargo.lock to gitignore
2017-08-20 19:36:30 +07:00
Philipp Oppermann
ff8e8e0f8b The collections crate was merged into the alloc crate (#333) 2017-06-20 17:41:28 +02:00
Philipp Oppermann
02eaeb7af1 Switch to x86_64 crate and use its idt module 2017-03-15 16:58:15 +01:00
Philipp Oppermann
1be2f42791 Make panic_fmt public to fix private_no_mangle_fns warning 2017-01-04 16:13:27 +01:00
Philipp Oppermann
e08bd375ae Allocate a new double fault stack in interrupts::init 2017-01-02 19:11:56 +01:00
Philipp Oppermann
47755d541d Trigger a stack overflow (still causes a triple fault) 2017-01-02 19:11:56 +01:00
Philipp Oppermann
dfa1cc48c9 Add a double fault handler (and trigger it) 2017-01-02 19:11:56 +01:00
Philipp Oppermann
7db15cf892 Reset source code to master again
(in order to follow the post and test the exact code from it)
2017-01-02 19:11:56 +01:00
Philipp Oppermann
ceb44d9c2e Use x86's TaskStateSegment and use usize for stack pointers 2016-12-30 14:52:04 +01:00
Philipp Oppermann
ef786e1fe8 Update post and code 2016-12-30 14:52:04 +01:00
Philipp Oppermann
5f8de6e871 Create TSS and GDT modules and use a double fault stack 2016-12-30 14:52:04 +01:00
Philipp Oppermann
0cd2577abe Some code for double faults post 2016-12-30 14:50:53 +01:00
Philipp Oppermann
02697891e2 Update x86 crate to version 0.8.0 (#266) 2016-12-21 14:59:57 +01:00
Philipp Oppermann
c5dd983949 Mark panic_fmt as no_mangle to work around rust-lang/rust#38281 (#262) 2016-12-19 11:32:20 +01:00
Philipp Oppermann
e9735738f7 Fix panic_fmt arguments: file is a &'static str 2016-11-26 12:15:34 +01:00
Philipp Oppermann
d7a445b1bb Use volatile operations for accessing the VGA buffer 2016-10-06 23:57:26 +02:00
Philipp Oppermann
a04924955a Add missing license headers and update copyright year (#232) 2016-10-02 18:20:48 +02:00
Philipp Oppermann
00701ca474 Add code for “Returning from Exceptions” 2016-09-21 14:34:32 +02:00
Philipp Oppermann
3bd5e56e3f Use upstream lazy_static and update once crate 2016-08-04 20:09:25 +02:00
Philipp Oppermann
69f1b58bb0 Add and test a handler_with_error_code macro and a page fault handler 2016-08-03 17:00:18 +02:00
Philipp Oppermann
df1e39edb2 Add and test an invalid opcode handler function 2016-08-03 17:00:18 +02:00
Philipp Oppermann
e7ee1faaba Add a wrapper function and print the exception stack frame 2016-08-03 17:00:18 +02:00
Philipp Oppermann
297f8442b9 Reset src to master to be able to follow step-by-step 2016-08-03 17:00:18 +02:00
Philipp Oppermann
398ba7a424 Provoke a page fault 2016-08-03 17:00:18 +02:00
Philipp Oppermann
40b565947b Test the two-stage exception handler in code 2016-08-03 17:00:18 +02:00
Philipp Oppermann
2e0f4f9161 Begin code for upcoming post 2016-08-03 17:00:11 +02:00
Philipp Oppermann
e8b3a1fff1 Catch divide error instead of page fault
The divide error pushes no error code. Thus we avoid stack misalignment (see #184).
2016-06-25 17:12:04 +02:00
Philipp Oppermann
952f7ed5e3 Create dummy _Unwind_Resume function to fix libcore linker errors 2016-06-24 13:37:02 +02:00
Philipp Oppermann
f4eb589f19 We don't need _Unwind_Resume anymore 2016-05-29 18:00:58 +02:00
Philipp Oppermann
f58a6fe185 Add a print_error function, which works for exceptions inside println 2016-05-28 15:47:34 +02:00
Philipp Oppermann
c1df1d3354 Initialize the IDT and provoke a page fault 2016-05-28 15:47:34 +02:00