diff options
-rw-r--r-- | tools/blktap2/drivers/libaio-compat.h | 12 | ||||
-rw-r--r-- | tools/config.h.in | 3 | ||||
-rwxr-xr-x | tools/configure | 9 | ||||
-rw-r--r-- | tools/configure.ac | 2 |
4 files changed, 21 insertions, 5 deletions
diff --git a/tools/blktap2/drivers/libaio-compat.h b/tools/blktap2/drivers/libaio-compat.h index 353c36a869..47cd96de94 100644 --- a/tools/blktap2/drivers/libaio-compat.h +++ b/tools/blktap2/drivers/libaio-compat.h @@ -29,6 +29,7 @@ #ifndef __LIBAIO_COMPAT #define __LIBAIO_COMPAT +#include "../../config.h" #include <libaio.h> #include <unistd.h> #include <sys/syscall.h> @@ -50,6 +51,16 @@ static inline void __io_set_eventfd(struct iocb *iocb, int eventfd) c->resfd = eventfd; } +#ifdef HAVE_SYS_EVENTFD_H + +#include <sys/eventfd.h> + +static inline int tapdisk_sys_eventfd(int initval) +{ + return eventfd(initval, 0); +} + +#else /* Fallback */ #ifndef SYS_eventfd #ifndef __NR_eventfd # if defined(__alpha__) @@ -88,5 +99,6 @@ static inline int tapdisk_sys_eventfd(int initval) { return syscall(SYS_eventfd, initval, 0); } +#endif #endif /* __LIBAIO_COMPAT */ diff --git a/tools/config.h.in b/tools/config.h.in index 08e337a1f5..a67910b57d 100644 --- a/tools/config.h.in +++ b/tools/config.h.in @@ -27,6 +27,9 @@ /* Define to 1 if you have the <string.h> header file. */ #undef HAVE_STRING_H +/* Define to 1 if you have the <sys/eventfd.h> header file. */ +#undef HAVE_SYS_EVENTFD_H + /* Define to 1 if you have the <sys/stat.h> header file. */ #undef HAVE_SYS_STAT_H diff --git a/tools/configure b/tools/configure index 9f731724ea..a98dd9e0ad 100755 --- a/tools/configure +++ b/tools/configure @@ -7817,12 +7817,13 @@ fi # Checks for header files. -for ac_header in yajl/yajl_version.h +for ac_header in yajl/yajl_version.h sys/eventfd.h do : - ac_fn_c_check_header_mongrel "$LINENO" "yajl/yajl_version.h" "ac_cv_header_yajl_yajl_version_h" "$ac_includes_default" -if test "x$ac_cv_header_yajl_yajl_version_h" = x""yes; then : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF -#define HAVE_YAJL_YAJL_VERSION_H 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi diff --git a/tools/configure.ac b/tools/configure.ac index f6e2fec2af..36a3343b87 100644 --- a/tools/configure.ac +++ b/tools/configure.ac @@ -166,6 +166,6 @@ AC_CHECK_LIB([iconv], [libiconv_open], [libiconv="y"], [libiconv="n"]) AC_SUBST(libiconv) # Checks for header files. -AC_CHECK_HEADERS([yajl/yajl_version.h]) +AC_CHECK_HEADERS([yajl/yajl_version.h sys/eventfd.h]) AC_OUTPUT() |