Commit Graph

557 Commits

Author SHA1 Message Date
Philipp Oppermann
e129da8cc2 Better Exception Messages: Take stack_frame argument as reference 2016-11-01 17:46:57 +01:00
Philipp Oppermann
15feb9a120 Use references for the ExceptionStackFrame argument
We require/assume that these pointers are correct. Using references is cleaner than blindly dereferencing raw pointers.

Important: The Rust book guarantees that: “At runtime, a raw pointer * and a reference pointing to the same piece of data have an identical representation.”
2016-11-01 16:56:11 +01:00
Philipp Oppermann
f737c302e7 therefor -> for that 2016-10-31 15:31:32 +01:00
Philipp Oppermann
7a0bb1ff7b Print an empty line before exception error messages 2016-10-31 01:37:37 +01:00
Philipp Oppermann
7254528d53 Merge pull request #249 from phil-opp/fix-println-deadlock
Update `print` macro to avoid deadlock; remove hacky `print_error` function
2016-10-31 01:12:34 +01:00
Philipp Oppermann
3bfa5a8178 Update “Returning from Exceptions” to use println 2016-10-31 01:04:53 +01:00
Philipp Oppermann
25fca59248 Update “Better Exception Messages” to use println 2016-10-30 20:06:51 +01:00
Philipp Oppermann
f14baa218e Fix typo 2016-10-30 19:12:55 +01:00
Philipp Oppermann
ca522db7bf Exceptions inside printlns are no longer a problem
The recent update to the vga driver evaluates the arguments before locking the global stdout writer
2016-10-30 17:32:04 +01:00
Philipp Oppermann
41c87636e0 Improve wording and add some more QEMU screenshots 2016-10-30 17:23:17 +01:00
Philipp Oppermann
cfccffca39 Trigger and fix the deadlock for nested printlns 2016-10-30 16:54:03 +01:00
Philipp Oppermann
c69f73b9b2 Improve some explanations in the section about fomatting macros 2016-10-30 16:53:24 +01:00
Philipp Oppermann
9b83b2853e Remove print_error and use normal println in exception handlers 2016-10-30 16:51:59 +01:00
Philipp Oppermann
212dcfa592 Make print_error safe by using the global writer
This is now possible since we fixed the deadlock problem.
2016-10-30 16:51:59 +01:00
Philipp Oppermann
d96df500a7 Create a new print function and use it in the print macro
This fixes the deadlock problem, because the format_args is now evaluated before locking the screen writer. So `println!("{:?}", {println!("");})` no longer triggers a deadlock.
2016-10-30 16:51:59 +01:00
Dentosal
1fe9e87ead Remap the Kernel: Fixed broken link (#247) 2016-10-24 00:06:58 +02:00
Matanel Levi
f35ea9430c Page Tables: clarify that we need to map the P4 table recursively before enabling paging (#246)
We have to map the P4 table recursively before setting paging - can't do this wherever we'd like.
2016-10-23 16:04:09 +02:00
Philipp Oppermann
92b04dfba7 Remove old “Update” sections (#244)
Most of these updates are quite old and thus distracting. Instead, we now have a “Recent Changes” box in the sidebar of the front page.
2016-10-15 17:10:43 +02:00
Philipp Oppermann
941fca8b0d Better Exception Messages: Add example code that triggers the triple fault again (#242) 2016-10-12 16:56:25 +02:00
Philipp Oppermann
8bec3b42b0 Merge pull request #239 from phil-opp/vga_volatile
Printing to Screen: Use volatile operations for accessing the VGA Buffer
2016-10-08 15:49:00 +02:00
Philipp Oppermann
7db50a1a62 Fine-tune the section about volatiles 2016-10-08 15:41:59 +02:00
Philipp Oppermann
895cab981b Rewrite post to use and explain volatiles
Also extends some other explanations.
2016-10-06 23:57:26 +02:00
Philipp Oppermann
d7a445b1bb Use volatile operations for accessing the VGA buffer 2016-10-06 23:57:26 +02:00
Philipp Oppermann
cd93924159 Add a footnote that userspace programs can still use SSE
Fixes #227
2016-10-02 18:49:20 +02:00
Philipp Oppermann
0f4d1ce303 Add missing license headers (#233) 2016-10-02 18:28:35 +02:00
Philipp Oppermann
a04924955a Add missing license headers and update copyright year (#232) 2016-10-02 18:20:48 +02:00
Philipp Oppermann
51e19d104b Merge pull request #230 from phil-opp/multiboot2-crates.io
Use crates.io version of multiboot2
2016-09-27 13:49:36 +02:00
Philipp Oppermann
2b07d88b62 Update post to use multiboot2 from crates.io 2016-09-27 13:46:29 +02:00
Philipp Oppermann
c6b1346956 Use crates.io version of multiboot2 2016-09-27 13:43:53 +02:00
Philipp Oppermann
05c537d1e7 Merge pull request #229 from phil-opp/update-bitfield
Update bit_field to 0.5.0 and use new trait based API
2016-09-27 13:36:29 +02:00
Philipp Oppermann
4db15a7e80 Update post to new bit_field code 2016-09-27 13:25:03 +02:00
Philipp Oppermann
2639a46a5e Reorder items to cargo-edit format 2016-09-27 13:24:43 +02:00
Philipp Oppermann
6eba03dd58 Update bit_field to 0.5.0 and use new API 2016-09-27 13:24:01 +02:00
Philipp Oppermann
f73006a24f Fix link syntax (#228) 2016-09-25 21:48:43 +02:00
Philipp Oppermann
3315f54978 Merge pull request #223 from 4e554c4c/master
Fix for #220: BumpAllocator overflow

Fixes #220
2016-09-23 01:17:23 +02:00
Calvin Lee
5b9a45674d Minor wording change
"so that the calling code cannot overflow `heap_start`" -> "so that `alloc_end` cannot overflow"
2016-09-22 16:03:32 -06:00
Calvin Lee
54e02fd6b5 Fixes #220: BumpAllocator overflow
I also fixed a spelling error and replaced a tab with a space
in the blog post where `allocate()` was created.
2016-09-22 12:25:59 -06:00
Philipp Oppermann
379ca660ae Merge pull request #221 from phil-opp/cross-compile-core
Use rustup for cross compiling and also explain xargo
2016-09-22 15:59:20 +02:00
Philipp Oppermann
901ca7f2ed Rewrite “Cross Compile Libcore” guide using rustup and xargo
Rustup replaces the “Download it” solution and xargo the “Build it using cargo” solution.
2016-09-22 15:34:24 +02:00
Philipp Oppermann
2e013397e3 Use rustup for cross compiling libcore 2016-09-22 15:15:46 +02:00
Philipp Oppermann
f8151580de Fix date of new post 2016-09-21 15:39:43 +02:00
Philipp Oppermann
3a82be2c1f Merge pull request #219 from phil-opp/returning-from-exceptions
“Returning from Exceptions”
2016-09-21 15:26:16 +02:00
Philipp Oppermann
9f7994772b Add ~/.cargo/bin to PATH 2016-09-21 15:17:39 +02:00
Philipp Oppermann
bd285b1731 Use kalakris-cmake for cmake 2.8.11 2016-09-21 14:54:49 +02:00
Philipp Oppermann
43ed189b35 Fix travis: Install xargo in before_script 2016-09-21 14:45:03 +02:00
Philipp Oppermann
5c05f7c438 Add new post to README 2016-09-21 14:41:47 +02:00
Philipp Oppermann
00701ca474 Add code for “Returning from Exceptions” 2016-09-21 14:34:32 +02:00
Philipp Oppermann
a4054c478c We require xargo now 2016-09-21 14:33:09 +02:00
Philipp Oppermann
f38805c3d3 Final improvements 2016-09-21 14:32:42 +02:00
Philipp Oppermann
706c48a410 Add source files for the diagrams 2016-09-20 17:35:39 +02:00