mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-31 22:25:35 -04:00
pcm: fix 64-bit SNDRV_PCM_IOCTL_STATUS ABI breakage
Commit cf40ea169a (pcm: support for audio timestamps) added the new
audio_tstamp field to struct sndrv_pcm_status. However, struct timespec
requires 64-bit alignment, so the 64-bit compiler would insert
32 bits of padding before this field, which broke SNDRV_PCM_IOCTL_STATUS
with error messages like this:
kernel: unknown ioctl = 0x80984120
To solve this, insert the padding explicitly so that it can be taken
into account when calculating the ABI structure size.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
This commit is contained in:
parent
cf40ea169a
commit
2b49df0c55
1 changed files with 2 additions and 1 deletions
|
|
@ -427,8 +427,9 @@ struct sndrv_pcm_status {
|
||||||
sndrv_pcm_uframes_t avail_max; /* max frames available on hw since last status */
|
sndrv_pcm_uframes_t avail_max; /* max frames available on hw since last status */
|
||||||
sndrv_pcm_uframes_t overrange; /* count of ADC (capture) overrange detections from last status */
|
sndrv_pcm_uframes_t overrange; /* count of ADC (capture) overrange detections from last status */
|
||||||
int suspended_state; /* suspended stream state */
|
int suspended_state; /* suspended stream state */
|
||||||
|
u_int32_t reserved_alignment; /* must be filled with zero */
|
||||||
struct timespec audio_tstamp; /* from sample counter or wall clock */
|
struct timespec audio_tstamp; /* from sample counter or wall clock */
|
||||||
unsigned char reserved[60-sizeof(struct timespec)]; /* must be filled with zero */
|
unsigned char reserved[56-sizeof(struct timespec)]; /* must be filled with zero */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sndrv_pcm_mmap_status {
|
struct sndrv_pcm_mmap_status {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue