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
|
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 |
|
Philipp Oppermann
|
fd08b1a123
|
Add target specification file
|
2019-01-25 12:40:20 +01:00 |
|
Philipp Oppermann
|
bb569d0794
|
Add Cargo.lock
This file fixes dependency versions and ensures reproducible builds
|
2019-01-25 12:39:35 +01:00 |
|
Philipp Oppermann
|
a80b09b1ae
|
Add #![no_main] attribute and Linux entry point
|
2019-01-25 12:37:02 +01:00 |
|
Philipp Oppermann
|
2f9cbab885
|
Disable unwinding
|
2019-01-25 12:35:11 +01:00 |
|
Philipp Oppermann
|
3feee7761e
|
Add panic handler
|
2019-01-25 12:34:39 +01:00 |
|
Philipp Oppermann
|
926940beb0
|
Add #![no_std] attribute
|
2019-01-25 12:34:28 +01:00 |
|
Philipp Oppermann
|
0fbb5f99cf
|
Create new blog_os project
|
2019-01-25 12:32:07 +01:00 |
|
Philipp Oppermann
|
491b7a8f2e
|
Initial commit
|
2019-01-25 12:30:14 +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 |
|