Commit Graph

488 Commits

Author SHA1 Message Date
Philipp Oppermann
86efbda8d8 Remove panic=abort note 2016-08-05 11:22:20 +02:00
Philipp Oppermann
a5acfee7c3 Improve some heading levels 2016-08-05 11:22:20 +02:00
Philipp Oppermann
9603ac1ccc Create a cargo workspace for subcrates (#202) 2016-08-05 11:21:57 +02:00
Philipp Oppermann
a01034cbfc Merge pull request #201 from phil-opp/lazy_static
Use upstream lazy_static and upgrade `once` to latest version
2016-08-04 20:14:55 +02:00
Philipp Oppermann
4a1fa3a65a Explain how to add lazy_static to the main crate 2016-08-04 20:09:25 +02:00
Philipp Oppermann
3bd5e56e3f Use upstream lazy_static and update once crate 2016-08-04 20:09:25 +02:00
Mark Schmale
74cadb15a3 removed extra "use" (#197)
I'm not a native speaker so I'm not 100% sure but I guess this "use" shouldn't be there.
2016-08-04 13:58:49 +02:00
Philipp Oppermann
9ec1860f02 Merge pull request #196 from phil-opp/p1
Fix clobber syntax and add missing rsi clobber in code
2016-08-04 01:12:50 +02:00
Philipp Oppermann
46d41d9c3d Add missing rsi clobber in code as well 2016-08-04 01:07:51 +02:00
Philipp Oppermann
cde3f535c7 Fix clobber syntax in post 2016-08-04 01:07:39 +02:00
Philipp Oppermann
3a62b42414 Link to nightly docs as stable still has wrong clobber syntax
See #195
2016-08-04 01:00:55 +02:00
Leon Loopik
ca925c49e0 Add rsi to the clobber list (#195)
In the second macro (handler_with_error_code), we pop the error code into rsi, this means we are changing the value of rsi in the assembly block, so we should add it to the clobbers.

I am quite new to this, so please close this request if I am completely wrong.

(Side question: An other thing I came across while trying to figure out if this was correct, is that every documentation says you should add curly brackets around register names, can someone tell me why this is not done here?)
2016-08-04 00:19:12 +02:00
Philipp Oppermann
5e6a8cb69b Link gitter chat 2016-08-03 20:48:24 +02:00
Philipp Oppermann
88fe633b87 Merge pull request #194 from phil-opp/better-exception-messages
New post: Better Exception Messages
2016-08-03 17:03:13 +02:00
Philipp Oppermann
3312478f71 Include “Better Exception Messages” in README 2016-08-03 17:00:18 +02:00
Philipp Oppermann
60a58a8c9c Fix github tag link 2016-08-03 17:00:18 +02:00
Philipp Oppermann
2b629415a4 Final improvements 2016-08-03 17:00:18 +02:00
Philipp Oppermann
d13460812d Run rustfmt 2016-08-03 17:00:18 +02:00
Philipp Oppermann
a9319ea83e Translate error code and print cr2 register 2016-08-03 17:00:18 +02:00
Philipp Oppermann
69f1b58bb0 Add and test a handler_with_error_code macro and a page fault handler 2016-08-03 17:00:18 +02:00
Philipp Oppermann
df1e39edb2 Add and test an invalid opcode handler function 2016-08-03 17:00:18 +02:00
Philipp Oppermann
71ebb23ec3 Add a handler macro that creates wrapper functions 2016-08-03 17:00:18 +02:00
Philipp Oppermann
e7ee1faaba Add a wrapper function and print the exception stack frame 2016-08-03 17:00:18 +02:00
Philipp Oppermann
d97a8a3210 Silence dead code warnings 2016-08-03 17:00:18 +02:00
Philipp Oppermann
297f8442b9 Reset src to master to be able to follow step-by-step 2016-08-03 17:00:18 +02:00
Philipp Oppermann
398ba7a424 Provoke a page fault 2016-08-03 17:00:18 +02:00
Philipp Oppermann
261f92e2e5 Print cr2 in page_fault_handler 2016-08-03 17:00:18 +02:00
Philipp Oppermann
1ba595aab3 Rename to better-exception-messages 2016-08-03 17:00:18 +02:00
Philipp Oppermann
710cebe695 Finish exceptions diagnostics post 2016-08-03 17:00:18 +02:00
Philipp Oppermann
e9d2d594ab Add handler! macros 2016-08-03 17:00:18 +02:00
Philipp Oppermann
f14876dfff Next section: Debug the failure on real hardware 2016-08-03 17:00:18 +02:00
Philipp Oppermann
b1de7a9100 Add a ToC 2016-08-03 17:00:18 +02:00
Philipp Oppermann
40b565947b Test the two-stage exception handler in code 2016-08-03 17:00:18 +02:00
Philipp Oppermann
e8220b3781 Describe the two-stage exception handler 2016-08-03 17:00:18 +02:00
Philipp Oppermann
2e0f4f9161 Begin code for upcoming post 2016-08-03 17:00:11 +02:00
Philipp Oppermann
95c0452bcb Begin new post 2016-08-03 14:44:52 +02:00
Philipp Oppermann
68e2495d9c Rename modifying-page-tables.md to page-tables.md 2016-08-03 14:43:01 +02:00
Philipp Oppermann
9469dc5891 Remove coarse class from ToCs
We will add it dynamically via javascript when the Toc is higher than the viewport.
2016-07-28 19:42:37 +02:00
Anton Strömkvist
6b2f1281ae Fix hex constant (#193)
I assume these were in the wrong order since all the others looked this way :)
2016-07-28 18:01:42 +02:00
Philipp Oppermann
826e303ed0 Merge pull request #192 from phil-opp/post-toc
Add tables of contents to all blog posts
2016-07-17 17:14:50 +02:00
Philipp Oppermann
d4e82b0aa4 Improve heading levels 2016-07-17 17:10:42 +02:00
Philipp Oppermann
bc6f496eb5 Add tables of contents to all blog posts 2016-07-17 17:10:23 +02:00
Philipp Oppermann
62dd13b2e7 Merge pull request #190 from phil-opp/p1
Add aligned .got and .got.plt sections to linker script
2016-07-16 17:22:25 +02:00
Philipp Oppermann
68c1e42356 Update linker script in post (add .got and .got.plt) 2016-07-14 18:11:58 +02:00
Philipp Oppermann
2445b47661 Add aligned .got and .got.plt sections to linker script 2016-07-14 18:07:26 +02:00
Philipp Oppermann
d64e4ba2fc Update x86 crate to 0.7.1 (#189) 2016-07-14 11:21:04 +02:00
Aaron Hill
48e7faa521 Add ENTRY(start) to 'Allocating Frames' blog post linker script (#188) 2016-06-29 09:19:08 +02:00
Philipp Oppermann
f8c5bc5dec Merge pull request #187 from phil-opp/divide_by_zero
Catch divide error instead of page fault
2016-06-25 17:13:29 +02:00
Philipp Oppermann
ca438d9740 Revise plans for the upcoming post 2016-06-25 17:12:04 +02:00
Philipp Oppermann
702e49eaf7 Catch divide-by-zero errors and introduce inline assembly
This commit updates the “Catching Exceptions” post to catch divide-by-zero errors instead of page faults. The reason is a subtle stack alignment bug, which is somehow caused by the additional error code on a page fault. This commit also adds a short introduction to inline assembly.
2016-06-25 17:12:04 +02:00