elf.h
inttypes.h
ioctls.h
- libaio.h
linux/capability.h
linux/perf_event.h
linux/ptrace.h
AC_CHECK_SIZEOF([long])
AC_CHECK_SIZEOF([rlim_t],,[#include <sys/resource.h>])
+AC_CHECK_HEADERS([libaio.h], [
+ AC_CHECK_MEMBERS([struct iocb.u.c.flags],,, [#include <libaio.h>])
+ AC_CHECK_DECLS([IO_CMD_PWRITE, IO_CMD_PWRITEV],,, [#include <libaio.h>])
+])
+
AC_PATH_PROG([PERL], [perl])
AC_CONFIG_FILES([Makefile tests/Makefile])
static void
print_common_flags(struct iocb *iocb)
{
+#if HAVE_STRUCT_IOCB_U_C_FLAGS
if (iocb->u.c.flags & IOCB_RESFD)
tprintf(", resfd=%d", iocb->u.c.resfd);
if (iocb->u.c.flags & ~IOCB_RESFD)
tprintf(", flags=%x", iocb->u.c.flags);
+#else
+# warning "libaio.h is too old => limited io_submit decoding"
+#endif
}
#endif /* HAVE_LIBAIO_H */
tprintf("filedes:%d", iocb.aio_fildes);
switch (sub) {
case SUB_COMMON:
+#if HAVE_DECL_IO_CMD_PWRITE
if (iocb.aio_lio_opcode == IO_CMD_PWRITE) {
tprints(", str:");
printstr(tcp, (unsigned long)iocb.u.c.buf,
iocb.u.c.nbytes);
- } else {
+ } else
+#endif
tprintf(", buf:%p", iocb.u.c.buf);
- }
tprintf(", nbytes:%lu, offset:%llx",
iocb.u.c.nbytes,
iocb.u.c.offset);
tprints(", ");
tprint_iov(tcp, iocb.u.v.nr,
(unsigned long)iocb.u.v.vec,
- iocb.aio_lio_opcode == IO_CMD_PWRITEV);
+#if HAVE_DECL_IO_CMD_PWRITEV
+ iocb.aio_lio_opcode == IO_CMD_PWRITEV
+#else
+ 0
+#endif
+ );
break;
case SUB_POLL:
tprintf(", %x", iocb.u.poll.events);
if (i)
tprints("}");
#else
-#warning "libaio-devel is not available => no io_submit decoding"
+#warning "libaio.h is not available => no io_submit decoding"
tprintf("%#lx", tcp->u_arg[2]);
#endif
}