aboutsummaryrefslogtreecommitdiff
path: root/src/shared/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/mod.rs')
-rw-r--r--src/shared/mod.rs68
1 files changed, 1 insertions, 67 deletions
diff --git a/src/shared/mod.rs b/src/shared/mod.rs
index e9c8084..ad1d23c 100644
--- a/src/shared/mod.rs
+++ b/src/shared/mod.rs
@@ -1,6 +1,7 @@
#![allow(non_upper_case_globals)]
pub mod control_regs;
+pub mod io;
bitflags! {
pub flags Flags: usize {
@@ -253,70 +254,3 @@ pub unsafe fn disable_interrupts() {
pub unsafe fn halt() {
asm!("hlt" :::: "volatile", "intel");
}
-
-#[inline(always)]
-pub unsafe fn out8(port: u16, value: u8) {
- asm!("out $0, $1" :: "{dx}"(port), "{al}"(value) :: "volatile", "intel");
-}
-
-#[inline(always)]
-pub unsafe fn out16(port: u16, value: u16) {
- asm!("out $0, $1" :: "{dx}"(port), "{ax}"(value) :: "volatile", "intel");
-}
-
-#[inline(always)]
-pub unsafe fn out32(port: u16, value: u32) {
- asm!("out $0, $1" :: "{dx}"(port), "{eax}"(value) :: "volatile", "intel");
-}
-
-#[inline(always)]
-pub unsafe fn outs8(port: u16, buf: &[u8]) {
- asm!("rep outsb dx, [esi]" :: "{ecx}"(buf.len()), "{dx}"(port), "{esi}"(buf.as_ptr()) : "ecx", "edi" : "intel");
-}
-
-#[inline(always)]
-pub unsafe fn outs16(port: u16, buf: &[u16]) {
- asm!("rep outsw dx, [esi]" :: "{ecx}"(buf.len()), "{dx}"(port), "{esi}"(buf.as_ptr()) : "ecx", "edi" : "intel");
-}
-
-#[inline(always)]
-pub unsafe fn outs32(port: u16, buf: &[u32]) {
- asm!("rep outsd dx, [esi]" :: "{ecx}"(buf.len()), "{dx}"(port), "{esi}"(buf.as_ptr()) : "ecx", "edi" : "intel");
-}
-
-
-#[inline(always)]
-pub unsafe fn in8(port: u16) -> u8 {
- let r: u8;
- asm!("in $0, $1" : "={al}"(r) : "{dx}"(port) :: "intel");
- r
-}
-
-#[inline(always)]
-pub unsafe fn in16(port: u16) -> u16 {
- let r: u16;
- asm!("in $0, $1" : "={ax}"(r) : "{dx}"(port) :: "intel");
- r
-}
-
-#[inline(always)]
-pub unsafe fn in32(port: u16) -> u32 {
- let r: u32;
- asm!("in $0, $1" : "={eax}"(r) : "{dx}"(port) :: "intel");
- r
-}
-
-#[inline(always)]
-pub unsafe fn ins8(port: u16, buf: &mut [u8]) {
- asm!("rep insb [edi], dx" :: "{ecx}"(buf.len()), "{dx}"(port), "{edi}"(buf.as_ptr()) : "ecx", "edi" : "intel");
-}
-
-#[inline(always)]
-pub unsafe fn ins16(port: u16, buf: &mut [u16]) {
- asm!("rep insw [edi], dx" :: "{ecx}"(buf.len()), "{dx}"(port), "{edi}"(buf.as_ptr()) : "ecx", "edi" : "intel");
-}
-
-#[inline(always)]
-pub unsafe fn ins32(port: u16, buf: &mut [u32]) {
- asm!("rep insd [edi], dx" :: "{ecx}"(buf.len()), "{dx}"(port), "{edi}"(buf.as_ptr()) : "ecx", "edi" : "intel");
-}