At Thu, 1 Jun 2006 15:12:05 +0200 (CEST), Jaroslav Kysela wrote: > > On Thu, 1 Jun 2006, Takashi Iwai wrote: > > > At Wed, 31 May 2006 15:10:21 +0200 (CEST), > > Jaroslav Kysela wrote: > > > > > > Hi, > > > > > > I've created a minimalistic TLV implemetation for the driver side. > > > Please, review and comment it. We can add more TLV funcionality in future. > > > It is essential that user space will handle SNDRV_CTL_TLVT_LEVEL type > > > immediately (altough it is not used in the kernel space now), otherwise we > > > cannot group and level TLVs in future. > > > > Please never ever include pointers in the ioctl struct. > > That's to be avoided as much as possible. > > > > +struct snd_ctl_tlv { > > > + unsigned int flags; > > > + unsigned int length; > > > + unsigned int value; > > > + /* > > > + * TLV structure is: > > > + * unsigned int length > > > + * unsigned int type - see SNDRV_CTL_TLVT_* > > > + * .... data aligned to sizeof(unsigned int), use > > > + * block_length = (length + (sizeof(unsigned int) - 1)) & > > > + * ~(sizeof(unsigned int) - 1)) .... > > > + */ > > > + void *ptr; > > > +}; > > So what you suggest? Something like 'struct dm_ioctl' > (include/linux/dm-ioctl.h) does? Data are stored after ioctl struct. > It's nearly similar. Yes. It's similar but a really big difference if you consider about 32/64bit compatibility. Also, the order of "TLV" is type-length-value. Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-devel