58 lines
1.5 KiB
C
Executable file
58 lines
1.5 KiB
C
Executable file
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Samsung Exynos SoC series dsp driver
|
|
*
|
|
* Copyright (c) 2019 Samsung Electronics Co., Ltd.
|
|
* http://www.samsung.com/
|
|
*/
|
|
|
|
#ifndef __DL_DSP_LIB_MANAGER_H__
|
|
#define __DL_DSP_LIB_MANAGER_H__
|
|
|
|
#include "dl/dsp-common.h"
|
|
#include "dl/dsp-elf-loader.h"
|
|
#include "dl/dsp-tlsf-allocator.h"
|
|
#include "dl/dsp-gpt-manager.h"
|
|
#include "dl/dsp-dl-out-manager.h"
|
|
#include "dl/dsp-dl-linker.h"
|
|
|
|
struct dsp_lib {
|
|
char *name;
|
|
struct dsp_elf32 *elf;
|
|
|
|
struct dsp_tlsf_mem *pm;
|
|
struct dsp_gpt *gpt;
|
|
|
|
struct dsp_dl_out *dl_out;
|
|
size_t dl_out_data_size;
|
|
struct dsp_tlsf_mem *dl_out_mem;
|
|
|
|
struct dsp_link_info *link_info;
|
|
|
|
unsigned int ref_cnt;
|
|
int loaded;
|
|
};
|
|
|
|
void dsp_lib_init(struct dsp_lib *lib, struct dsp_dl_lib_info *info);
|
|
void dsp_lib_unload(struct dsp_lib *lib);
|
|
void dsp_lib_free(struct dsp_lib *lib);
|
|
void dsp_lib_print(struct dsp_lib *lib);
|
|
|
|
void dsp_lib_manager_init(const char *lib_path);
|
|
void dsp_lib_manager_free(void);
|
|
void dsp_lib_manager_print(void);
|
|
|
|
struct dsp_lib **dsp_lib_manager_get_libs(struct dsp_dl_lib_info *infos,
|
|
size_t size);
|
|
|
|
void dsp_lib_manager_delete_unloaded_libs(struct dsp_lib **libs, size_t size);
|
|
void dsp_lib_manager_delete_lib(struct dsp_lib *lib);
|
|
int dsp_lib_manager_delete_no_ref(void);
|
|
|
|
void dsp_lib_manager_inc_ref_cnt(struct dsp_lib **libs, size_t size);
|
|
void dsp_lib_manager_dec_ref_cnt(struct dsp_lib **libs, size_t size);
|
|
|
|
int dsp_lib_manager_load_libs(struct dsp_lib **libs, size_t size);
|
|
void dsp_lib_manager_unload_libs(struct dsp_lib **libs, size_t size);
|
|
|
|
#endif
|