Frage

my strace tends to confuse some ioctl values (I'm sure that the SNDRV ioctls is not recognized well...)

how I can recognize the right ioctl value?

a little example:

$ strace aplay -l

...
fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
ioctl(4, UI_DEV_CREATE, 0xbfaa6e74)     = 0
close(4)                                = 0
...

that UI_DEV_CREATE is a SNDRV_CTL_IOCTL_CARD_INFO

(another example)

ioctl(4, USBDEVFS_CONTROL or USBDEVFS_CONTROL32, 0xbfaa6f94) = 0
ioctl(4, UI_DEV_CREATE, 0xbfaa71f0)     = 0
ioctl(4, 0x80045530, 0xbfaa73ac)  

USBDEVFS_CONTROL is a SNDRV_CTL_IOCTL_PVERSION and I really don't know what is the Macro expansion for 0x80045530...

thanks :)

War es hilfreich?

Lösung

As you can see in Documentation/ioctl/ioctl-number.txt, the value 0x55 ('U') is used by several subsystems. strace does not know which of the several subsystem the device file belongs to, and might not recognize some newer ioctl codes.

The latest strace version knows about SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top