Re: [PATCH v4] module: replace module_layout with module_memory

From: Song Liu
Date: Tue Jan 31 2023 - 19:37:43 EST


Thanks to all for these feedbacks. I will fix the code and send v5.

> On Jan 31, 2023, at 3:14 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> On Mon, Jan 30, 2023 at 10:21:09AM -0800, Song Liu wrote:
>> +#define for_each_mod_mem_type(type) \
>> + for ((type) = MOD_TEXT; \
>> + (type) < MOD_MEM_NUM_TYPES; (type)++)
>>
>> +#define for_core_mod_mem_type(type) \
>> + for ((type) = MOD_TEXT; \
>> + (type) < MOD_INIT_TEXT; (type)++)
>> +
>> +#define for_init_mod_mem_type(type) \
>> + for ((type) = MOD_INIT_TEXT; \
>> + (type) < MOD_MEM_NUM_TYPES; (type)++)
>
> #define __for_each_mod_mem_types(type, _from, _to) \
> for (enum mod_mem_type type = _from; type <= _to; type++;)
>
> also to be used in the previously suggested within_module_mem_types()
> function.
>
> also note the C99 variable in for-loop decl thing

Aha, I didn't realize we started using C99 for-loop decl.

Thanks,
Song

>
> #define for_code_mod_mem_type(type) \
> __for_each_mod_mem_types(type, MOD_TEXT, MOD_RO_AFTER_INIT)
>
> #define for_code_mod_mem_type(type) \
> __for_each_mod_mem_types(type, MOD_INIT_TEXT, MOD_INIT_RODATA)
>
>
>