Commit Graph

276 Commits

Author SHA1 Message Date
Philipp Oppermann
b1a2c8caad Rename PhantomData field 2015-12-09 15:38:46 +01:00
Philipp Oppermann
e88de41914 Calculate next_table_address through directly through addresses 2015-12-09 15:38:46 +01:00
Philipp Oppermann
4a54a24145 Reorganize imports 2015-12-09 15:38:46 +01:00
Philipp Oppermann
799067f8b1 Add Frame::start_address 2015-12-09 15:38:46 +01:00
Philipp Oppermann
51f83717d6 Use Frame::containing_address 2015-12-09 15:38:46 +01:00
Philipp Oppermann
7e5da6c897 Modify pointed_frame to return an Option 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
6c5b932fbc Split translate into translate_page and rest 2015-12-09 15:38:46 +01:00
Philipp Oppermann
44fd5f682d Some new test printlns 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
Philipp Oppermann
562221d725 Add some unstable features and some printing tests 2015-12-09 15:38:46 +01:00
Philipp Oppermann
b7debed3b7 Increase stack size to 4096*2 2015-12-09 15:38:46 +01:00
Philipp Oppermann
c7fe1348f0 Old attempts for a new design 2015-12-09 15:38:46 +01:00
Philipp Oppermann
ace53fad91 Updates for the old paging code 2015-12-09 15:38:46 +01:00
Philipp Oppermann
ae49ab5072 Add alternative paging module with new design 2015-12-09 15:38:45 +01:00
Philipp Oppermann
540c398ec3 Alternative, more advanced design 2015-12-09 15:38:45 +01:00
Philipp Oppermann
907f51bb5b Add section about modifying table entries 2015-12-09 15:38:45 +01:00
Philipp Oppermann
882af6f14e Make p{1,2,3}_table functions unsafe 2015-12-09 15:38:45 +01:00
Philipp Oppermann
6462a3263c Add basic module and corresponding documentation 2015-12-09 15:38:33 +01:00
Philipp Oppermann
6b72dd8223 Remove Lock structure again as we changed design 2015-12-08 22:20:19 +01:00
Philipp Oppermann
f917bd67a1 Begin paging module 2015-12-08 22:20:19 +01:00
Philipp Oppermann
0e574426c5 Add recursive mapping and start describing it 2015-12-08 22:20:19 +01:00
Philipp Oppermann
a8600a00b6 Don't derive Copy/Clone for Frame so we can be sure that it's free
If a Frame would be clonable or even Copy, the frame could be freed (e.g. passed to deallocate_frame) and used thereafter. Or it could be freed multiple times.
2015-11-19 19:56:22 +01:00
Philipp Oppermann
88eb0636f3 Don't set write protect bit as we don't need it now 2015-11-19 15:26:58 +01:00
Philipp Oppermann
a8580ad3a2 Fix: next_free_frame must be increased to the start of the current area 2015-11-15 12:00:03 +01:00
Philipp Oppermann
16078431db Add basic description for frame allocator methods 2015-11-15 12:00:03 +01:00
Philipp Oppermann
8304439c82 Add a FrameAllocator trait 2015-11-15 12:00:03 +01:00
Philipp Oppermann
75988f1324 Test: allocate all frames 2015-11-15 12:00:03 +01:00
Philipp Oppermann
a2047bc70a Add an AreaFrameAllocator 2015-11-15 12:00:03 +01:00
Philipp Oppermann
6f8a21eba6 Create a memory module with a Frame struct 2015-11-15 12:00:03 +01:00
Philipp Oppermann
ccaa2ed645 Add section about start and end of kernel/multiboot 2015-11-15 12:00:03 +01:00
Philipp Oppermann
718db100cd Add let bindings for tags 2015-11-15 12:00:03 +01:00
Philipp Oppermann
f2b91d3d61 Improve panic handler 2015-11-15 12:00:03 +01:00
Philipp Oppermann
fc389c9e9e Increase stack size to 4096 2015-11-15 12:00:03 +01:00
Philipp Oppermann
895d40cd13 Add section about kernel elf sections 2015-11-15 12:00:03 +01:00
Philipp Oppermann
33fdbce530 Print available memory areas using multiboot info 2015-11-15 12:00:03 +01:00
Philipp Oppermann
73aa41e25e Pass multiboot pointer as argument to rust_main 2015-11-15 12:00:03 +01:00
Philipp Oppermann
fa78bd82a8 Add missing license header 2015-11-03 19:53:28 +01:00
Philipp Oppermann
8789fa8531 Use unsigned mul instead of signed imul 2015-10-31 13:48:58 +01:00
Philipp Oppermann
2a35ec19b6 Use 2MiB pages instead of one 1GiB page 2015-10-29 17:47:21 +01:00
Philipp Oppermann
e439e9eb5d Use a byte char instead of casting 2015-10-27 20:48:14 +01:00
Philipp Oppermann
c36a3d19d2 Add and use a clear_screen function 2015-10-27 20:47:58 +01:00
Philipp Oppermann
7b0428b07a Rename multiboot section to multiboot_header 2015-10-27 18:42:28 +01:00
Philipp Oppermann
5e5374cd7d Update grub.cfg to use renamed kernel file
Renaming occurred in 37b576e to be in line with the blog posts.
2015-10-26 16:54:45 +01:00
Philipp Oppermann
34dd42a6fc Add #[repr(C)] to ScreenChar 2015-10-25 15:38:08 +01:00
Philipp Oppermann
f670e330f5 Fix long mode test (fixes #6) 2015-10-25 01:49:42 +02:00
Philipp Oppermann
a39a611629 Wording: replace check with test 2015-10-25 01:48:57 +02:00
Philipp Oppermann
5b1f2361f2 Use println! to print the `Hello World! 2015-10-23 01:45:10 +02:00
Philipp Oppermann
4d29482952 Add custom print and println macros 2015-10-23 01:45:10 +02:00
Philipp Oppermann
e4a8c4c9fa Silence dead code warnings for unused colors 2015-10-23 01:45:10 +02:00