summaryrefslogtreecommitdiff
path: root/sanei/sanei_ab306.c
diff options
context:
space:
mode:
Diffstat (limited to 'sanei/sanei_ab306.c')
-rw-r--r--sanei/sanei_ab306.c42
1 files changed, 8 insertions, 34 deletions
diff --git a/sanei/sanei_ab306.c b/sanei/sanei_ab306.c
index aa642c9..5c1f200 100644
--- a/sanei/sanei_ab306.c
+++ b/sanei/sanei_ab306.c
@@ -47,33 +47,7 @@
#include <sys/types.h>
-#ifdef HAVE_SYS_IO_H
-# include <sys/io.h> /* use where available (glibc 2.x, for example) */
-# ifndef SANE_HAVE_SYS_IO_H_WITH_INB_OUTB
-# define IO_SUPPORT_MISSING
-# endif
-#elif HAVE_ASM_IO_H
-# include <asm/io.h> /* ugly, but backwards compatible */
-#elif defined (__i386__) && defined (__GNUC__)
-
-static __inline__ void
-outb (u_char value, u_long port)
-{
- __asm__ __volatile__ ("outb %0,%1" : : "a" (value), "d" ((u_short) port));
-}
-
-static __inline__ u_char
-inb (u_long port)
-{
- u_char value;
-
- __asm__ __volatile__ ("inb %1,%0" : "=a" (value) : "d" ((u_short)port));
- return value;
-}
-
-#else
-# define IO_SUPPORT_MISSING
-#endif
+#include "../include/sane/sanei_directio.h"
#include "../include/sane/sane.h"
#include "../include/sane/sanei.h"
@@ -149,7 +123,7 @@ ab306_outb (Port *p, u_long addr, u_char val)
return;
}
else
- outb (val, addr);
+ sanei_outb (addr, val);
}
static int
@@ -166,7 +140,7 @@ ab306_inb (Port *p, u_long addr)
return ch;
}
else
- return inb (addr);
+ return sanei_inb (addr);
}
/* Send a single command-byte over the AB306N-interface. */
@@ -299,11 +273,11 @@ sanei_ab306_open (const char *dev, int *fdp)
byte = wakeup[j];
if (j == NELEMS(wakeup) - 1)
byte |= i;
- outb (byte, AB306_CIO);
+ sanei_outb (AB306_CIO, byte);
}
#else /* !defined(__FreeBSD__) */
- if (ioperm (AB306_CIO, 1, 1) != 0)
+ if (sanei_ioperm (AB306_CIO, 1, 1) != 0)
{
DBG(1, "sanei_ab306_ioport: using /dev/port access\n");
if (port[i].port_fd < 0)
@@ -329,7 +303,7 @@ sanei_ab306_open (const char *dev, int *fdp)
byte = wakeup[j];
if (j == NELEMS(wakeup) - 1)
byte |= i;
- outb (byte, AB306_CIO);
+ sanei_outb (AB306_CIO, byte);
}
status = sanei_ab306_get_io_privilege (i);
if (status != SANE_STATUS_GOOD)
@@ -373,7 +347,7 @@ sanei_ab306_get_io_privilege (int fd)
if (dev_io_fd < 0)
return SANE_STATUS_IO_ERROR;
#else /* !defined(__FreeBSD__) */
- if (ioperm (port[fd].base, 3, 1) != 0)
+ if (sanei_ioperm (port[fd].base, 3, 1) != 0)
return SANE_STATUS_IO_ERROR;
#endif /* !defined(__FreeBSD__) */
}
@@ -493,7 +467,7 @@ sanei_ab306_rdata (int fd, int planes, SANE_Byte * buf, int lines, int bpl)
/* the pixel-loop: */
for (bcnt = 0; bcnt < xmax; bcnt++)
{
- *(u_char *) buf = inb (p->base);
+ *(u_char *) buf = sanei_inb (p->base);
++buf;
}
}