• Takashi Iwai's avatar
    ALSA: pcm: Add an ioctl to specify the supported protocol version · 4b671f57
    Takashi Iwai authored
    We have an ioctl to inform the PCM protocol version the running kernel
    supports, but there is no way to know which protocol version the
    user-space can understand.  This lack of information caused headaches
    in the past when we tried to extend the ABI.  For example, because we
    couldn't guarantee the validity of the reserved bytes, we had to
    introduce a new ioctl SNDRV_PCM_IOCTL_STATUS_EXT for assigning a few
    new fields in the formerly reserved bits.  If we could know that it's
    a new alsa-lib, we could assume the availability of the new fields,
    thus we could have reused the existing SNDRV_PCM_IOCTL_STATUS.
    
    In order to improve the ABI extensibility, this patch adds a new ioctl
    for user-space to inform its supporting protocol version to the
    kernel.  By reporting the supported protocol from user-space, the
    kernel can judge which feature should be provided and which not.
    
    With the addition of the new ioctl, the PCM protocol version is bumped
    to 2.0.14, too.  User-space checks the kernel protocol version via
    SNDRV_PCM_INFO_PVERSION, then it sets the supported version back via
    SNDRV_PCM_INFO_USER_PVERSION.
    Reviewed-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    4b671f57
pcm_compat.c 21.7 KB