diff options
Diffstat (limited to 'src/arch/x86_64')
| -rw-r--r-- | src/arch/x86_64/asm/misc.s | 11 | ||||
| -rw-r--r-- | src/arch/x86_64/misc.rs | 17 | ||||
| -rw-r--r-- | src/arch/x86_64/mod.rs | 1 |
3 files changed, 29 insertions, 0 deletions
diff --git a/src/arch/x86_64/asm/misc.s b/src/arch/x86_64/asm/misc.s new file mode 100644 index 0000000..fc5aa90 --- /dev/null +++ b/src/arch/x86_64/asm/misc.s @@ -0,0 +1,11 @@ +; place for misc code, before they find better places to live.. + +[GLOBAL _delay] + +[SECTION .text] + +_delay: + jmp .dummy +.dummy: + ret + diff --git a/src/arch/x86_64/misc.rs b/src/arch/x86_64/misc.rs new file mode 100644 index 0000000..c007d99 --- /dev/null +++ b/src/arch/x86_64/misc.rs @@ -0,0 +1,17 @@ +// wrappers for misc. architectural code +// before they find better place to go. +// asm code goes to asm/misc.s + +extern "C" { + fn _delay(); +} + +#[inline(always)] + +// delays for several cycles. Used to fill sequantial IO commands +// (for devices to react) +pub fn delay() { + unsafe { + _delay(); + } +} diff --git a/src/arch/x86_64/mod.rs b/src/arch/x86_64/mod.rs index ef06437..f48c7fd 100644 --- a/src/arch/x86_64/mod.rs +++ b/src/arch/x86_64/mod.rs @@ -3,3 +3,4 @@ pub mod pic; pub mod pit; pub mod plugbox; pub mod cpu; +pub mod misc; |
