Philipp Oppermann
|
91ca04e8c2
|
Retrieve address of level 4 page table
|
2019-01-25 14:28:23 +01:00 |
|
Philipp Oppermann
|
ada45c6e52
|
Provoke page fault
|
2019-01-25 14:27:31 +01:00 |
|
Philipp Oppermann
|
207a466707
|
Add a page fault handler
|
2019-01-25 14:26:35 +01:00 |
|
Philipp Oppermann
|
a954c02fbe
|
Use pc-keyboard crate to translate all scancodes
|
2019-01-25 14:23:23 +01:00 |
|
Philipp Oppermann
|
895991fee3
|
Translate keycodes for keys 0-9
|
2019-01-25 14:22:25 +01:00 |
|
Philipp Oppermann
|
25796110f3
|
Read and print scancodes in keyboard interrupt handler
|
2019-01-25 14:21:49 +01:00 |
|
Philipp Oppermann
|
1d153d694e
|
Add a keyboard interrupt handler
|
2019-01-25 14:21:12 +01:00 |
|
Philipp Oppermann
|
c2e4e8c96f
|
Add and use hlt_loop function
|
2019-01-25 14:21:12 +01:00 |
|
Philipp Oppermann
|
599a643d97
|
Remove deadlock provoking code again
This reverts commit 1a39774ead.
|
2019-01-25 14:14:45 +01:00 |
|
Philipp Oppermann
|
5efcecc2f2
|
Avoid deadlock by disabling interrupts in print! and serial_print! macros
|
2019-01-25 14:14:26 +01:00 |
|
Philipp Oppermann
|
1a39774ead
|
Provoke a print! deadlock
|
2019-01-25 14:12:14 +01:00 |
|
Philipp Oppermann
|
1ea8cf6ed1
|
Send end of interrupt signal
|
2019-01-25 14:09:47 +01:00 |
|
Philipp Oppermann
|
4060ac558c
|
Add a timer interrupt handler
|
2019-01-25 14:09:12 +01:00 |
|
Philipp Oppermann
|
28a11e47bc
|
Enable hardware interrupts
|
2019-01-25 14:05:20 +01:00 |
|
Philipp Oppermann
|
6504bed810
|
Initialize the PIC
|
2019-01-25 14:04:55 +01:00 |
|
Philipp Oppermann
|
d8edfccca4
|
Set the stack_index for the double fault handler
|
2019-01-25 14:01:29 +01:00 |
|
Philipp Oppermann
|
ff25a7d86c
|
Reload code and TSS selector registers
|
2019-01-25 13:59:09 +01:00 |
|
Philipp Oppermann
|
b5202e26a1
|
Load the GDT
|
2019-01-25 13:57:40 +01:00 |
|
Philipp Oppermann
|
ea1b031fd3
|
Create a static GDT
|
2019-01-25 13:57:08 +01:00 |
|
Philipp Oppermann
|
db4e879c34
|
Create a new GDT module and a static TSS
|
2019-01-25 13:56:40 +01:00 |
|
Philipp Oppermann
|
7fd29c9cbe
|
Trigger a double fault through a stack overflow -> triple fault
|
2019-01-25 13:55:42 +01:00 |
|
Philipp Oppermann
|
218cb9399e
|
Add a double fault handler and test it
|
2019-01-25 13:54:44 +01:00 |
|
Philipp Oppermann
|
b96636984c
|
Workaround an LLVM bug
|
2019-01-25 13:53:17 +01:00 |
|
Philipp Oppermann
|
b9dd088dc1
|
Create test-exception-breakpoint integration test
|
2019-01-25 13:51:39 +01:00 |
|
Philipp Oppermann
|
c6bd48e812
|
Load and test our new IDT
|
2019-01-25 13:51:06 +01:00 |
|
Philipp Oppermann
|
9448b0e025
|
Create a new IDT
|
2019-01-25 13:49:09 +01:00 |
|
Philipp Oppermann
|
ade6c99885
|
Add an interrupts module
|
2019-01-25 13:47:28 +01:00 |
|
Philipp Oppermann
|
59579108a7
|
Add test-basic-boot and test-panic integration tests
|
2019-01-25 13:45:38 +01:00 |
|
Philipp Oppermann
|
bd39105793
|
Split crate into lib.rs and main.rs
|
2019-01-25 13:44:04 +01:00 |
|
Philipp Oppermann
|
d007aae993
|
Exit qemu
|
2019-01-25 13:38:26 +01:00 |
|
Philipp Oppermann
|
c21f051300
|
Add a serial module
|
2019-01-25 13:37:20 +01:00 |
|
Philipp Oppermann
|
76110c1dd8
|
Add a write_formatted test
|
2019-01-25 13:32:00 +01:00 |
|
Philipp Oppermann
|
92c4206e86
|
Add a write_byte test
|
2019-01-25 13:31:34 +01:00 |
|
Philipp Oppermann
|
a15e01f2eb
|
Construct a vga buffer for testing
|
2019-01-25 13:31:06 +01:00 |
|
Philipp Oppermann
|
76a65ca3ee
|
Include the standard library for unit tests
|
2019-01-25 13:29:02 +01:00 |
|
Philipp Oppermann
|
8e74084d52
|
Silence unused import warnings for cargo test
|
2019-01-25 13:25:24 +01:00 |
|
Philipp Oppermann
|
5366fe2ff8
|
Make cargo test work
|
2019-01-25 13:24:54 +01:00 |
|
Philipp Oppermann
|
6c427e7cee
|
Print the PanicInfo on panic
|
2019-01-25 13:23:04 +01:00 |
|
Philipp Oppermann
|
c43d6191c5
|
Implement print!/println! macros
|
2019-01-25 13:22:33 +01:00 |
|
Philipp Oppermann
|
c1e3fa57c6
|
Add a global interface
|
2019-01-25 13:21:39 +01:00 |
|
Philipp Oppermann
|
3574958d5f
|
Implement new_line method
|
2019-01-25 13:18:58 +01:00 |
|
Philipp Oppermann
|
cbfe6221bd
|
Implement support for Rust's formatting macros
|
2019-01-25 13:18:13 +01:00 |
|
Philipp Oppermann
|
d1897af515
|
Use volatile writes for accessing the VGA buffer
|
2019-01-25 13:16:44 +01:00 |
|
Philipp Oppermann
|
d71e6a7cb6
|
Test the vga buffer module through a print_something function
|
2019-01-25 12:26:05 +01:00 |
|
Philipp Oppermann
|
27f2c4c2ff
|
Add methods to write bytes and strings
|
2019-01-25 12:25:46 +01:00 |
|
Philipp Oppermann
|
19de9e560d
|
Add a VGA buffer module
|
2019-01-25 12:21:51 +01:00 |
|
Philipp Oppermann
|
59f9fe1e69
|
Update Cargo.lock
|
2019-01-25 12:44:36 +01:00 |
|
Philipp Oppermann
|
f4fd0e264a
|
Add default target for bootimage
|
2019-01-25 12:44:27 +01:00 |
|
Philipp Oppermann
|
bbc19e132c
|
Add bootloader dependency
|
2019-01-25 12:42:48 +01:00 |
|
Philipp Oppermann
|
f9ffee92c7
|
Print Hello World! to screen
|
2019-01-25 12:42:21 +01:00 |
|