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

From: Peter Zijlstra
Date: Tue Jan 31 2023 - 06:15:24 EST


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

#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)