Sync with upstream API

Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/src/io_uring.h b/src/io_uring.h
index 71e9202..9bb7181 100644
--- a/src/io_uring.h
+++ b/src/io_uring.h
@@ -20,10 +20,7 @@
 	__u16	ioprio;		/* ioprio for the request */
 	__s32	fd;		/* file descriptor to do IO on */
 	__u64	off;		/* offset into file */
-	union {
-		void	*addr;	/* buffer or iovecs */
-		__u64	__pad;
-	};
+	__u64	addr;		/* pointer to buffer or iovecs */
 	__u32	len;		/* buffer size or number of iovecs */
 	union {
 		__kernel_rwf_t	rw_flags;
@@ -136,20 +133,4 @@
 #define IORING_REGISTER_FILES		2
 #define IORING_UNREGISTER_FILES		3
 
-struct io_uring_register_buffers {
-	union {
-		struct iovec *iovecs;
-		__u64 pad;
-	};
-	__u32 nr_iovecs;
-};
-
-struct io_uring_register_files {
-	union {
-		__s32 *fds;
-		__u64 pad;
-	};
-	__u32 nr_fds;
-};
-
 #endif
diff --git a/src/syscall.c b/src/syscall.c
index 7097c46..d0e35d2 100644
--- a/src/syscall.c
+++ b/src/syscall.c
@@ -31,9 +31,10 @@
 #error "Arch not supported yet"
 #endif
 
-int io_uring_register(int fd, unsigned int opcode, void *arg)
+int io_uring_register(int fd, unsigned int opcode, void *arg,
+		      unsigned int nr_args)
 {
-	return syscall(__NR_sys_io_uring_register, fd, opcode, arg);
+	return syscall(__NR_sys_io_uring_register, fd, opcode, arg, nr_args);
 }
 
 int io_uring_setup(unsigned int entries, struct io_uring_params *p)
diff --git a/test/io_uring-cp.c b/test/io_uring-cp.c
index ce624c5..5f928c0 100644
--- a/test/io_uring-cp.c
+++ b/test/io_uring-cp.c
@@ -73,7 +73,7 @@
 	sqe->ioprio = 0;
 	sqe->fd = fd;
 	sqe->off = offset;
-	sqe->addr = data->iov;
+	sqe->addr = (unsigned long) data->iov;
 	sqe->buf_index = 0;
 	sqe->user_data = (unsigned long) data;
 	iovecs[sqe_index(sqe)].iov_len = size;
@@ -123,7 +123,7 @@
 	sqe->ioprio = 0;
 	sqe->fd = fd;
 	sqe->off = data->offset;
-	sqe->addr = data->iov;
+	sqe->addr = (unsigned long) data->iov;
 	sqe->buf_index = 0;
 	sqe->user_data = 0;
 	data->iov->iov_len = cqe->res;
diff --git a/test/io_uring-test.c b/test/io_uring-test.c
index 42a8745..a8e8cdf 100644
--- a/test/io_uring-test.c
+++ b/test/io_uring-test.c
@@ -59,7 +59,7 @@
 		sqe->ioprio = 0;
 		sqe->fd = fd;
 		sqe->off = offset;
-		sqe->addr = &iovecs[i];
+		sqe->addr = (unsigned long) &iovecs[i];
 		sqe->len = 1;
 		sqe->buf_index = 0;
 		offset += iovecs[i].iov_len;