kopia lustrzana https://gitlab.com/sane-project/backends
72 wiersze
2.1 KiB
C
72 wiersze
2.1 KiB
C
#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__
|