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
Philipp Oppermann
e8b3a1fff1
Catch divide error instead of page fault
...
The divide error pushes no error code. Thus we avoid stack misalignment (see #184 ).
2016-06-25 17:12:04 +02:00
Philipp Oppermann
c9d8afe434
Run rustfmt
2016-06-25 17:08:26 +02:00
Philipp Oppermann
2f9e6cc0d0
Minor improvements to catching exceptions post
2016-06-25 17:06:57 +02:00
Philipp Oppermann
84ba085a0a
The section will be only about exceptions ( #186 )
2016-06-24 13:59:17 +02:00
Philipp Oppermann
b7a47ee001
Add gitter badge ( #183 )
2016-06-24 13:54:35 +02:00
Philipp Oppermann
e4cc5b84f1
Merge pull request #185 from phil-opp/unwind_resume
...
Create dummy _Unwind_Resume function to fix libcore linker errors
2016-06-24 13:44:54 +02:00
Philipp Oppermann
f00360d553
Add and explain dummy _Unwind_Resume function in “Set Up Rust” post
2016-06-24 13:37:03 +02:00
Philipp Oppermann
952f7ed5e3
Create dummy _Unwind_Resume function to fix libcore linker errors
2016-06-24 13:37:02 +02:00
Philipp Oppermann
76b83c623e
Revert "Remove unneeded gcc_except_table section" ( #180 )
2016-06-13 18:36:01 +02:00
Philipp Oppermann
20d9037740
Merge pull request #178 from phil-opp/patch5
...
Remove unneeded gcc_except_table section
2016-06-12 16:36:00 +02:00
Philipp Oppermann
1fb6369f61
Remove unneeded gcc_except_table section from blog post
2016-06-12 16:33:55 +02:00
Philipp Oppermann
1083ac9bac
Remove unneeded gcc_except_table section
2016-06-12 16:32:34 +02:00
Ryan Campbell
793eeebfb3
Add missing open brace ( #177 )
2016-06-10 20:36:33 +02:00
Steve Klabnik
1183f5d1e1
Update section header to reflect changes in the text ( #176 )
2016-06-07 21:48:54 +02:00
Philipp Oppermann
bddf35f365
Add missing link to bit_field crate ( #174 )
2016-06-01 01:21:16 +02:00
Jordan Danford
bf0e70746d
Change 'boot load' to 'boot loop' in 'Remap the Kernel' section ( #173 )
2016-05-31 09:11:14 +02:00
Homu
c22e1e8bb1
Auto merge of #172 - phil-opp:phil-opp-patch-1, r=phil-opp
...
Recommend rustup instead of multirust
2016-05-30 23:58:02 +09:00
Philipp Oppermann
4fae6e4731
Recommend rustup instead of multirust
2016-05-30 16:57:28 +02:00
Philipp Oppermann
c2336ceece
Make cross-compile-* and set-up-gdb pages additional resourses
2016-05-29 19:58:44 +02:00
Philipp Oppermann
2f0a3459ad
Merge pull request #170 from phil-opp/cargo-panic-abort
...
Use the `panic=abort` option instead of `-Z no-landing-pads`
2016-05-29 18:49:30 +02:00
Philipp Oppermann
0f5ec6f129
Update “Kernel Heap”: The _Unwind_Resume linker error shouldn't occur anymore
2016-05-29 18:47:38 +02:00
Philipp Oppermann
5d13ff7c3a
Add update note
2016-05-29 18:38:14 +02:00
Philipp Oppermann
d7b05bc6b4
Update “Set Up Rust” post to use the cargo panic option
2016-05-29 18:35:16 +02:00
Philipp Oppermann
f4eb589f19
We don't need _Unwind_Resume anymore
2016-05-29 18:00:58 +02:00
Philipp Oppermann
725c452157
Use the panic=abort option instead of -Z no-landing-pads
2016-05-29 18:00:29 +02:00
Philipp Oppermann
01f9f1056c
Merge pull request #169 from phil-opp/missing-pub
...
Make methods of EntryOptions public
2016-05-29 17:26:48 +02:00
Philipp Oppermann
9ea7ee6f57
Make methods of EntryOptions public in post
2016-05-29 17:25:11 +02:00
Philipp Oppermann
480265872d
Make methods of EntryOptions public
2016-05-29 17:24:21 +02:00
Philipp Oppermann
165bf096a7
Merge pull request #164 from phil-opp/catching-exceptions
...
Add new post about “Catching Exceptions”
2016-05-28 16:00:31 +02:00
Philipp Oppermann
f58a6fe185
Add a print_error function, which works for exceptions inside println
2016-05-28 15:47:34 +02:00
Philipp Oppermann
c1df1d3354
Initialize the IDT and provoke a page fault
2016-05-28 15:47:34 +02:00
Philipp Oppermann
2d15a7bdb1
Make HandlerFunc public, because it is part of a public interface
2016-05-28 15:47:34 +02:00
Philipp Oppermann
c65b16f42d
Create a static IDT with a page fault handler function
2016-05-28 15:47:34 +02:00
Philipp Oppermann
b84c5822df
Create interrupt module with IDT submodule
2016-05-28 15:47:34 +02:00
Philipp Oppermann
245125cb4a
Minor improvements to post
2016-05-28 15:47:33 +02:00
Philipp Oppermann
e2b45d3971
Fix minor errors in code snippets
2016-05-28 15:46:47 +02:00
Philipp Oppermann
865e74bfad
We don't overhaul our build system yet
2016-05-28 14:37:19 +02:00
Philipp Oppermann
745b1f6a0b
Improve _Unwind_Resume description and remove claim about the “next post”
2016-05-28 14:36:23 +02:00
Philipp Oppermann
3b71e9e5a0
Add “Catching Exceptions” post to README
2016-05-28 14:15:20 +02:00
Philipp Oppermann
e4b42b106f
Reset source code to master again
2016-05-28 14:09:45 +02:00
Philipp Oppermann
08540eb602
Remove unneeded unsafe
2016-05-28 14:09:17 +02:00
Philipp Oppermann
4633f84af6
Finish catching-exceptions post
2016-05-28 14:09:17 +02:00
Philipp Oppermann
5054e48c9a
Remove unneeded pubs
2016-05-28 14:09:17 +02:00
Philipp Oppermann
13e94de7b4
Make the load function safe
2016-05-28 14:09:17 +02:00
Philipp Oppermann
8540d3844b
Use new x86::segmentation::cs function and merge set_handler and options
...
We avoid inline assembly and increase safety (it is no longer possible to set the non-present initilization entries to present).
2016-05-28 14:09:17 +02:00
Philipp Oppermann
968ae00de7
Update blog post
2016-05-28 14:09:17 +02:00
Philipp Oppermann
cbe034f3a5
wip
2016-05-28 14:09:17 +02:00
Philipp Oppermann
c961fdc32b
wip
2016-05-28 14:09:17 +02:00
Philipp Oppermann
59382699d0
wip
2016-05-28 14:09:17 +02:00