32-bit operations on I/O ports.
parent
247dcd80dc
commit
39f7d128cb
|
@ -8,6 +8,8 @@
|
|||
void kstdio_init(void);
|
||||
void koutb(u16 Port, u8 Data);
|
||||
u8 kinb(u16 Port);
|
||||
void koutl(u16 Port, u32 Data);
|
||||
u32 kinl(u16 Port);
|
||||
void kio_wait(void);
|
||||
u32 kstrlen(const s8 *szString);
|
||||
void kmove_cursor(u8 X, u8 Y);
|
||||
|
|
|
@ -41,6 +41,18 @@ u8 kinb(u16 Port)
|
|||
return Return;
|
||||
}
|
||||
|
||||
void koutl(u16 Port, u32 Data)
|
||||
{
|
||||
__asm__ volatile("outl %1, %0" :: "dN" (Port), "a" (Data));
|
||||
}
|
||||
|
||||
u32 kinl(u16 Port)
|
||||
{
|
||||
u32 Return;
|
||||
__asm__ volatile("inl %1, %0" :"=a"(Return):"Nd"(Port));
|
||||
return Return;
|
||||
}
|
||||
|
||||
void kio_wait(void)
|
||||
{
|
||||
__asm__ volatile("jmp 1f;1:jmp 1f;1:");
|
||||
|
|
Loading…
Reference in New Issue