[PATCH v4] sound: rawmidi: Add framing mode
Takashi Iwai
tiwai at suse.de
Mon Apr 12 11:31:41 CEST 2021
On Sun, 11 Apr 2021 19:52:21 +0200,
Jaroslav Kysela wrote:
> >>> struct snd_rawmidi_params {
> >>> int stream;
> >>> size_t buffer_size; /* queue size in bytes */
> >>> size_t avail_min; /* minimum avail bytes for wakeup */
> >>> unsigned int no_active_sensing: 1; /* do not send active sensing byte in close() */
> >>> - unsigned char reserved[16]; /* reserved for future use */
> >>> + unsigned char framing; /* For input data only, frame incoming data */
> >> We can move this flag to above 32-bit word (no_active_sensing). I'm not sure,
> >> if we need 8 bits for this. It's first change after 20 years. Another flag may
> >> obsolete this one.
> >
> > Not sure what you mean by this, could you show the code? Framing is an
> > enum rather than a flag, in case we find other framing formats with
> > other sizes that would obsolete this one.
>
> unsigned int no_active_sensing: 1;
> unsigned int framing32: 1;
> unsigned int framing64: 1; /* future extension, framing32 == 0 in this case */
>
> or:
>
> unsigned int framing_mode: 3; /* three bits for future types */
>
> perhaps also:
>
> unsigned int clock_type: 3; /* three bits for the clock type selection */
The usage of bit fields in an ioctl struct is a bad idea from the
compat layer POV. Let's avoid it.
thanks,
Takashi
More information about the Alsa-devel
mailing list