Philipp Oppermann
571f1d2fbf
Merge pull request #252 from phil-opp/stack_frame-reference
...
Exceptions: Take the ExceptionStackFrame per reference
2016-11-01 17:56:25 +01:00
Philipp Oppermann
9963961f35
Test the handler_with_error_code macro in a different way
...
We now take stack_frame as a immutable reference and we shouldn't write to a &. So the old test example (page faults as breakpoints) becomes even more hacky. Instead, we're now deliberately entering an endless page fault loop to check our iretq logic.
2016-11-01 17:50:51 +01:00
Philipp Oppermann
67857bde2f
Returning from Exceptions: Take stack_frame as reference
2016-11-01 17:46:57 +01:00
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
a6d52f8244
Merge pull request #250 from phil-opp/println-screenshots
...
New screenshots with println (green) instead of print_error (red)
2016-10-31 01:12:40 +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
f300afe139
New screenshots with println instead of print_error
2016-10-31 01:07:06 +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
9e7ea0b65f
Remove images that are no longer needed
2016-10-30 17:30:28 +01:00
Philipp Oppermann
beba773e52
Add some more QEMU screenshots for “Printing to Screen”
2016-10-30 17:24:12 +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
a55a144a26
Use absolute times instead of durations ( #236 )
2016-10-04 20:16:39 +02:00
Philipp Oppermann
83ce5d2d4d
Use non-breaking spaces when formatting durations
2016-10-04 19:39:55 +02:00
Philipp Oppermann
1829509800
Merge pull request #235 from phil-opp/recent-updates
...
Add a “Recent Updates” section on the front page
2016-10-04 19:32:57 +02:00
Philipp Oppermann
6a5b3c9d1a
Cache cargo target folder
2016-10-04 19:29:08 +02:00
Philipp Oppermann
f10982aa7d
Put “Recent Updates” to the right sidebar on large displays
2016-10-04 19:18:57 +02:00
Philipp Oppermann
9ec3914aa3
Add “Recent Updates” to index.html
2016-10-04 19:18:35 +02:00
Philipp Oppermann
b7351b0f69
Remove X-Frame-Options meta tag
2016-10-04 19:18:12 +02:00
Philipp Oppermann
12b66968dc
Call codegen crate in build script
2016-10-04 19:17:46 +02:00
Philipp Oppermann
eef00ff35c
Refactor: Move build commands into a new travis-build.sh
2016-10-04 19:15:19 +02:00
Philipp Oppermann
9d5728cdcd
Create a cargo workspace
2016-10-04 19:11:32 +02:00
Philipp Oppermann
b22c1f8113
Add a codegen crate for generating an “Recent Updates” section
2016-10-04 19:10:04 +02:00
Philipp Oppermann
620c4858a3
Switch travis to language:rust (we're using binary hugo releases now)
2016-10-04 15:31:57 +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