diff options
author | obrien <obrien@FreeBSD.org> | 2008-08-28 18:29:59 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2008-08-28 18:29:59 +0000 |
commit | 7222ac6db01f5715c7d24682523dc6889f254a04 (patch) | |
tree | f82ce35afdf507d8338e6e2a7de5d42d9ca8a0d4 /sys/sys/ioccom.h | |
parent | a7d0f2bbf3cb8f8ffdfe880b6f050d1f52dd8c8f (diff) | |
download | FreeBSD-src-7222ac6db01f5715c7d24682523dc6889f254a04.zip FreeBSD-src-7222ac6db01f5715c7d24682523dc6889f254a04.tar.gz |
Protect _IOC's 'len' and 'inout' parameters so that _IOC can be used in
more flexible ways.
Diffstat (limited to 'sys/sys/ioccom.h')
-rw-r--r-- | sys/sys/ioccom.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/sys/ioccom.h b/sys/sys/ioccom.h index acbd0eb..be2ce66 100644 --- a/sys/sys/ioccom.h +++ b/sys/sys/ioccom.h @@ -50,8 +50,8 @@ #define IOC_INOUT (IOC_IN|IOC_OUT) #define IOC_DIRMASK (IOC_VOID|IOC_OUT|IOC_IN) -#define _IOC(inout,group,num,len) \ - ((unsigned long)(inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num))) +#define _IOC(inout,group,num,len) ((unsigned long) \ + ((inout) | (((len) & IOCPARM_MASK) << 16) | ((group) << 8) | (num))) #define _IO(g,n) _IOC(IOC_VOID, (g), (n), 0) #define _IOWINT(g,n) _IOC(IOC_VOID, (g), (n), sizeof(int)) #define _IOR(g,n,t) _IOC(IOC_OUT, (g), (n), sizeof(t)) |