On Fri, Jan 16, 2015 at 3:41 PM, Dmitry V. Levin <[email protected]> wrote: > On Fri, Jan 16, 2015 at 09:49:19AM +0100, Gabriel Laskar wrote: >> On Fri, Jan 16, 2015 at 12:39 AM, Dmitry V. Levin wrote: > [...] >> > strace uses only 16 bits (8-bit number and 8-bit type) of the 32-bit ioctl >> > command, so the only real solution to this issue is to take into account >> > remaining 16 bits (size and direction). >> > >> > For example, >> > SNDCTL_TMR_TIMEBASE is _IOC(_IOC_READ|_IOC_WRITE, 'T', 1, sizeof(int)), >> > SNDRV_TIMER_IOCTL_NEXT_DEVICE is _IOC(_IOC_READ|_IOC_WRITE, 'T', 1, >> > sizeof(struct snd_timer_id)), >> > TCGETS is architecture-specific, its generic value 0x5401 is _IOC(0, 'T', >> > 1, 0). >> > >> > As you can see all these 32-bit values are different. >> > The only question is how to evaluate these remaining bits reliably, >> > especially >> > 14 bits (or 13 on alpha, mips, powerpc, and sparc) of ioctl command size. >> >> Or we could do that, yes. I don't know why I have occulted this >> solution. I have missed the 14/13 bit snafu though. >> >> Maybe we can create 2 ioctlent.h.in files, 1 for the 14 bits size, and >> another one for the 13 bits one and compile the right one for each >> arch. > > If we succeeded to fetch the "size" bits, we could avoid these > architecture-specific complications by storing {dir,type,nr,size} > in ioctlent.h.in files apart, and assembling them into 32-bit words > at build time. > This way we won't need two different generic ioctlent.h.in files. > > We still have to support small architecture-specific ioctlent.h.in > files because some historic ioctl commands like TCGETS differ.
Seems good. I will give it a go. Beside that issue that was already present without these patches, is there any comments on this serie ? -- Gabriel Laskar ------------------------------------------------------------------------------ New Year. New Location. New Benefits. New Data Center in Ashburn, VA. GigeNET is offering a free month of service with a new server in Ashburn. Choose from 2 high performing configs, both with 100TB of bandwidth. Higher redundancy.Lower latency.Increased capacity.Completely compliant. http://p.sf.net/sfu/gigenet _______________________________________________ Strace-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/strace-devel
