x86 0.20.0

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.
Documentation
#![feature(proc_macro)]
// RUSTFLAGS="-C relocation-model=dynamic-no-pic -C code-model=kernel" RUST_BACKTRACE=1 cargo test --verbose --test kvm -- --nocapture

extern crate core;
extern crate x86;
#[macro_use]
extern crate klogger;

extern crate test_macros;
use test_macros::kvmattrs;

// Needed for code generated by `kvmattrs`:
extern crate test;
use self::test::KvmTestMetaData;

#[test]
#[kvmattrs(identity_map, ram(0x30000000, 0x31000000), ioport(0x1, 0xfe))]
fn use_the_port() {
    sprintln!("1");
    unsafe {
        if (x86::shared::io::inw(0x1) == 0xfe) {
            sprintln!("worked");
        }
    }
    sprintln!("2");
}

#[test]
#[kvmattrs(identity_map, ram(0x30000000, 0x31000000))]
fn io_example2() {
    sprintln!("1");
    //assert!(1 == 0);
    sprintln!("2");
}