Philipp Oppermann
df3917dfbf
Update to latest bit_field version
...
(cherry picked from commit 46100ba24b )
catching_exceptions
2017-01-25 13:51:55 +01:00
Philipp Oppermann
9d4a761be7
The ReadWrite flag isn't needed for code segments ( #279 )
...
(cherry picked from commit fce85e68ee )
2017-01-18 13:13:55 +01:00
Philipp Oppermann
43ef84d68a
Load null selectors to all data registers
...
This is required for some instructions such as iretq (ss must be valid or 0).
(cherry picked from commit 8f8b46a9b6 )
2017-01-15 14:18:32 +01:00
Philipp Oppermann
b3ddd18e7a
Data segments aren't needed for 64-bit mode
...
(cherry picked from commit e179dadf70 )
2017-01-15 14:14:43 +01:00
Philipp Oppermann
d905671f45
Make panic_fmt public to fix private_no_mangle_fns warning
...
(cherry picked from commit 1be2f42791 )
2017-01-04 16:24:32 +01:00
Philipp Oppermann
a46b3a13c4
Mark panic_fmt as no_mangle to work around rust-lang/rust#38281
...
(cherry picked from commit 081105bbb6 )
(cherry picked from commit 1acc1ff5806f2fa101f726644d258eb4e4543540)
2017-01-04 16:10:29 +01:00
Philipp Oppermann
7c8f62d312
Update x86 crate to version 0.8.0 ( #266 )
...
(cherry picked from commit 02697891e2 )
2016-12-21 15:08:28 +01:00
Philipp Oppermann
fdec350e85
Remove cargo workspace ( #265 )
...
(cherry picked from commit fcd453ac29 )
2016-12-21 14:46:47 +01:00
Philipp Oppermann
d0bb3f847a
Fix panic_fmt arguments: file is a &'static str
...
(cherry picked from commit e9735738f7 )
2016-11-26 12:29:29 +01:00
Philipp Oppermann
041aa2bfe6
Remove print_error and use normal println in exception handlers
...
(cherry picked from commit 9b83b2853e )
2016-10-31 01:27:10 +01:00
Philipp Oppermann
02b8078e1d
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.
(cherry picked from commit d96df500a7 )
2016-10-31 01:20:19 +01:00
Philipp Oppermann
351ae60205
Use volatile operations for accessing the VGA buffer
...
(cherry picked from commit d7a445b1bb )
2016-10-08 15:55:25 +02:00
Philipp Oppermann
b050b475f7
Add missing license headers and update copyright year ( #232 )
...
(cherry picked from commit a04924955a )
2016-10-02 18:31:18 +02:00
Philipp Oppermann
29fd8983c5
Add missing license headers ( #233 )
...
(cherry picked from commit 0f4d1ce303 )
2016-10-02 18:29:49 +02:00
Philipp Oppermann
40bc3e9059
Use crates.io version of multiboot2
...
(cherry picked from commit c6b1346956 )
2016-09-27 13:55:52 +02:00
Calvin Lee
30a75ec760
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.
(cherry picked from commit 54e02fd6b5 )
(cherry picked from commit 3a2f0b33297164ebbfab92ee76881b6c06c4914d)
2016-09-27 13:40:58 +02:00
Philipp Oppermann
19f0b5443a
Update bit_field to 0.5.0 and use new API
...
(cherry picked from commit 6eba03dd58 )
2016-09-27 13:38:13 +02:00
Philipp Oppermann
689bd2e3e2
Create a cargo workspace for subcrates
...
(cherry picked from commit 488a3c16f0 )
2016-08-05 11:28:05 +02:00
Philipp Oppermann
f5af9e25e4
Add aligned .got and .got.plt sections to linker script
...
(cherry picked from commit 2445b47661 )
2016-07-16 17:23:50 +02:00
Philipp Oppermann
0a7843abd9
Catch divide error instead of page fault
...
The divide error pushes no error code. Thus we avoid stack misalignment (see #184 ).
(cherry picked from commit e8b3a1fff1 )
2016-06-25 17:22:31 +02:00
Philipp Oppermann
dcab71016c
Create dummy _Unwind_Resume function to fix libcore linker errors
...
(cherry picked from commit 952f7ed5e3 )
2016-06-24 13:49:43 +02:00
Philipp Oppermann
3f4f2b8ac2
Revert "Remove unneeded gcc_except_table section" ( #180 )
...
(cherry picked from commit 76b83c623e )
2016-06-13 18:38:49 +02:00
Philipp Oppermann
428f97d049
Remove unneeded gcc_except_table section
...
(cherry picked from commit 1083ac9bac )
2016-06-12 16:37:40 +02:00
Philipp Oppermann
69b22d1fc0
Use the panic=abort option instead of -Z no-landing-pads
...
(cherry picked from commit 725c452157 )
2016-06-12 16:22:02 +02:00
Philipp Oppermann
20f7e5472b
Make methods of EntryOptions public
...
(cherry picked from commit 480265872d )
2016-05-29 17:26:28 +02:00
Philipp Oppermann
534d23c80f
Fix .travis.yml for tag build
2016-05-28 15:58:12 +02:00
Philipp Oppermann
8c8f9dbb68
Update README for catching_exceptions tag
2016-05-28 15:54:33 +02:00
Philipp Oppermann
77f3ca3483
Remove blog and script subdirectories
2016-05-28 15:52:58 +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
Philipp Oppermann
74f33c0f44
Use own Itd entry type
2016-05-28 14:09:17 +02:00
Philipp Oppermann
78655d6bef
Add bit_field dependency
2016-05-28 14:09:17 +02:00