#os #amd64 #x86 #x86-64 #ia32

nightly x86

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.

41 releases (20 breaking)

✓ Uses Rust 2018 edition

0.20.0 Aug 12, 2019
0.19.0 May 31, 2019
0.18.1 May 18, 2019
0.15.1 Feb 15, 2019
0.0.1 Mar 28, 2015

#12 in Operating systems

Download history 170/week @ 2019-04-29 168/week @ 2019-05-06 176/week @ 2019-05-13 212/week @ 2019-05-20 169/week @ 2019-05-27 472/week @ 2019-06-03 595/week @ 2019-06-10 675/week @ 2019-06-17 760/week @ 2019-06-24 707/week @ 2019-07-01 603/week @ 2019-07-08 418/week @ 2019-07-15 462/week @ 2019-07-22 356/week @ 2019-07-29 381/week @ 2019-08-05

1,990 downloads per month
Used in 10 crates (8 directly)

MIT license

2MB
4.5K SLoC

x86 / amd64 library Build Status Crates.io docs.rs/x86

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 supports

  • I/O registers
  • Control registers
  • MSR registers
  • Segmentation
  • Descriptor-tables (GDT, LDT, IDT)
  • IA32-e page table layout
  • Interrupts (with xAPIC and x2APIC registers)
  • Task state
  • Performance counter information
  • Intel SGX: Software Guard Extensions
  • Random numbers (rdrand, rdseed)
  • Time (rdtsc, rdtscp)
  • Querying CPUID (uses raw_cpuid library)
  • Transactional memory (Intel RTM and HLE)

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. Therefore, it is disabled by default.

Documentation

Dependencies