Commit Graph

426 Commits

Author SHA1 Message Date
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
Philipp Oppermann
431bb39fdb Begin work for exceptions post 2016-05-28 14:09:17 +02:00
Philipp Oppermann
7c565abba8 Fix: hole_list_allocator instead of linked_list_allocator (#161)
Reported by @simonlovgren in #160
2016-05-17 14:35:53 +02:00
Philipp Oppermann
a59f51766a Merge pull request #159 from phil-opp/update_bitflags
Update bitflags to 0.7.0
2016-05-15 12:32:22 +02:00
Philipp Oppermann
e383a9235a Update post to use bitflags 0.7.0 2016-05-15 12:29:29 +02:00
Philipp Oppermann
1703827da2 Update to bitflags 0.7.0 2016-05-15 12:27:43 +02:00
Philipp Oppermann
a39c59801b Use upstream lazy static as it has a spin_no_std feature now (#158) 2016-05-14 16:25:15 +02:00
Philipp Oppermann
7170c658a7 Add missing mut (#156) 2016-05-07 15:01:39 +02:00
William Orr
07d534e4b4 Add missing use statements in printing-to-screen (#154) 2016-05-03 09:14:34 +02:00
William Orr
a9f41d7303 Replace movaps with movups
objdump on my system and code snippet in blog agree - problem is caused
by `movups` not `movaps`. Fix surrounding text and doc link to reflect
this.
2016-05-02 20:18:15 +02:00
Philipp Oppermann
301859a4b9 Merge pull request #153 from phil-opp/patch5
The no-landing-pads snippet already generates SSE instructions
2016-05-02 17:02:31 +02:00
Philipp Oppermann
088e87b23a The no-landing-pads snippet already generates SSE instructions 2016-05-02 16:58:49 +02:00