diff options
Diffstat (limited to 'sanei/sanei_pa4s2.c')
-rw-r--r-- | sanei/sanei_pa4s2.c | 64 |
1 files changed, 14 insertions, 50 deletions
diff --git a/sanei/sanei_pa4s2.c b/sanei/sanei_pa4s2.c index 5e59743..92fcf7f 100644 --- a/sanei/sanei_pa4s2.c +++ b/sanei/sanei_pa4s2.c @@ -66,43 +66,7 @@ #elif defined(ENABLE_PARPORT_DIRECTIO) -# if defined(HAVE_SYS_IO_H) -# if defined (__ICC) && __ICC >= 700 -# define __GNUC__ 2 -# endif -# include <sys/io.h> -# ifndef SANE_HAVE_SYS_IO_H_WITH_INB_OUTB -# define IO_SUPPORT_MISSING -# endif -# if defined (__ICC) && __ICC >= 700 -# undef __GNUC__ -# elif defined(__ICC) && defined(HAVE_ASM_IO_H) -# include <asm/io.h> -# endif -# elif defined(HAVE_ASM_IO_H) -# include <asm/io.h> /* ugly, but backwards compatible */ -# elif defined(HAVE_SYS_HW_H) -# include <sys/hw.h> -# elif defined(__i386__) && ( defined (__GNUC__) || defined (__ICC) ) - -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" #else @@ -306,7 +270,7 @@ pa4s2_init (SANE_Status *status) if (first_time == SANE_FALSE) { DBG (5, "pa4s2_init: sanei already initialized\n"); - status = SANE_STATUS_GOOD; + *status = SANE_STATUS_GOOD; return 0; } @@ -519,7 +483,7 @@ pa4s2_open (const char *dev, SANE_Status * status) /* TODO: insert FreeBSD compatible code here */ - if (ioperm (port[n].base, 5, 1)) + if (sanei_ioperm (port[n].base, 5, 1)) { DBG (1, "pa4s2_open: cannot get io privilege for port 0x%03lx\n", @@ -571,15 +535,15 @@ static void outbyte3(int fd, u_char val) #else -#define inbyte0(fd) inb(port[fd].base) -#define inbyte1(fd) inb(port[fd].base + 1) -#define inbyte2(fd) inb(port[fd].base + 2) -#define inbyte4(fd) inb(port[fd].base + 4) +#define inbyte0(fd) sanei_inb(port[fd].base) +#define inbyte1(fd) sanei_inb(port[fd].base + 1) +#define inbyte2(fd) sanei_inb(port[fd].base + 2) +#define inbyte4(fd) sanei_inb(port[fd].base + 4) -#define outbyte0(fd,val) outb(val, port[fd].base) -#define outbyte1(fd,val) outb(val, port[fd].base + 1) -#define outbyte2(fd,val) outb(val, port[fd].base + 2) -#define outbyte3(fd,val) outb(val, port[fd].base + 3) +#define outbyte0(fd,val) sanei_outb(port[fd].base, val) +#define outbyte1(fd,val) sanei_outb(port[fd].base + 1, val) +#define outbyte2(fd,val) sanei_outb(port[fd].base + 2, val) +#define outbyte3(fd,val) sanei_outb(port[fd].base + 3, val) #endif @@ -882,7 +846,7 @@ pa4s2_close (int fd, SANE_Status * status) #if defined(HAVE_LIBIEEE1284) if ((result = ieee1284_close(pplist.portv[fd])) < 0) #else - if (ioperm (port[fd].base, 5, 0)) + if (sanei_ioperm (port[fd].base, 5, 0)) #endif { @@ -1427,7 +1391,7 @@ sanei_pa4s2_enable (int fd, int enable) linux 2.2, although they seem to be inherited on linux 2.4), so we should make sure we get the permission */ - if (ioperm (port[fd].base, 5, 1)) + if (sanei_ioperm (port[fd].base, 5, 1)) { DBG (1, "sanei_pa4s2_enable: cannot get io privilege for port" " 0x%03lx\n", port[fd].base); @@ -1917,7 +1881,7 @@ sanei_pa4s2_open (const char *dev, int *fd) DBG (3, "sanei_pa4s2_open: A4S2 support not compiled\n"); DBG (6, "sanei_pa4s2_open: basically, this backend does only compile\n"); DBG (6, "sanei_pa4s2_open: on x86 architectures. Furthermore it\n"); - DBG (6, "sanei_pa4s2_open: needs ioperm() and inb()/outb() calls.\n"); + DBG (6, "sanei_pa4s2_open: needs sanei_ioperm() and sanei_inb()/sanei_outb() calls.\n"); DBG (6, "sanei_pa4s2_open: alternatively it makes use of libieee1284\n"); DBG (6, "sanei_pa4s2_open: (which isn't present either)\n"); DBG (5, "sanei_pa4s2_open: returning SANE_STATUS_INVAL\n"); |