[alsa-devel] [PATCH] [RFC 3/13] Intel SST driver include headers
Takashi Iwai
tiwai at suse.de
Tue Jul 7 08:15:31 CEST 2009
At Tue, 7 Jul 2009 11:33:23 +0530,
Harsha, Priya wrote:
>
> >> +/* Firmware Version info */
> >> +struct snd_sst_fw_version {
> >> + __u8 build; /* build number*/
> >> + __u8 minor; /* minor number*/
> >> + __u8 major; /* major number*/
> >> + __u8 type; /* build type*/
> >> +};
> >> +
> >> +/* Port info structure */
> >> +struct snd_sst_port_info {
> >> + __u16 port_type;
> >
> >Just wondering -- is there big-endian support?
> We have not tested this on big-endian, Could you tell us that should
> we make it endian safe?
When a field is more than one byte, you'd need endian conversion at
read/write. I didn't find it thus I suspected it.
> >> +struct snd_sst_vol {
> >> + unsigned int stream_id;
> >> + int volume;
> >> + unsigned long ramp_duration;
> >
> >Are you sure to use long?
> >Long can be different between 32 and 64bit architectures.
> We will change it to u32.
>
> >
> >> +struct snd_sst_buff_entry {
> >> + union {
> >> + void *user;
> >> + unsigned int offset;
> >> + } buffer;
> >
> >Is it OK?
> >The pointer and int can be different sizes.
> void* user - is the pointer to the buffer
> unsigned int offset - is the offset inside the buffer area.
> Not sure if I understand your comment. Please let us know if there
> is any issue you see with this structure.
A pointer can be 64bit while offset is always 32bit.
If they don't have to share the same space, why need to be a union?
thanks,
Takashi
More information about the Alsa-devel
mailing list