x86_64
x86_64 copied to clipboard
Library to program x86_64 hardware.
Instead of requiring the caller to specify the target frame, this method uses a frame allocated from the frame allocator. This makes the common use case of mapping a page...
I'd like to suggest integrating my [`os_units`](https://github.com/toku-sa-n/os_units) crate into the `x86_64` crate. ## Descriptions The `os_units` crate provides two types: [`Bytes`](https://docs.rs/os_units/0.4.2/os_units/struct.Bytes.html) and [`NumOfPages`](https://docs.rs/os_units/0.4.2/os_units/struct.NumOfPages.html). These types are interactive because of two...
Hello, I was wondering if it would be useful to Implement TryFrom, From, and Into for VirtAddr (and maybe other some types as well). I noticed that VirtAddr type specifically...
Here: https://github.com/rust-osdev/x86_64/blob/f8a3d70a28f0ae41fe912d34060a30d0176d1541/src/structures/paging/mapper/offset_page_table.rs#L53 The physical address space is larger than the virtual one, so this can overflow on some architectures (e.g. see #289). It can also overflow when `offset` is large....
I was trying to use FS/GS based Thread Local Storage (TLS) and I noticed we don't have an easy way to view the FS or GS register as a structure...
This will make it possible to use Rust's native range types instead of our custom `PhysFrameRange`, `PageRange`, etc types. Note that we still need to keep these old types as...
This issue is mostly for discussion purposes, to clarify my understanding. RecursivePageTable::new() requires the passed page table to be active, checked through CR3. However, I'm not entirely sure I grok...
Hey, first I want to say this crate is great. It removes a lot of pain from starting with OS dev. I ran into a minor annoyance: mapping a large...
We previously had some discussion of using some sort of `Visitor` pattern to visit and update page tables. I got some time to play around with it a bit today....
The current implementations of offset and recursive page table require that `new` to be called with an already existing page table. Provide convenience methods to create more page tables from...