Re: RFC: minimalistic TLV implementation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux