lib_manager: llext_manager: Add const modifier to module manifest pointers

To prevent unintentional modification of a loadable library manifest,
a const modifier has been added to all variables pointing to it.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
This commit is contained in:
Adrian Warecki 2024-02-28 17:25:37 +01:00 committed by Kai Vehmanen
parent 3c114b5595
commit a11dd14c0c
4 changed files with 16 additions and 16 deletions

View File

@ -50,7 +50,7 @@ struct ipc_comp_dev;
const struct comp_driver *ipc4_get_comp_drv(int module_id);
struct comp_dev *ipc4_get_comp_dev(uint32_t comp_id);
int ipc4_add_comp_dev(struct comp_dev *dev);
const struct comp_driver *ipc4_get_drv(uint8_t *uuid);
const struct comp_driver *ipc4_get_drv(const uint8_t *uuid);
int ipc4_chain_manager_create(struct ipc4_chain_dma *cdma);
int ipc4_chain_dma_state(struct comp_dev *dev, struct ipc4_chain_dma *cdma);
int ipc4_create_chain_dma(struct ipc *ipc, struct ipc4_chain_dma *cdma);

View File

@ -728,7 +728,7 @@ int ipc4_chain_manager_create(struct ipc4_chain_dma *cdma)
const struct comp_driver *drv;
struct comp_dev *dev;
drv = ipc4_get_drv((uint8_t *)&uuid);
drv = ipc4_get_drv((const uint8_t *)&uuid);
if (!drv)
return -EINVAL;
@ -864,7 +864,7 @@ int ipc4_process_on_core(uint32_t core, bool blocking)
return IPC4_SUCCESS;
}
const struct comp_driver *ipc4_get_drv(uint8_t *uuid)
const struct comp_driver *ipc4_get_drv(const uint8_t *uuid)
{
struct comp_driver_list *drivers = comp_drivers_get();
struct list_item *clist;
@ -934,7 +934,7 @@ static const struct comp_driver *ipc4_library_get_drv(int module_id)
mod_uuid = &uuid_map[i];
if (mod_uuid->module_id == module_id)
return ipc4_get_drv((uint8_t *)&mod_uuid->uuid);
return ipc4_get_drv((const uint8_t *)&mod_uuid->uuid);
}
tr_err(&comp_tr, "ipc4_library_get_drv(): Unsupported module ID %#x\n", module_id);

View File

@ -279,7 +279,7 @@ static int lib_manager_unload_libcode_modules(const uint32_t module_id,
static void __sparse_cache *lib_manager_get_instance_bss_address(uint32_t module_id,
uint32_t instance_id,
struct sof_man_module *mod)
const struct sof_man_module *mod)
{
uint32_t instance_bss_size =
mod->segment[SOF_MAN_SEGMENT_BSS].flags.r.length / mod->instance_max_count;
@ -296,7 +296,7 @@ static void __sparse_cache *lib_manager_get_instance_bss_address(uint32_t module
}
static int lib_manager_allocate_module_instance(uint32_t module_id, uint32_t instance_id,
uint32_t is_pages, struct sof_man_module *mod)
uint32_t is_pages, const struct sof_man_module *mod)
{
uint32_t bss_size =
(mod->segment[SOF_MAN_SEGMENT_BSS].flags.r.length / mod->instance_max_count)
@ -324,7 +324,7 @@ static int lib_manager_allocate_module_instance(uint32_t module_id, uint32_t ins
}
static int lib_manager_free_module_instance(uint32_t module_id, uint32_t instance_id,
struct sof_man_module *mod)
const struct sof_man_module *mod)
{
uint32_t bss_size =
(mod->segment[SOF_MAN_SEGMENT_BSS].flags.r.length / mod->instance_max_count)
@ -337,7 +337,7 @@ static int lib_manager_free_module_instance(uint32_t module_id, uint32_t instanc
return sys_mm_drv_unmap_region((__sparse_force void *)va_base, bss_size);
}
static bool module_is_llext(struct sof_man_module *mod)
static inline bool module_is_llext(const struct sof_man_module *mod)
{
return mod->type.load_type == SOF_MAN_MOD_TYPE_LLEXT;
}
@ -347,7 +347,7 @@ uintptr_t lib_manager_allocate_module(struct processing_module *proc,
const void *ipc_specific_config, const void **buildinfo)
{
struct sof_man_fw_desc *desc;
struct sof_man_module *mod;
const struct sof_man_module *mod;
const struct ipc4_base_module_cfg *base_cfg = ipc_specific_config;
int ret;
uint32_t module_id = IPC4_MOD_ID(ipc_config->id);
@ -399,7 +399,7 @@ err:
int lib_manager_free_module(const uint32_t component_id)
{
struct sof_man_fw_desc *desc;
struct sof_man_module *mod;
const struct sof_man_module *mod;
const uint32_t module_id = IPC4_MOD_ID(component_id);
uint32_t entry_index = LIB_MANAGER_GET_MODULE_INDEX(module_id);
int ret;

View File

@ -73,7 +73,7 @@ static int llext_manager_load_data_from_storage(void __sparse_cache *vma, void *
return memcpy_s((__sparse_force void *)vma, size, s_addr, size);
}
static int llext_manager_load_module(uint32_t module_id, struct sof_man_module *mod,
static int llext_manager_load_module(uint32_t module_id, const struct sof_man_module *mod,
struct sof_man_fw_desc *desc)
{
struct lib_manager_mod_ctx *ctx = lib_manager_get_mod_ctx(module_id);
@ -116,7 +116,7 @@ e_text:
return ret;
}
static int llext_manager_unload_module(uint32_t module_id, struct sof_man_module *mod,
static int llext_manager_unload_module(uint32_t module_id, const struct sof_man_module *mod,
struct sof_man_fw_desc *desc)
{
struct lib_manager_mod_ctx *ctx = lib_manager_get_mod_ctx(module_id);
@ -136,13 +136,13 @@ static int llext_manager_unload_module(uint32_t module_id, struct sof_man_module
}
static void __sparse_cache *llext_manager_get_bss_address(uint32_t module_id,
struct sof_man_module *mod)
const struct sof_man_module *mod)
{
return (void __sparse_cache *)mod->segment[SOF_MAN_SEGMENT_BSS].v_base_addr;
}
static int llext_manager_allocate_module_bss(uint32_t module_id,
struct sof_man_module *mod)
const struct sof_man_module *mod)
{
struct lib_manager_mod_ctx *ctx = lib_manager_get_mod_ctx(module_id);
size_t bss_size = ctx->segment_size[SOF_MAN_SEGMENT_BSS];
@ -158,7 +158,7 @@ static int llext_manager_allocate_module_bss(uint32_t module_id,
}
static int llext_manager_free_module_bss(uint32_t module_id,
struct sof_man_module *mod)
const struct sof_man_module *mod)
{
struct lib_manager_mod_ctx *ctx = lib_manager_get_mod_ctx(module_id);
size_t bss_size = ctx->segment_size[SOF_MAN_SEGMENT_BSS];
@ -275,7 +275,7 @@ uintptr_t llext_manager_allocate_module(struct processing_module *proc,
int llext_manager_free_module(const uint32_t component_id)
{
struct sof_man_fw_desc *desc;
struct sof_man_module *mod;
const struct sof_man_module *mod;
const uint32_t module_id = IPC4_MOD_ID(component_id);
uint32_t entry_index = LIB_MANAGER_GET_MODULE_INDEX(module_id);
int ret;