# x64 ## Work in progress This crate is a work in progress, and new features are added as the [BSL microkernel](https://github.com/IsaccBarker/BSL) 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.