snd_ctl_tlv
#define SNDRV_CTL_IOCTL_TLV_READ _IOWR('U', 0x1a, struct snd_ctl_tlv)
#define SNDRV_CTL_IOCTL_TLV_WRITE _IOWR('U', 0x1b, struct snd_ctl_tlv)
#define SNDRV_CTL_IOCTL_TLV_COMMAND _IOWR('U', 0x1c, struct snd_ctl_tlv)
struct snd_ctl_tlv __user *buf,
struct snd_ctl_tlv header;
if (size < sizeof(struct snd_ctl_tlv))
const struct snd_ctl_tlv __user *tlvd = (const struct snd_ctl_tlv __user *)binary_data;
struct snd_ctl_tlv header;
if (copy_from_user(&header, tlvd, sizeof(struct snd_ctl_tlv)))
if (header.length + sizeof(struct snd_ctl_tlv) > size) {
header.length, sizeof(struct snd_ctl_tlv), size);
struct snd_ctl_tlv __user *tlvd = (struct snd_ctl_tlv __user *)binary_data;
struct snd_ctl_tlv header;
if (size < sizeof(struct snd_ctl_tlv))
size -= sizeof(struct snd_ctl_tlv);
if (copy_to_user(tlvd, &header, sizeof(struct snd_ctl_tlv)))
struct snd_ctl_tlv __user *tlvd = (struct snd_ctl_tlv __user *)binary_data;
struct snd_ctl_tlv header;
if (copy_from_user(&header, tlvd, sizeof(struct snd_ctl_tlv)))
if (header.length + sizeof(struct snd_ctl_tlv) > size) {
header.length, sizeof(struct snd_ctl_tlv), size);
struct snd_ctl_tlv __user *tlvd = (struct snd_ctl_tlv __user *)binary_data;
struct snd_ctl_tlv header;
if (size < sizeof(struct snd_ctl_tlv))
size -= sizeof(struct snd_ctl_tlv);
if (copy_to_user(tlvd, &header, sizeof(struct snd_ctl_tlv)))
#define SNDRV_CTL_IOCTL_TLV_READ _IOWR('U', 0x1a, struct snd_ctl_tlv)
#define SNDRV_CTL_IOCTL_TLV_WRITE _IOWR('U', 0x1b, struct snd_ctl_tlv)
#define SNDRV_CTL_IOCTL_TLV_COMMAND _IOWR('U', 0x1c, struct snd_ctl_tlv)