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
Philipp Oppermann
8bb09f47f8
Test unmap function
2015-12-09 15:46:15 +01:00
Philipp Oppermann
cf5ea7664e
Test map_to function
2015-12-09 15:46:15 +01:00
Philipp Oppermann
5b4e457439
Double stack size to avoid stack overflow
2015-12-09 15:46:14 +01:00
Philipp Oppermann
786e1d5cab
Test translate function
2015-12-09 15:46:14 +01:00
Philipp Oppermann
d8c6b6f5b7
Add and call test_paging function
2015-12-09 15:46:14 +01:00
Philipp Oppermann
4fd8891aff
Add (buggy) unmap function
2015-12-09 15:46:14 +01:00
Philipp Oppermann
d52c79b106
Add map and identity_map functions
2015-12-09 15:46:14 +01:00
Philipp Oppermann
86d8e99271
Make translate and map_to safe by making them RecursivePageTable methods
2015-12-09 15:46:14 +01:00
Philipp Oppermann
fb7d2d22b6
Add RecursivePageTable as an owner for the P4 table
2015-12-09 15:46:14 +01:00
Philipp Oppermann
46b93e0650
Add unsafe map_to function and make translate unsafe, too
...
These functions are unsafe because it's possible to get aliased &mut references.
2015-12-09 15:46:14 +01:00
Philipp Oppermann
e84344f59a
Add function to translate virtual to physical address
2015-12-09 15:46:14 +01:00
Philipp Oppermann
d267ac1c98
Define the next_table methods only for P4, P3, and P2 tables
2015-12-09 15:46:14 +01:00
Philipp Oppermann
e5a4114262
Add unsafe next_table methods
2015-12-09 15:46:14 +01:00