| Commit message (Collapse) | Author | Age |
| |
|
|
| |
Signed-off-by: Tianhao Wang <shrik3@mailbox.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. allow unexpected cfgs in lib.rs, in this case
"no_global_oom_handling" is cause warnings [1]
2. for large code models the compiler (rust linkers) now put code and
data in `.ltext`, `.ldata`, `.lbss`, `.lrodata` instead of the
same `.text` , `.data` ... etc. We are adjusting accordingly in the
linker script.
3. unsafe assertions identified undefined behaviours, in this case a repr(C)
struct was not mared as repr(packed), therefore having an unexpected
size. The unsafe assertions was not enabled by default in debug
builds so the idt setup code with from_raw_parts_mut() has been
working on UB. Glad we can catch this....
related: [1] https://github.com/rust-lang/rust/pull/123501
related: [2] https://blog.rust-lang.org/2024/05/02/Rust-1.78.0.html#asserting-unsafe-preconditions
|
| | |
|
| |
|
|
| |
Also renamed a few symbols to avoid confusion.
|
| |
|
|
| |
Signed-off-by: Tianhao Wang <shrik3@mailbox.org>
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
the x86_64 crate is pretty solid and has a permissive license
(Apache/MIT), but I want to make this myself in the future to
"experience" the unsafe rust further....Also it has too many
abstractions, which is justified as a library, but not ideal for a from
sctrach toy OS as it hides the lower end.
Signed-off-by: Tianhao Wang <shrik3@mailbox.org>
|
| |
|
|
|
|
|
|
| |
well, it's not trivial to use bios function because thanks to grub +
multiboot, we are already in protected mode when the startup code takes
control. Also the MB info is easier to play with than BIOS (or ACPI)
Signed-off-by: Tianhao Wang <shrik3@mailbox.org>
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
1. throw vectors in a custom ".reserved" section
2. throw idt in a NOLOAD ".reserved_0" section: save some binary size
(like .bss) since we don't care for its initial value.
3. squash all ".data.*" sections from rust into ".data"
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
So that device IO can be be synchronized.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|