A few HP-UX fixes

Enable posixaio and net IO engine

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
diff --git a/Makefile b/Makefile
index dade0ae..992a9b8 100644
--- a/Makefile
+++ b/Makefile
@@ -13,49 +13,50 @@
 		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
 
diff --git a/engines/net.c b/engines/net.c
index b594e0a..6866ba2 100644
--- a/engines/net.c
+++ b/engines/net.c
@@ -280,7 +280,11 @@
 
 	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_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;
diff --git a/os/os-hpux.h b/os/os-hpux.h
index 3c90841..38a1441 100644
--- a/os/os-hpux.h
+++ b/os/os-hpux.h
@@ -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"
 
@@ -27,6 +29,14 @@
 #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;