A few HP-UX fixes
authorJens Axboe <jaxboe@fusionio.com>
Sat, 9 Jul 2011 06:54:26 +0000 (08:54 +0200)
committerJens Axboe <jaxboe@fusionio.com>
Sat, 9 Jul 2011 06:54:26 +0000 (08:54 +0200)
Enable posixaio and net IO engine

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Makefile
engines/net.c
os/os-hpux.h

index dade0ae6649f60ac2dec83d742e07b95dbe10bbc..992a9b846a0aed9555dd4246857b605676435492 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -13,49 +13,50 @@ SOURCE = gettime.c fio.c ioengines.c init.c stat.c log.c time.c filesetup.c \
                eta.c verify.c memory.c io_u.c parse.c mutex.c options.c \
                rbtree.c smalloc.c filehash.c profile.c debug.c lib/rand.c \
                lib/num2str.c $(wildcard crc/*.c) engines/cpu.c \
-               engines/mmap.c engines/sync.c engines/null.c memalign.c
+               engines/mmap.c engines/sync.c engines/null.c engines/net.c \
+               memalign.c
 
 ifeq ($(UNAME), Linux)
   SOURCE += diskutil.c fifo.c blktrace.c helpers.c cgroup.c trim.c \
                engines/libaio.c engines/posixaio.c engines/sg.c \
                engines/splice.c engines/syslet-rw.c engines/guasi.c \
-               engines/binject.c profiles/tiobench.c engines/net.c
+               engines/binject.c profiles/tiobench.c
   LIBS += -lpthread -ldl -lrt -laio
   CFLAGS += -rdynamic
 endif
 ifeq ($(UNAME), SunOS)
   SOURCE += fifo.c lib/strsep.c helpers.c engines/posixaio.c \
-               engines/solarisaio.c engines/net.c
+               engines/solarisaio.c
   LIBS  += -lpthread -ldl -laio -lrt -lnsl -lsocket
   CPPFLAGS += -D__EXTENSIONS__
 endif
 ifeq ($(UNAME), FreeBSD)
-  SOURCE += helpers.c engines/posixaio.c engines/net.c
+  SOURCE += helpers.c engines/posixaio.c
   LIBS  += -lpthread -lrt
   CFLAGS += -rdynamic
 endif
 ifeq ($(UNAME), NetBSD)
-  SOURCE += helpers.c engines/posixaio.c engines/net.c
+  SOURCE += helpers.c engines/posixaio.c
   LIBS  += -lpthread -lrt
   CFLAGS += -rdynamic
 endif
 ifeq ($(UNAME), AIX)
-  SOURCE += fifo.c helpers.c lib/getopt_long.c engines/posixaio.c engines/net.c
+  SOURCE += fifo.c helpers.c lib/getopt_long.c engines/posixaio.c
   LIBS  += -lpthread -ldl -lrt
   CFLAGS += -rdynamic
   CPPFLAGS += -D_LARGE_FILES -D__ppc__
 endif
 ifeq ($(UNAME), HP-UX)
-  SOURCE += fifo.c helpers.c lib/getopt_long.c lib/strsep.c
+  SOURCE += fifo.c helpers.c lib/getopt_long.c lib/strsep.c engines/posixaio.c
   LIBS   += -lpthread -dl -lrt
-  CPPFLAGS += -D_LARGE_FILES
+  CFLAGS += -D_LARGEFILE64_SOURCE
 endif
 ifeq ($(UNAME), Darwin)
-  SOURCE += helpers.c engines/posixaio.c engines/net.c
+  SOURCE += helpers.c engines/posixaio.c
   LIBS  += -lpthread -ldl
 endif
 ifneq (,$(findstring CYGWIN,$(UNAME)))
-  SOURCE += engines/windowsaio.c engines/net.c
+  SOURCE += engines/windowsaio.c
   LIBS  += -lpthread -lrt
 endif
 
index b594e0a50d27561da11b4fe64a3947e142a2ff0c..6866ba2d840465a0dfbeb85372016704c22c5ace 100644 (file)
@@ -280,7 +280,11 @@ static int fio_netio_recv(struct thread_data *td, struct io_u *io_u)
 
        do {
                if (nd->net_protocol == IPPROTO_UDP) {
+#ifdef __hpux
+                       int len = sizeof(nd->addr);
+#else
                        socklen_t len = sizeof(nd->addr);
+#endif
                        struct sockaddr *from = (struct sockaddr *) &nd->addr;
 
                        ret = recvfrom(io_u->file->fd, io_u->xfer_buf,
@@ -377,7 +381,11 @@ static int fio_netio_connect(struct thread_data *td, struct fio_file *f)
 static int fio_netio_accept(struct thread_data *td, struct fio_file *f)
 {
        struct netio_data *nd = td->io_ops->data;
+#ifdef __hpux
+       int socklen = sizeof(nd->addr);
+#else
        socklen_t socklen = sizeof(nd->addr);
+#endif
 
        if (nd->net_protocol == IPPROTO_UDP) {
                f->fd = nd->listenfd;
index 3c90841022575c75706b558fad627615db3e72a3..38a1441db292627379ab2f301daea5979e92e27c 100644 (file)
@@ -9,6 +9,8 @@
 #include <sys/mman.h>
 #include <sys/mpctl.h>
 #include <sys/scsi.h>
+#include <time.h>
+#include <aio.h>
 
 #include "../file.h"
 
 #define POSIX_MADV_RANDOM      MADV_RANDOM
 #define posix_madvise(ptr, sz, hint)   madvise((ptr), (sz), (hint))
 
+#ifndef CLOCK_MONOTONIC
+#define CLOCK_MONOTONIC                CLOCK_REALTIME
+#endif
+
+#ifndef MSG_WAITALL
+#define MSG_WAITALL    0x40
+#endif
+
 static inline int blockdev_invalidate_cache(struct fio_file *f)
 {
        return EINVAL;