--- IO-AIO/AIO.xs 2005/07/23 18:19:56 1.15 +++ IO-AIO/AIO.xs 2005/07/31 18:20:07 1.16 @@ -2,6 +2,8 @@ #include "perl.h" #include "XSUB.h" +#include "autoconf/config.h" + #include #include @@ -9,9 +11,6 @@ #include #include #include -#if __linux -#include -#endif #include @@ -267,11 +266,17 @@ switch (type) { +#if HAVE_PREADWRITE case REQ_READ: req->result = pread (req->fd, req->dataptr, req->length, req->offset); break; case REQ_WRITE: req->result = pwrite (req->fd, req->dataptr, req->length, req->offset); break; -#if SYS_readahead +#else +# error "pread/pwrite cannot be emulated, fix your os" +#endif + +#if HAVE_READAHEAD case REQ_READAHEAD: req->result = readahead (req->fd, req->offset, req->length); break; #else + // TODO: emulate case REQ_READAHEAD: req->result = -1; errno = ENOSYS; break; #endif @@ -283,8 +288,11 @@ case REQ_CLOSE: req->result = close (req->fd); break; case REQ_UNLINK: req->result = unlink (req->dataptr); break; + case REQ_FDATASYNC: +#if HAVE_FDATASYNC + req->result = fdatasync (req->fd); break; +#endif case REQ_FSYNC: req->result = fsync (req->fd); break; - case REQ_FDATASYNC: req->result = fdatasync (req->fd); break; case REQ_QUIT: break;