Commit Graph

56 Commits

Author SHA1 Message Date
Philipp Oppermann
94d4f8df8e Update x86 crate to version 0.8.0 (#266)
(cherry picked from commit 02697891e2)
2016-12-21 15:09:45 +01:00
Philipp Oppermann
7f80db6fb4 Add missing license headers and update copyright year (#232)
(cherry picked from commit a04924955a)
2016-10-02 18:31:20 +02:00
Philipp Oppermann
c9d8afe434 Run rustfmt 2016-06-25 17:08:26 +02:00
Philipp Oppermann
6839321233 Formatting: Run rustfmt 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
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
941b1fab1c Use new section.is_allocated function 2016-02-24 17:14:39 +01:00
Philipp Oppermann
4142cff3e6 Identity map the multiboot info structure 2016-02-24 16:52:19 +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
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
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
Philipp Oppermann
165e6ebff8 Run rustfmt 2015-12-20 15:05:08 +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
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
96b0dc0c66 Model page tables 2015-12-09 15:46:14 +01:00
Philipp Oppermann
14384fb27f Model page table entries 2015-12-09 15:46:14 +01:00
Philipp Oppermann
d827f51bb6 Create basic paging module 2015-12-09 15:46:14 +01:00
Philipp Oppermann
dabef43db9 Reset src to master to be able to follow step-by-stp 2015-12-09 15:46:14 +01:00
Philipp Oppermann
bd00921dac Use expect instead of unwrap 2015-12-09 15:42:45 +01:00
Philipp Oppermann
15427b363a Take page by value in mapping functions
(there is no reason to borrow it at the moment)
2015-12-09 15:42:45 +01:00
Philipp Oppermann
b314d4827f Move Frame::start_address to memory/mod.rs and use it in identity_map() 2015-12-09 15:42:44 +01:00
Philipp Oppermann
6ed376112d PAGE_SIZE is already defined in memory/mod.rs 2015-12-09 15:42:44 +01:00
Philipp Oppermann
557738e705 Add a RecursivePageTable::new function 2015-12-09 15:42:44 +01:00
Philipp Oppermann
c5fac2647e Merge lock.rs into mod.rs 2015-12-09 15:42:44 +01:00
Philipp Oppermann
cdaad86a06 Change semantics of start_address and containing_address
The page numbers now respect the memory hole between higher and lower half.
2015-12-09 15:38:46 +01:00
Philipp Oppermann
6535aa017d Add lock module (name is temporary) 2015-12-09 15:38:46 +01:00
Philipp Oppermann
a8df7b2e4d Finish basics of new paging module 2015-12-09 15:38:46 +01:00