x64

Crates.iox64
lib.rsx64
version0.0.3
sourcesrc
created_at2023-01-05 02:14:09.565541
updated_at2023-01-05 19:31:31.702877
descriptionUNFINISHED: low-level code for dealing with the x86_64 ISA.
homepagehttps://github.com/IsaccBarker/BSL/tree/main/x64
repositoryhttps://github.com/IsaccBarker/BSL
max_upload_size
id751270
size61,781
Milo Banks (IsaccBarker)

documentation

README

x64

Work in progress

This crate is a work in progress, and new features are added as the BSL microkernel needs them.

x64 is a standalone, no-std Rust library providing types and a few convienence functions over x86_64 (Intel's 64-bit CPU architecture). It is closely tied to the BSL kernel, however that doesn't mean it can't be used by outside projects.

The reason this exists is because I simply don't like the x86_64 crate. It seems that you either have to use all of their types, or none of their types. If you want to use it to manage paging, you have to set up your allocator specifically to use that. It gives me the creeps!

x64 is designed to be efficient at runtime. x86_64 makes use of traits that produce vtables that cannot be optimized away at compile time. There are certain methods/functions that are much too inefficient to be used extreemly often.

While x64 is inspired by the API of x86_64 (they lay it out quite well), the insides are pretty different. x86 also uses more of the correct terminology than x86_64 does (e.g. they call it an IDT gate an "entry", whereas this crate calls it a "gate").

This crate also provides some features that x86_64 doesn't have, namely the easy manipulation of structs that would be represented with bitfields in C/C++ or something to that effect.

Commit count: 0

cargo fmt