diff --git a/lib/c/labcomm_ioctl.h b/lib/c/labcomm_ioctl.h
index f37330703702fdbfe00e6e049951373f9199107f..d332314620ca45576e662c8786a68baaf0336e7e 100644
--- a/lib/c/labcomm_ioctl.h
+++ b/lib/c/labcomm_ioctl.h
@@ -63,14 +63,23 @@
   LABCOMM_IOC(LABCOMM_IOC_NOSIG,LABCOMM_IOC_NONE,type,nr,0)
 #define LABCOMM_IOR(type,nr,size)					\
   LABCOMM_IOC(LABCOMM_IOC_NOSIG,LABCOMM_IOC_READ,type,nr,sizeof(size))
+/* FIXME: add flag to differentiate between size and nargs */
+#define LABCOMM_IORN(type,nr,nargs)					\
+  LABCOMM_IOC(LABCOMM_IOC_NOSIG,LABCOMM_IOC_READ,type,nr,nargs)
 #define LABCOMM_IOW(type,nr,size)					\
   LABCOMM_IOC(LABCOMM_IOC_NOSIG,LABCOMM_IOC_WRITE,type,nr,sizeof(size))
+#define LABCOMM_IOWN(type,nr,nargs)					\
+  LABCOMM_IOC(LABCOMM_IOC_NOSIG,LABCOMM_IOC_WRITE,type,nr,nargs)
 #define LABCOMM_IOS(type,nr)					\
   LABCOMM_IOC(LABCOMM_IOC_USESIG,LABCOMM_IOC_READ,type,nr,0)
 #define LABCOMM_IOSR(type,nr,size)					\
   LABCOMM_IOC(LABCOMM_IOC_USESIG,LABCOMM_IOC_READ,type,nr,sizeof(size))
+#define LABCOMM_IOSRN(type,nr,nargs)					\
+  LABCOMM_IOC(LABCOMM_IOC_USESIG,LABCOMM_IOC_READ,type,nr,nargs)
 #define LABCOMM_IOSW(type,nr,size)					\
   LABCOMM_IOC(LABCOMM_IOC_USESIG,LABCOMM_IOC_WRITE,type,nr,sizeof(size))
+#define LABCOMM_IOSWN(type,nr,nargs)					\
+  LABCOMM_IOC(LABCOMM_IOC_USESIG,LABCOMM_IOC_WRITE,type,nr,nargs)
 
 struct labcomm_ioctl_register_signature {
   int index;