--- src/iopl.c Tue May 8 15:14:21 2001 +++ src/iopl.c Mon Jul 22 07:46:37 2002 @@ -61,10 +61,17 @@ */ ret = iopl(3); #else +#if defined(__NetBSD__) && defined(HAVE_LIBI386) + /* + * Have to get unrestricted access to io ports, as WRITE_DATA port > 0x3ff + */ + ret = i386_iopl(3); +#else #ifdef HAVE_IOPERM /* ALPHA only has ioperm, apparently, so cover all with one permission */ ret = ioperm(MIN_READ_ADDR, WRITEDATA_ADDR - MIN_READ_ADDR + 1, 1); #endif /* HAVE_IOPERM */ +#endif /* !(__NetBSD__ && HAVE_LIBI386) */ #endif /* !HAVE_IOPL */ if (ret < 0) { @@ -85,9 +92,13 @@ #ifdef HAVE_IOPL ret = iopl(0); #else +#if defined(__NetBSD__) && defined(HAVE_LIBI386) + ret = i386_iopl(0); +#else #ifdef HAVE_IOPERM ret = ioperm(MIN_READ_ADDR, WRITEDATA_ADDR - MIN_READ_ADDR + 1, 0); #endif /* HAVE_IOPERM */ +#endif /* !(__NetBSD__ && HAVE_LIBI386) */ #endif /* !HAVE_IOPL */ if (ret < 0) { --- include/isapnp/iopl.h Tue May 8 15:14:21 2001 +++ include/isapnp/iopl.h Mon Jul 22 07:40:38 2002 @@ -45,6 +45,12 @@ #endif /****************************************************************************/ +#if defined(__NetBSD__) && defined(HAVE_LIBI386) +#include +#include +#include +#include +#else #ifdef __DJGPP__ #if !defined __TURBOC__ && !defined __BORLANDC__ #include @@ -65,6 +71,7 @@ #include #endif /* _OS2_ */ #endif +#endif /* !(__NetBSD__ && HAVE_LIBI386) */ /****************************************************************************/ --- include/isapnp/pnp.h Thu Apr 12 11:51:19 2001 +++ include/isapnp/pnp.h Mon Jul 22 07:51:51 2002 @@ -33,13 +33,23 @@ #else /* !_OS2_ && !__DJGPP__ */ #ifdef DEBUG static int x; +#if defined(__NetBSD__) && defined(HAVE_LIBI386) +#define ADDRESS(x) (outb(ADDRESS_ADDR, x), printf("\nAddress: %04x", x)) +#define WRITE_DATA(x) (outb(WRITEDATA_ADDR, x), printf(" WR(%02x)", x & 0xff)) +#else #define ADDRESS(x) (outb(x, ADDRESS_ADDR), printf("\nAddress: %04x", x)) #define WRITE_DATA(x) (outb(x, WRITEDATA_ADDR), printf(" WR(%02x)", x & 0xff)) +#endif #define READ_DATA (x = inb(read_port), printf(" RD(%02x)", x & 0xff), x) #define READ_IOPORT(p) (x = inb(p), printf(" [%04x](%02x)", p, x & 0xff), x) #else /* !DEBUG */ +#if defined(__NetBSD__) && defined(HAVE_LIBI386) +#define ADDRESS(x) outb(ADDRESS_ADDR, x) +#define WRITE_DATA(x) outb(WRITEDATA_ADDR, x) +#else #define ADDRESS(x) outb(x, ADDRESS_ADDR) #define WRITE_DATA(x) outb(x, WRITEDATA_ADDR) +#endif #define READ_DATA inb(read_port) #define READ_IOPORT(p) inb(p) #endif /* !DEBUG */ --- configure Tue May 8 15:52:59 2001 +++ configure Mon Jul 22 07:48:37 2002 @@ -1555,14 +1555,61 @@ fi +echo $ac_n "checking for i386_iopl in -li386""... $ac_c" 1>&6 +echo "configure:1560: checking for i386_iopl in -li386" >&5 +ac_lib_var=`echo i386'_'i386_iopl | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-li386 $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo i386 | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1561: checking for ANSI C header files" >&5 +echo "configure:1608: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1570,7 +1617,7 @@ #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1574: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1621: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1587,7 +1634,7 @@ if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -1605,7 +1652,7 @@ if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -1626,7 +1673,7 @@ : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -1637,7 +1684,7 @@ exit (0); } EOF -if { (eval echo configure:1641: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1688: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -1664,17 +1711,17 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1668: checking for $ac_hdr" >&5 +echo "configure:1715: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1678: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1725: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1702,12 +1749,12 @@ echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:1706: checking for working const" >&5 +echo "configure:1753: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1807: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -1777,21 +1824,21 @@ fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:1781: checking for inline" >&5 +echo "configure:1828: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -1817,12 +1864,12 @@ esac echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:1821: checking for pid_t" >&5 +echo "configure:1868: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -1850,12 +1897,12 @@ fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:1854: checking for size_t" >&5 +echo "configure:1901: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -1884,12 +1931,12 @@ echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:1888: checking return type of signal handlers" >&5 +echo "configure:1935: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1906,7 +1953,7 @@ int i; ; return 0; } EOF -if { (eval echo configure:1910: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1957: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -1925,12 +1972,12 @@ echo $ac_n "checking for vprintf""... $ac_c" 1>&6 -echo "configure:1929: checking for vprintf" >&5 +echo "configure:1976: checking for vprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else @@ -1977,12 +2024,12 @@ if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:1981: checking for _doprnt" >&5 +echo "configure:2028: checking for _doprnt" >&5 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else @@ -2033,12 +2080,12 @@ for ac_func in strncmp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2037: checking for $ac_func" >&5 +echo "configure:2084: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2088,12 +2135,12 @@ for ac_func in strdup strerror strtol strtoul nanosleep sched_setscheduler snprintf strncasecmp getdelim memcmp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2092: checking for $ac_func" >&5 +echo "configure:2139: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2143,12 +2190,12 @@ for ac_func in iopl ioperm usleep delay _sleep2 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2147: checking for $ac_func" >&5 +echo "configure:2194: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2199,12 +2246,12 @@ for ac_func in getopt_long do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2203: checking for $ac_func" >&5 +echo "configure:2250: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2278: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else $NetBSD$ --- include/config.h.in Fri Apr 27 13:51:05 2001 +++ include/config.h.in Mon Jul 22 07:48:39 2002 @@ -142,6 +142,9 @@ /* Define if you have the header file. */ #undef HAVE_UNISTD_H +/* Define if you have the i386 library (-li386). */ +#undef HAVE_LIBI386 + /* Name of package */ #undef PACKAGE --- configure.in Tue May 8 15:06:14 2001 +++ configure.in Mon Jul 22 07:45:07 2002 @@ -20,6 +20,7 @@ AC_PROG_RANLIB dnl Checks for libraries. +AC_CHECK_LIB(i386, i386_iopl) dnl Checks for header files. AC_HEADER_STDC