Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Apr 2018 12:52:34 +0000 (UTC)
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r332502 - stable/11/sys/sys
Message-ID:  <201804141252.w3ECqYnd048336@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: emaste
Date: Sat Apr 14 12:52:34 2018
New Revision: 332502
URL: https://svnweb.freebsd.org/changeset/base/332502

Log:
  MFC r331077 (brooks): Add _IOC_NEWLEN() and _IOC_NEWTYPE() macros.
  
  These macros take an existing ioctl(2) command and replace the length
  with the specified length or length of the specified type respectively.
  These can be used to define commands for 32-bit compatibility with fewer
  opportunities for cut-and-paste errors then a whole new definition.
  
  Obtained from:	CheriBSD
  Sponsored by:	DARPA, AFRL

Modified:
  stable/11/sys/sys/ioccom.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/sys/ioccom.h
==============================================================================
--- stable/11/sys/sys/ioccom.h	Sat Apr 14 12:07:05 2018	(r332501)
+++ stable/11/sys/sys/ioccom.h	Sat Apr 14 12:52:34 2018	(r332502)
@@ -59,6 +59,10 @@
 #define	_IOW(g,n,t)	_IOC(IOC_IN,	(g), (n), sizeof(t))
 /* this should be _IORW, but stdio got there first */
 #define	_IOWR(g,n,t)	_IOC(IOC_INOUT,	(g), (n), sizeof(t))
+/* Replace length/type in an ioctl command. */
+#define	_IOC_NEWLEN(ioc, len) \
+    (((~(IOCPARM_MASK << 16)) & (ioc)) | (((len) & IOCPARM_MASK) << 16))
+#define	_IOC_NEWTYPE(ioc, type)	_IOC_NEWLEN((ioc), sizeof(type))
 
 #ifdef _KERNEL
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201804141252.w3ECqYnd048336>