diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 30 |
1 files changed, 26 insertions, 4 deletions
@@ -1,6 +1,28 @@ -libcpu -====== +# x86 / amd64 library [](https://travis-ci.org/gz/rust-x86) [](https://crates.io/crates/x86) -Abstracts the messier guts of interfacing with the CPU on a low level in Rust. +Library to program x86 (amd64) hardware. Contains x86 specific data structure descriptions, data-tables, as well as convenience function to call assembly instructions typically not exposed in higher level languages. -Currently only supports x86, but x86_64 support isn't that far off. +Currently supports + * I/O registers + * Control registers + * MSR registers + * Segmentation + * Descriptor-tables (GDT, LDT, IDT) + * IA32-e page table layout + * Interrupts + * Task state + * Querying CPUID (uses [raw_cpuid](https://github.com/gz/rust-cpuid) library) + * Performance counter information + * Intel SGX: Software Guard Extensions + +This library depends on libcore so it can be used in kernel level code. + +## Features + + * performance-counter: Includes the performance counter information. Note this feature + can increase compilation time significantly due to large statically generated hash-tables + that are included in the source. In case you do not need performance-counter information + you can disable it using: `cargo build --no-default-features` + +## Documentation + * [API Documentation](http://gz.github.io/rust-x86/x86/) |