Commit Graph

155 Commits

Author SHA1 Message Date
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
1703827da2 Update to bitflags 0.7.0 2016-05-15 12:27:43 +02:00
Philipp Oppermann
6839321233 Formatting: Run rustfmt 2016-04-12 00:47:05 +02:00
Philipp Oppermann
2b85f38b41 Use new hole_list_allocator instead of bump_allocator 2016-04-12 00:47:05 +02:00
Philipp Oppermann
eac60162ad Fix page fault by mapping the complete heap 2016-04-12 00:47:05 +02:00
Philipp Oppermann
fbc1c60164 Ensure that memory::init is only called once 2016-04-12 00:47:05 +02:00
Philipp Oppermann
cea73b3ab9 Move memory intialization to memory::init function 2016-04-12 00:47:05 +02:00
Philipp Oppermann
9e46fb21c7 Try to allocate something (causes a page fault) 2016-04-12 00:47:05 +02:00
Philipp Oppermann
f25cb599c2 Link bump_allocator and alloc and collections crates 2016-04-12 00:47:05 +02:00
Philipp Oppermann
1d8a36a14b Rewrite remap_the_kernel post to use range_inclusive instead of step_by 2016-03-06 15:01:48 +01:00
Philipp Oppermann
03ed3ce9a0 Replace buggy range.step_by with a Frame::range_inclusive function 2016-03-06 13:42:31 +01:00
Philipp Oppermann
4fcb4b3424 Make some more types public since they are part of the public interface 2016-02-24 17:34:36 +01:00
Philipp Oppermann
941b1fab1c Use new section.is_allocated function 2016-02-24 17:14:39 +01:00
Philipp Oppermann
635f7d3f9d Align section size instead of section start due to #126
This fixes the problem that GRUB sometimes puts the multiboot info struct between kernel sections if the hole is big enough. This leads to problems since we would try to map the same page twice in that case.
2016-02-24 16:52:19 +01:00
Philipp Oppermann
4142cff3e6 Identity map the multiboot info structure 2016-02-24 16:52:19 +01:00
Philipp Oppermann
de2305038a Improve comments in code as well 2016-02-02 23:11:19 +01:00
Philipp Oppermann
c2c863c7f3 Use cmp and je instead of xor and jz 2016-02-01 23:42:09 +01:00
Philipp Oppermann
157b3b208d Improve comments for CPUID check 2016-01-02 16:01:42 +01:00
Philipp Oppermann
cfe03f612d Remove printing of memory areas and elf sections 2016-01-01 18:05:16 +01:00
Philipp Oppermann
ac6c1af84f Remove test_paging function 2016-01-01 18:05:16 +01:00
Philipp Oppermann
1c2e6fca64 Remove unused imports 2016-01-01 18:05:16 +01:00
Philipp Oppermann
db928db0b5 Unmap the old P4 page to create a basic guard page for the kernel stack 2016-01-01 18:05:16 +01:00
Philipp Oppermann
e2b99ac8c1 Set the NXE and the WP bit 2016-01-01 18:05:16 +01:00
Philipp Oppermann
76d1c41e96 Use correct section flags (causes a page fault) 2016-01-01 18:05:16 +01:00
Philipp Oppermann
b64f980c34 Identity map the vga text buffer 2016-01-01 18:05:16 +01:00
Philipp Oppermann
051596d8f9 Try to switch tables, causes boot loop 2016-01-01 18:05:16 +01:00
Philipp Oppermann
33322ec49b Test it 2016-01-01 18:05:16 +01:00
Philipp Oppermann
8e65034643 Align sections in linker script 2016-01-01 18:05:16 +01:00
Philipp Oppermann
dd51bde9f9 Add remap_the_kernel function 2016-01-01 18:05:16 +01:00
Philipp Oppermann
fe8c81a531 Backup and restore original recursive mapping in with 2016-01-01 18:05:16 +01:00
Philipp Oppermann
c16b3059cf Add ActivePageTable::with draft 2016-01-01 18:05:16 +01:00
Philipp Oppermann
a100d5f63f Split mapping functions of ActivePageTable into mapper subtype 2016-01-01 18:05:16 +01:00
Philipp Oppermann
716e3f7359 Zero and recursive map inactive table on creation 2016-01-01 18:05:16 +01:00
Philipp Oppermann
7ce86b3a80 Add temporary_page submodule 2016-01-01 18:05:16 +01:00
Philipp Oppermann
a7000e537c Add InactivePageTableSkeleton 2016-01-01 18:05:16 +01:00
Philipp Oppermann
2198d09695 Add clone methods to Page(public) and Frame(private) 2016-01-01 18:05:16 +01:00
Philipp Oppermann
a9e5b7fd28 Update license headers 2015-12-29 12:31:25 +01:00
Philipp Oppermann
b39bb643dd Rename RecursivePageTable to ActivePageTable 2015-12-25 13:14:14 +01:00
Rafal Mielniczuk
337799599a Fix HierachicalLevel typo 2015-12-20 15:52:14 +01:00
Philipp Oppermann
14166b3a35 Remove old features 2015-12-20 15:40:43 +01:00
Philipp Oppermann
165e6ebff8 Run rustfmt 2015-12-20 15:05:08 +01:00
Philipp Oppermann
6e60552e87 Rename test_* functions to check_* 2015-12-14 01:03:55 +01:00
Philipp Oppermann
7e83931746 The Iterator::min_by was renamed to min_by_key 2015-12-14 00:08:54 +01:00
Philipp Oppermann
22014eb38d The no_std attribute is stable now 2015-12-14 00:03:55 +01:00
Philipp Oppermann
c0439cf194 Fix Grammar
`set up` not `setup`
2015-12-13 18:53:15 +01:00
Philipp Oppermann
953704f103 Move setup_SSE to boot.asm 2015-12-12 15:00:14 +01:00
Philipp Oppermann
617c92d017 Use a more expressive variable name 2015-12-10 16:55:54 +01:00
Philipp Oppermann
75264e7cac Fix unmap function by flushing the TLB 2015-12-09 15:46:15 +01:00