Philipp Oppermann
02b3ebcd27
Add another image for double fault post
2017-01-02 19:10:58 +01:00
Philipp Oppermann
cce40a1d67
Many small improvements
2016-12-30 14:54:46 +01:00
Philipp Oppermann
e121edced2
Change the GDT push logic
...
Instead of looking for a zero field, we now keep track of the next free index in a separate field. This avoids the bug that the high u64 of a pushed TSS descriptor is treated as empty.
2016-12-30 14:54:46 +01:00
Philipp Oppermann
1e45ddd79c
Link double fault post and source in Readme
2016-12-30 14:52:04 +01:00
Philipp Oppermann
ec358321da
Finish first draft of double faults post
2016-12-30 14:52:04 +01:00
Philipp Oppermann
c3bfcbcd8d
Silence dead code warning
2016-12-30 14:52:04 +01:00
Philipp Oppermann
58e7cc77d0
Data segment descriptors are not needed in 64-bit mode
2016-12-30 14:52:04 +01:00
Philipp Oppermann
0b03c18b06
Rewrite interrupts::init using a lazy_static IDT again
2016-12-30 14:52:04 +01:00
Philipp Oppermann
3e6b1a8a35
Rewrite gdt module using an array instead of Vec
2016-12-30 14:52:04 +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
d1fb1516fa
Minor improvements to post
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
038fd097b6
Update post
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
b4bc47d5d9
Add a new section about the causes of double faults
...
(+ many other improvements)
2016-12-30 14:51:47 +01:00
Philipp Oppermann
0cd2577abe
Some code for double faults post
2016-12-30 14:50:53 +01:00
Philipp Oppermann
8eba47816f
Begin new post about double faults
2016-12-30 14:50:52 +01:00
Philipp Oppermann
c33f01d8f7
Update printing-to-screen post to use spin 0.4.5
2016-12-30 14:47:39 +01:00
Philipp Oppermann
89abbf1038
Update to spin 0.4.5
...
Fixes #274
2016-12-30 14:40:57 +01:00
Philipp Oppermann
14babd8c2a
Add a Xargo.toml for xargo 0.3.0 and update the corresponding post ( #272 )
2016-12-29 16:45:24 +01:00
Philipp Oppermann
8685cc602f
Add images for double fault post
2016-12-29 15:25:58 +01:00
Philipp Oppermann
02697891e2
Update x86 crate to version 0.8.0 ( #266 )
2016-12-21 14:59:57 +01:00
Philipp Oppermann
a7a9aabce7
Remove workspace from post as well ( #267 )
2016-12-21 14:55:09 +01:00
Philipp Oppermann
fcd453ac29
Remove cargo workspace ( #265 )
2016-12-21 00:19:30 +01:00
Philipp Oppermann
00452c2302
Revert "map the P4 table recursively before setting paging" ( #259 )
2016-12-19 11:34:21 +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
f4ff2b0000
Keep installed tools up-to-date using cargo-update
2016-12-19 11:01:21 +01:00
Philipp Oppermann
9583cdea28
Test for rustfmt/xargo instead of using || true ( #257 )
2016-11-30 16:29:01 +01:00
Anton Strömkvist
bef61116fd
Minor grammatical error fix ( #258 )
...
In `02-entering-longmode.md`
2016-11-30 16:28:45 +01:00
Philipp Oppermann
c76f7b8b98
Merge pull request #256 from phil-opp/p1
...
Fix panic_fmt arguments: file is a &'static str
2016-11-26 12:27:42 +01:00
Philipp Oppermann
f4c9c12047
Fix panic_fmt arguments in post
2016-11-26 12:17:12 +01:00
Philipp Oppermann
e9735738f7
Fix panic_fmt arguments: file is a &'static str
2016-11-26 12:15:34 +01:00
Philipp Oppermann
c7268cff3b
Fix CI for xargo 0.2.0
2016-11-19 10:46:07 +01:00
Philipp Oppermann
a1fccc12b6
Set date of last update correctly for posts ( #254 )
2016-11-08 17:45:36 +01:00
Philipp Oppermann
e304b8ee21
Update images for #252
2016-11-01 17:56:31 +01:00
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