[alsa-devel] [PATCH - AAF PCM plugin 3/7] aaf: Implement Playback mode support

Takashi Sakamoto o-takashi at sakamocchi.jp
Thu Oct 11 09:45:07 CEST 2018


On Oct 11 2018 16:31, Takashi Iwai wrote:
> On Wed, 10 Oct 2018 23:27:29 +0200,
> Guedes, Andre wrote:
>>
>> On Wed, 2018-10-10 at 12:34 +0200, Takashi Iwai wrote:
>>>> +static int aaf_set_hw_constraint(snd_pcm_aaf_t *aaf)
>>>> +{
>>>> +     int res;
>>>> +     snd_pcm_ioplug_t *io = &aaf->io;
>>>> +     const unsigned int accesses[] = {
>>>> +             SND_PCM_ACCESS_RW_INTERLEAVED,
>>>> +     };
>>>> +     const unsigned int formats[] = {
>>>> +             SND_PCM_FORMAT_S16_BE,
>>>> +             SND_PCM_FORMAT_S24_3BE,
>>>> +             SND_PCM_FORMAT_S32_BE,
>>>> +             SND_PCM_FORMAT_FLOAT_BE,
>>>> +     };
>>>> +     const unsigned int rates[] = {
>>>> +             8000,
>>>> +             16000,
>>>> +             24000,
>>>> +             32000,
>>>> +             44100,
>>>> +             48000,
>>>> +             88200,
>>>> +             96000,
>>>> +             176400,
>>>> +             192000,
>>>> +     };
>>>
>>> Use static arrays for the above.
>>
>> It isn't clear to me what is the point in allocating these variables in
>> the global scope. May I ask what is the benefit in adding the 'static'
>> modifier to these local variables?
> 
> Yes.

In this case, it's not relevant to access scope.

Just with 'const' qualifier, the symbol allocates in .text section of
ELF binary. With additional 'static' qualifier, the symbol allocates in 
.rodata section.

In loading, symbol in .rodata section locates in segments of VMA with
'read-only' flag. This brings safety from several bugs such as buffer
over-run.


Regards

Takashi Sakamoto


More information about the Alsa-devel mailing list