X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=misc%2Ftest_vm%2Fsrc%2Fgeekos%2Fio.c;h=1310cdc752cb3aa35b71ec368a5cfff6b72c2baf;hp=70b9f505f00485ef30ee7e963eac657abbe88659;hb=b86b717be870723228190fcc9c8233a511d95073;hpb=bc98195a63d8cb1d109eeaa72f57f468c6c9581e diff --git a/misc/test_vm/src/geekos/io.c b/misc/test_vm/src/geekos/io.c index 70b9f50..1310cdc 100644 --- a/misc/test_vm/src/geekos/io.c +++ b/misc/test_vm/src/geekos/io.c @@ -21,14 +21,11 @@ void Out_Byte(ushort_t port, uchar_t value) ); } -extern uchar_t InByteLL(ushort_t port); - /* * Read a byte from an I/O port. */ uchar_t In_Byte(ushort_t port) { - /* uchar_t value; __asm__ __volatile__ ( @@ -38,9 +35,6 @@ uchar_t In_Byte(ushort_t port) ); return value; - */ - - return InByteLL(port); } /* @@ -56,7 +50,7 @@ void Out_Word(ushort_t port, ushort_t value) } /* - * Read a byte from an I/O port. + * Read a word from an I/O port. */ ushort_t In_Word(ushort_t port) { @@ -72,6 +66,34 @@ ushort_t In_Word(ushort_t port) } /* + * Write a double word to an I/O port. + */ +void Out_DWord(ushort_t port, uint_t value) +{ + __asm__ __volatile__ ( + "outl %0, %1" + : + : "a" (value), "Nd" (port) + ); +} + +/* + * Read a double word from an I/O port. + */ +uint_t In_DWord(ushort_t port) +{ + uint_t value; + + __asm__ __volatile__ ( + "inl %1, %0" + : "=a" (value) + : "Nd" (port) + ); + + return value; +} + +/* * Short delay. May be needed when talking to some * (slow) I/O devices. */