* OS/2 compile fixes (use EMX direct I/O primitives)

DEVEL_2_0_BRANCH-1
Stéphane Voltz 2001-06-06 04:41:54 +00:00
rodzic e2ff628346
commit f75abf6660
1 zmienionych plików z 32 dodań i 0 usunięć

Wyświetl plik

@ -484,6 +484,13 @@ sanei_umax_pp_InitPort (int port)
setregid (mode, mode); setregid (mode, mode);
#endif #endif
#ifdef HAVE_SYS_HW_H
/* gainig io perm under OS/2 */
/* IOPL must has been raised to 3 in config.sys */
/* for EMX portaccess always succeeds */
_portaccess (port, port + 7);
#endif
/* FreeBSD and NetBSD with compatibility opion 9 */ /* FreeBSD and NetBSD with compatibility opion 9 */
/* opening /dev/io raise IOPL to level 3 */ /* opening /dev/io raise IOPL to level 3 */
@ -649,8 +656,12 @@ static void
Outb (int port, int value) Outb (int port, int value)
{ {
#ifndef IO_SUPPORT_MISSING #ifndef IO_SUPPORT_MISSING
#ifdef HAVE_SYS_HW_H
_outp8 (port, value) & 0xFF;
#else
outb (value, port); outb (value, port);
#endif #endif
#endif
} }
@ -662,7 +673,11 @@ Inb (int port)
{ {
int res = 0xFF; int res = 0xFF;
#ifndef IO_SUPPORT_MISSING #ifndef IO_SUPPORT_MISSING
#ifdef HAVE_SYS_HW_H
res = _inbp8 (port) & 0xFF;
#else
res = inb (port) & 0xFF; res = inb (port) & 0xFF;
#endif
#endif #endif
return res; return res;
} }
@ -676,10 +691,14 @@ Insb (int port, unsigned char *dest, int size)
int i; int i;
for (i = 0; i < size; i++) for (i = 0; i < size; i++)
dest[i] = Inb (port); dest[i] = Inb (port);
#else
#ifdef HAVE_SYS_HW_H
_inps8 (port, dest, size);
#else #else
insb (port, dest, size); insb (port, dest, size);
#endif #endif
#endif #endif
#endif
} }
static void static void
@ -691,10 +710,14 @@ Outsb (int port, unsigned char *source, int size)
for (i = 0; i < size; i++) for (i = 0; i < size; i++)
Outb (port, source[i]); Outb (port, source[i]);
#else
#ifdef HAVE_SYS_HW_H
_outps8 (port, source, size);
#else #else
outsb (port, source, size); outsb (port, source, size);
#endif #endif
#endif #endif
#endif
} }
@ -709,10 +732,14 @@ Insw (int port, unsigned char *dest, int size)
for (i = 0; i < size * 4; i++) for (i = 0; i < size * 4; i++)
dest[i] = Inb (port); dest[i] = Inb (port);
#else
#ifdef HAVE_SYS_HW_H
_inps32 (port, (unsigned long *) dest, size);
#else #else
insl (port, dest, size); insl (port, dest, size);
#endif #endif
#endif #endif
#endif
} }
static void static void
@ -724,10 +751,14 @@ Outsw (int port, unsigned char *source, int size)
for (i = 0; i < size * 4; i++) for (i = 0; i < size * 4; i++)
Outb (port, source[i]); Outb (port, source[i]);
#else
#ifdef HAVE_SYS_HW_H
_outps32 (port, (unsigned long *) source, size);
#else #else
outsw (port, source, size); outsw (port, source, size);
#endif #endif
#endif #endif
#endif
} }
@ -1641,6 +1672,7 @@ EPPRead32Buffer (int size, unsigned char *dest)
Outb (EPPADR, 0x80); Outb (EPPADR, 0x80);
/* beurk XXX STEF XXX */ /* beurk XXX STEF XXX */
/* but hides away outb in other functions */
if (size == 0) if (size == 0)
return; return;