Philipp Oppermann
05873d9dae
Improve next_table_create
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
f912dfa506
Improve huge_page closure
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
c52f58cc4c
Rename and use is_unused()
2015-12-09 15:38:46 +01:00
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