translate a macro to D
teo
teo.ubuntu at yahoo.com
Thu Jul 7 13:23:33 PDT 2011
On Thu, 07 Jul 2011 11:57:51 -0400, Steven Schveighoffer wrote:
> Well, I can't really say I understand the point of using this macro at
> all. sizeof is a builtin, and part of the C spec. Why not just use
> sizeof?
>
Well, have a look please at ioctl.h (linux). You will find the following
macros:
#define _IOC(dir,type,nr,size) \
(((dir) << _IOC_DIRSHIFT) | \
((type) << _IOC_TYPESHIFT) | \
((nr) << _IOC_NRSHIFT) | \
((size) << _IOC_SIZESHIFT))
#define _IOC_TYPECHECK(t) (sizeof(t))
/* used to create numbers */
#define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0)
#define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK
(size)))
#define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),
(_IOC_TYPECHECK(size)))
#define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),
(_IOC_TYPECHECK(size)))
This is what I am after. However I thought that a simplified case will
make it easier to describe the problem.
More information about the Digitalmars-d-learn
mailing list