You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.5 KiB
ArmAsm
75 lines
1.5 KiB
ArmAsm
/* See the end of this file for copyright and license terms. */
|
|
|
|
#include <asm/common.h>
|
|
|
|
.text
|
|
|
|
/* void x86_io_wait(void); */
|
|
ASM_ENTRY(x86_io_wait)
|
|
xor %al, %al
|
|
outb %al, $0x80
|
|
ret
|
|
ASM_END(x86_io_wait)
|
|
|
|
/* u8 x86_inb(u16 port); */
|
|
ASM_ENTRY(x86_inb)
|
|
mov 4(%esp), %edx
|
|
xor %eax, %eax
|
|
inb %dx, %al
|
|
ret
|
|
ASM_END(x86_inb)
|
|
|
|
/* u16 x86_inw(u16 port); */
|
|
ASM_ENTRY(x86_inw)
|
|
mov 4(%esp), %edx
|
|
xor %eax, %eax
|
|
inw %dx, %ax
|
|
ret
|
|
ASM_END(x86_inw)
|
|
|
|
/* u32 x86_inl(u16 port); */
|
|
ASM_ENTRY(x86_inl)
|
|
mov 4(%esp), %edx
|
|
xor %eax, %eax
|
|
inl %dx, %eax
|
|
ret
|
|
ASM_END(x86_inl)
|
|
|
|
/* void x86_outb(u16 port, u8 data); */
|
|
ASM_ENTRY(x86_outb)
|
|
mov 4(%esp), %edx
|
|
mov 8(%esp), %eax
|
|
outb %al, %dx
|
|
ret
|
|
ASM_END(x86_outb)
|
|
|
|
/* void x86_outw(u16 port, u16 data); */
|
|
ASM_ENTRY(x86_outw)
|
|
mov 4(%esp), %edx
|
|
mov 8(%esp), %eax
|
|
outw %ax, %dx
|
|
ret
|
|
ASM_END(x86_outw)
|
|
|
|
/* void x86_outl(u16 port, u32 data); */
|
|
ASM_ENTRY(x86_outl)
|
|
mov 4(%esp), %edx
|
|
mov 8(%esp), %eax
|
|
outl %eax, %dx
|
|
ret
|
|
ASM_END(x86_outl)
|
|
|
|
/*
|
|
* This file is part of GayBSD.
|
|
* Copyright (c) 2021 fef <owo@fef.moe>.
|
|
*
|
|
* GayBSD is nonviolent software: you may only use, redistribute, and/or
|
|
* modify it under the terms of the Cooperative Nonviolent Public License
|
|
* (CNPL) as found in the LICENSE file in the source code root directory
|
|
* or at <https://git.pixie.town/thufie/npl-builder>; either version 7
|
|
* of the license, or (at your option) any later version.
|
|
*
|
|
* GayBSD comes with ABSOLUTELY NO WARRANTY, to the extent
|
|
* permitted by applicable law. See the CNPL for details.
|
|
*/
|