summaryrefslogtreecommitdiff
path: root/include/sane
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2023-02-12 17:35:53 +0100
committerJörg Frings-Fürst <debian@jff.email>2023-02-12 17:35:53 +0100
commit84357741a6a6e6430f199b2c3f7498e0e97da9ad (patch)
tree23e8d66ede9506b94c76fb36910ca3c7dd15c74e /include/sane
parent302276dc1b90cfc972fb726ca94a23b18f4b0088 (diff)
New upstream version 1.2.1upstream/1.2.1
Diffstat (limited to 'include/sane')
-rw-r--r--include/sane/sanei_backend.h8
-rw-r--r--include/sane/sanei_directio.h71
2 files changed, 71 insertions, 8 deletions
diff --git a/include/sane/sanei_backend.h b/include/sane/sanei_backend.h
index 32d8ce0..db4d7b8 100644
--- a/include/sane/sanei_backend.h
+++ b/include/sane/sanei_backend.h
@@ -24,14 +24,6 @@
# define __func__ "(unknown)"
#endif
-#ifdef HAVE_SYS_HW_H
- /* OS/2 i/o-port access compatibility macros: */
-# define inb(p) _inp8 (p)
-# define outb(v,p) _outp8 ((p),(v))
-# define ioperm(b,l,o) _portaccess ((b),(b)+(l)-1)
-# define HAVE_IOPERM 1
-#endif
-
#ifndef HAVE_OS2_H
#include <fcntl.h>
#ifndef O_NONBLOCK
diff --git a/include/sane/sanei_directio.h b/include/sane/sanei_directio.h
new file mode 100644
index 0000000..944605d
--- /dev/null
+++ b/include/sane/sanei_directio.h
@@ -0,0 +1,71 @@
+#ifndef __SANEI_DIRECTIO_H__
+#define __SANEI_DIRECTIO_H__
+
+#ifdef HAVE_SYS_IO_H
+#include <sys/io.h>
+#endif
+
+#ifdef ENABLE_PARPORT_DIRECTIO
+
+#if (! defined SANE_INB ) && ( defined HAVE_SYS_HW_H ) /* OS/2 EMX case */
+#define SANE_INB 1
+#endif /* OS/2 EMX case */
+
+
+
+#if (! defined SANE_INB ) && ( defined HAVE_MACHINE_CPUFUNC_H ) /* FreeBSD case */
+#define SANE_INB 2
+#endif /* FreeBSD case */
+
+
+/* linux GCC on i386 */
+#if ( ! defined SANE_INB ) && ( defined HAVE_SYS_IO_H ) && ( defined __GNUC__ ) && ( defined __i386__ )
+#define SANE_INB 3
+#endif /* linux GCC on i386 */
+
+
+/* linux GCC non i386 */
+#if ( ! defined SANE_INB ) && ( defined HAVE_SYS_IO_H ) && ( defined __GNUC__ ) && ( ! defined __i386__ )
+#define SANE_INB 4
+#endif /* linux GCC non i386 */
+
+
+/* ICC on i386 */
+#if ( ! defined SANE_INB ) && ( defined __INTEL_COMPILER ) && ( defined __i386__ )
+#define SANE_INB 5
+#endif /* ICC on i386 */
+
+/* direct io requested, but no valid inb/oub */
+#if ( ! defined SANE_INB) && ( defined ENABLE_PARPORT_DIRECTIO )
+#warning "ENABLE_PARPORT_DIRECTIO cannot be used du to lack of inb/out definition"
+#undef ENABLE_PARPORT_DIRECTIO
+#endif
+
+#endif /* ENABLE_PARPORT_DIRECTIO */
+
+/*
+ * no inb/outb without --enable-parport-directio *
+ */
+#ifndef ENABLE_PARPORT_DIRECTIO
+#define SANE_INB 0
+#endif /* ENABLE_PARPORT_DIRECTIO is not defined */
+
+/* we need either direct io or ppdev */
+#if ! defined ENABLE_PARPORT_DIRECTIO && ! defined HAVE_LINUX_PPDEV_H && ! defined HAVE_DEV_PPBUS_PPI_H
+#define IO_SUPPORT_MISSING
+#endif
+
+
+extern int sanei_ioperm (int start, int length, int enable);
+extern unsigned char sanei_inb (unsigned int port);
+extern void sanei_outb (unsigned int port, unsigned char value);
+extern void sanei_insb (unsigned int port, unsigned char *addr,
+ unsigned long count);
+extern void sanei_insl (unsigned int port, unsigned char *addr,
+ unsigned long count);
+extern void sanei_outsb (unsigned int port, const unsigned char *addr,
+ unsigned long count);
+extern void sanei_outsl (unsigned int port, const unsigned char *addr,
+ unsigned long count);
+
+#endif // __SANEI_DIRECTIO_H__