Index: libcfa/src/concurrency/iocall.cfa
===================================================================
--- libcfa/src/concurrency/iocall.cfa	(revision 7288c0049997864732d1382f7fbefea144a2137e)
+++ libcfa/src/concurrency/iocall.cfa	(revision 3f850d79f0889d7d287cec10f41f1700e66928c5)
@@ -252,6 +252,6 @@
 
 		(*sqe){ IORING_OP_ACCEPT, sockfd };
-		sqe->addr = addr;
-		sqe->addr2 = addrlen;
+		sqe->addr = (uint64_t)(uintptr_t)addr;
+		sqe->addr2 = (uint64_t)(uintptr_t)addrlen;
 		sqe->accept_flags = flags;
 
@@ -267,6 +267,6 @@
 
 		(*sqe){ IORING_OP_CONNECT, sockfd };
-		sqe->addr = (uint64_t)addr;
-		sqe->off = addrlen;
+		sqe->addr = (uint64_t)(uintptr_t)addr;
+		sqe->off  = (uint64_t)(uintptr_t)addrlen;
 
 		__submit_wait
@@ -280,8 +280,10 @@
 		__submit_prelude
 
+		#warning FALLOCATE documentation for linux 5.7 is incorrect, and doesn't handle mode
+
 		(*sqe){ IORING_OP_FALLOCATE, fd };
 		sqe->off = offset;
-		sqe->len = length;
-		sqe->mode = mode;
+		sqe->len = mode;
+		sqe->addr = len;
 
 		__submit_wait
@@ -297,5 +299,5 @@
 		(*sqe){ IORING_OP_FADVISE, fd };
 		sqe->off = (uint64_t)offset;
-		sqe->len = length;
+		sqe->len = len;
 		sqe->fadvise_advice = advice;
 
@@ -328,5 +330,5 @@
 		sqe->addr = (uint64_t)pathname;
 		sqe->open_flags = flags;
-		sqe->mode = mode;
+		sqe->len = mode;
 
 		__submit_wait
@@ -396,7 +398,19 @@
 		__submit_prelude
 
-		(*sqe){ IORING_OP_SPLICE, fd_out, 0p, len, off_out };
+		(*sqe){ IORING_OP_SPLICE, fd_out };
+		if( off_out ) {
+			sqe->off = *off_out;
+		}
+		else {
+			sqe->off = (uint64_t)-1;
+		}
+		sqe->len = len;
 		sqe->splice_fd_in  = fd_in;
-		sqe->splice_off_in = off_in;
+		if( off_in ) {
+			sqe->splice_off_in = *off_in;
+		}
+		else {
+			sqe->splice_off_in = (uint64_t)-1;
+		}
 		sqe->splice_flags  = flags;
 
@@ -411,7 +425,19 @@
 		__submit_prelude
 
-		(*sqe){ IORING_OP_SPLICE, fd_out, 0p, len, off_out };
+		(*sqe){ IORING_OP_SPLICE, fd_out };
+		if( off_out ) {
+			sqe->off = *off_out;
+		}
+		else {
+			sqe->off = (uint64_t)-1;
+		}
+		sqe->len = len;
 		sqe->splice_fd_in  = fd_in;
-		sqe->splice_off_in = off_in;
+		if( off_in ) {
+			sqe->splice_off_in = *off_in;
+		}
+		else {
+			sqe->splice_off_in = (uint64_t)-1;
+		}
 		sqe->splice_flags  = flags | out_flags;
 		sqe->flags = in_flags;
