[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