>> The biggest problem of struct timespec is that it's pretty much
> arch-dependent. But since it's used in all other places, we need to
> live with that...
>> Usually when we add a new field, we don't use union. Just decrease
> sizeof(struct timespec) from reserved[] size.
>> No matter whether using union or not, it doesn't mean that the whole
> struct size work is kept. The field might be aligned since we haven't
> added the packed attribute. Maybe better to add a padding to align
> 64bit before audio_tstamp, then cross your finger.
Ok, this is the feedback I needed, I had no idea if I could add a new
field and why exactly the reserved field had to be zeroed out. On the
first try I had an invalid ioctl error and found this workaround.
Will fix this.
>> struct snd_pcm_mmap_status {
>> @@ -430,6 +434,7 @@ struct snd_pcm_mmap_status {
>> int pad1; /* Needed for 64 bit alignment */
>> snd_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */
>> struct timespec tstamp; /* Timestamp */
>> + struct timespec audio_tstamp; /* audio wall clock timestamp */
>> snd_pcm_state_t suspended_state; /* RO: suspended stream state */
>> };
>> struct snd_pcm_mmap_status is mmapped to user-space, thus it must be
> backward compatible. Always append the new field.
will do.
> In addition, if you change the ABI, please change the PCM protocol
> version, so that alsa-lib can detect the ABI change
ok
> Also, last not but least, don't forget to convert pcm_compat.c.
will look into it
> Other than these, changes look good to me.
Cool, thanks for the feedback.
-Pierre