Commit Graph

212 Commits

Author SHA1 Message Date
Philipp Oppermann
6146ccba2d Add a memory::create_example_mapping function 2019-03-14 10:30:37 +01:00
Philipp Oppermann
b0e1527a95 Delete our memory::translate_addr function again 2019-03-14 10:30:37 +01:00
Philipp Oppermann
cb4410c84e Update kernel_main to use MapperAllSizes::translate_addr 2019-03-14 10:30:37 +01:00
Philipp Oppermann
98b5976656 Create a memory::init function that initializes a MappedPageTable 2019-03-14 10:30:37 +01:00
Philipp Oppermann
9335386928 Add and test a memory::translate_addr function 2019-03-14 10:30:37 +01:00
Philipp Oppermann
7c30d62f33 Also show non-empty level 3 table entries 2019-03-14 10:30:37 +01:00
Philipp Oppermann
61683bccda Print non-empty level 4 table entries 2019-03-14 10:30:37 +01:00
Philipp Oppermann
e1ec5159b8 Add boot info argument and use entry_point macro 2019-03-14 10:30:37 +01:00
Philipp Oppermann
e387c0b6b8 Create a memory::active_level_4_table function 2019-03-14 10:30:37 +01:00
Philipp Oppermann
ef1cc0ed4f Reset code to post-09 branch for new 'Paging Implementation' post 2019-03-14 10:20:46 +01:00
Philipp Oppermann
7198a4d110 The code for reading the level 4 table was moved to the next post 2019-03-12 17:49:31 +01:00
Philipp Oppermann
1ed76411f7 Fix remaining use of ExceptionStackFrame in test 2019-03-09 14:21:03 +01:00
Philipp Oppermann
10c4d0509d Update post-10 code for changes in x86_64 0.5.0
We no longer need a custom translate function as we can directly use MapperAllSizes::translate_addr.
2019-03-09 12:40:27 +01:00
Philipp Oppermann
57998ea4f8 Merge branch 'post-09' into post-10 2019-03-09 12:39:25 +01:00
Philipp Oppermann
f05aaeb0ac Update post-09 code for changes in x86_64 0.5.0 2019-03-09 12:39:14 +01:00
Philipp Oppermann
78a30984bc Merge branch 'post-08' into post-09 2019-03-09 12:38:25 +01:00
Philipp Oppermann
09dd68a1a2 Update post-08 code for changes in x86_64 0.5.0 2019-03-09 12:37:45 +01:00
Philipp Oppermann
81e4eec055 Merge branch 'post-07' into post-08 2019-03-09 12:36:39 +01:00
Philipp Oppermann
8e5b6a3e3f Update post-07 code for changes in x86_64 0.5.0 2019-03-09 12:34:49 +01:00
Philipp Oppermann
be0ed3a54d Merge branch 'post-06' into post-07 2019-03-09 12:32:03 +01:00
Philipp Oppermann
b895f8c745 Update code for changes in x86_64 0.5.0 2019-03-09 12:29:44 +01:00
Philipp Oppermann
ef9a629ddc Merge branch 'post-09' into post-10 2019-02-25 17:04:56 +01:00
Philipp Oppermann
18d8d311cb Merge branch 'post-08' into post-09 2019-02-25 17:04:40 +01:00
Philipp Oppermann
7b61da94a0 Run cargo fmt 2019-02-25 17:04:25 +01:00
Philipp Oppermann
36d6c6d0e9 Merge branch 'post-09' into post-10 2019-02-12 19:31:09 +01:00
Philipp Oppermann
76d3715eef Merge branch 'post-08' into post-09 2019-02-12 19:31:09 +01:00
Antoine
babf9d8cce Introduce an InterruptIndex enum (#557)
The following modifications aim to group the hardware interrupts' indexes in an easily accessible structure, while being more friendly to eventual evolutions.
* the hardware interrupts' indexes `TIMER_INTERRUPT_ID` and `KEYBOARD_INTERRUPT_ID` have been replaced by the attributes `Timer` and `Keyboard` contained in `enum InterruptIndex`.
* only the first attribute `Timer` is explicitly declared, the following as inferred by the compiler.
* the functions `as_u8` and `as_usize` avoid the need of casts to `u8` or `usize`.
2019-02-12 19:28:24 +01:00
Philipp Oppermann
0a10b3e784 Merge branch 'post-09' into post-10 2019-02-05 10:45:12 +01:00
Philipp Oppermann
9617680e45 Merge branch 'post-08' into post-09 2019-02-05 10:45:12 +01:00
Philipp Oppermann
3bb30fd1e8 Merge branch 'post-06' into post-07 2019-02-05 10:45:12 +01:00
Philipp Oppermann
62e2cee989 Merge branch 'post-05' into post-06 2019-02-05 10:45:12 +01:00
Philipp Oppermann
8f18fb4282 Merge branch 'post-07' into post-08 2019-02-05 10:45:12 +01:00
Philipp Oppermann
69ab78108b Merge branch 'post-04' into post-05 2019-02-05 10:45:12 +01:00
Philipp Oppermann
2db616bd7d Merge branch 'post-03' into post-04 2019-02-05 10:45:11 +01:00
Philipp Oppermann
af0b258279 Make vga_buffer::{ScreenChar, Buffer} repr(transparent) 2019-02-05 10:44:52 +01:00
Philipp Oppermann
e5dfbd4b23 Merge branch 'post-09' into post-10 2019-01-28 11:51:35 +01:00
Philipp Oppermann
4e6ce8d16e Merge branch 'post-08' into post-09 2019-01-28 11:51:23 +01:00
Philipp Oppermann
519f47286c Merge branch 'post-07' into post-08 2019-01-28 11:51:03 +01:00
Philipp Oppermann
f76ec1ae32 Only set double fault handler once 2019-01-28 11:50:59 +01:00
Philipp Oppermann
a56e22b6fc Use BootInfoFrameAllocator instead of EmptyFrameAllocator 2019-01-28 11:30:27 +01:00
Philipp Oppermann
67f536d7c6 Add a BootInfoFrameAllocator 2019-01-28 11:28:51 +01:00
Philipp Oppermann
741224411b Use the BootInfo struct passed by the bootloader 2019-01-28 11:24:16 +01:00
Philipp Oppermann
818417d119 Try to create example mapping for page 0xdeadbeaf000 2019-01-28 11:23:46 +01:00
Philipp Oppermann
f272785861 Create example mapping for page 0x1000 2019-01-28 11:19:46 +01:00
Philipp Oppermann
5d807ee622 Run rustfmt 2019-01-28 11:19:34 +01:00
Philipp Oppermann
f2bc2d33f0 Rewrite translation function on top of RecursivePageTable 2019-01-27 14:38:49 +01:00
Philipp Oppermann
38a121a887 Test translate_addr by translating some virtual addresses 2019-01-27 14:38:49 +01:00
Philipp Oppermann
8b380f0692 Create a new memory module with a translate_addr function 2019-01-27 14:38:49 +01:00
Philipp Oppermann
b184f7d996 Move the testing code to the end of _start 2019-01-26 12:57:32 +01:00
Philipp Oppermann
7c07a67bf5 Merge branch 'z_post_08' into z_post_09 2019-01-25 14:47:46 +01:00