2013-03-12 1 views
1

моего Трассирования стремится ввести в заблуждение некоторых ioctl значения (я уверен, что SNDRV IOCTLs не распознается хорошо ...)Трассирования печати Asound IOCTL

как я могу распознаю ioctl значения правильно?

маленький пример:

$ strace aplay -l

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

, что UI_DEV_CREATE является SNDRV_CTL_IOCTL_CARD_INFO

(другой пример)

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

USBDEVFS_CONTROL является SNDRV_CTL_IOCTL_PVERSION , и я действительно не знаю, что такое Macro расширение для 0x80045530 ...

спасибо :)

ответ

2

Как вы можете видеть в Documentation/ioctl/ioctl-number.txt, значение 0x55 ('U') используется несколькими подсистемами. strace не знает, какая из нескольких подсистем, к которой принадлежит файл устройства, и может не распознать некоторые новые коды ioctl.

Последняя версия strace знает о SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE.

Смежные вопросы