123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- /*
- * Copyright (c) 2021 Alibaba Group. All rights reserved.
- * License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
- /*!
- * \file
- * \brief This section defines CSI DSP API.
- *
- * General properties:
- * 1. API Handler DSP TASK CREATE
- * 2. API Handler DSP ALGO config
- * 3. API
- */
- #ifndef _CSI_DSP_API_H
- #define _CSI_DSP_API_H
- #include <string.h>
- #include <stdint.h>
- #include "csi_dsp_task_defs.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- /************* CPU interafce*********************************/
- /**
- * @description: * Open DSP device by index.
- * @param {int} dsp_id dsp index to create
- * @return {*} pointer to the opened device or NULL in case of error
- */
- void *csi_dsp_create_instance(int dsp_id);
- /**
- * @description: Close DSP device by index.
- * @param {void} *dsp ,dsp index to close
- * @return {int} return 0 when delete success, not 0 in case of error
- */
- int csi_dsp_delete_instance(void *dsp);
- /**
- * @description: create an task on an instance
- * Task have a dependece Algo
- * for CSI_DSP_TASK_HW (CSI_DSP_TASK_SW_TO_HW|CSI_DSP_TASK_SW_TO_SW)
- * both csi_dsp_task_config_frontend and csi_dsp_task_config_backend are needed to call
- * for CSI_DSP_TASK_SW_TO_SW use task req to handle seperate process req on this task
- * @param {void *} point to an dsp instance
- * @param {csi_dsp_task_mode_e} task_type
- * @return {*}pointer to the createrf task or NULL in case of error
- */
- void *csi_dsp_create_task(void * instance,csi_dsp_task_mode_e task_type);
- /**
- * @description: create a report handler on an instance
- * @param {void*} point to an dsp instance
- * @return {int} return 0 when create success, not 0 in case of error
- */
- int csi_dsp_create_reporter(void* dsp);
- /**
- * @description: destroy a report handler on an instance
- * @param {void} point to an dsp instance
- * @return {int} return 0 when create success, not 0 in case of error
- */
- int csi_dsp_destroy_reporter(void *dsp);
- /**
- * @description: destroy a task handler
- * @param {void} *task, point to an task handler
- * @return {int} return 0 when credestroy success, not 0 in case of error
- */
- void csi_dsp_destroy_task(void *task);
- /**
- * @description: config a task's frontend ,for SW Task
- * @param {void} *task
- * @param {csi_dsp_task_fe_para} *config_para
- * @return {*}
- */
- int csi_dsp_task_config_frontend(void *task,struct csi_dsp_task_fe_para *config_para);
- /**
- * @description:
- * @param {void} *task
- * @param {csi_dsp_task_fe_para} *config_para
- * @return {*}
- */
- int csi_dsp_task_get_frontend(void *task,struct csi_dsp_task_fe_para *config_para);
- /**
- * @description:
- * @param {void} *task
- * @param {csi_dsp_task_be_para} *config_para
- * @return {*}
- */
- int csi_dsp_task_config_backend(void *task,struct csi_dsp_task_be_para *config_para);
- /**
- * @description:
- * @param {void} *task
- * @param {csi_dsp_task_be_para} *config_para
- * @return {*}
- */
- int csi_dsp_task_get_backend(void *task,struct csi_dsp_task_be_para *config_para);
- /**
- * @description:
- * @param {void} *task
- * @param {csi_dsp_algo_config_par} *config_para
- * @return {*}
- */
- int csi_dsp_task_config_algo(void *task,struct csi_dsp_algo_config_par *config_para);
- /**
- * @description:
- * @param {void} *task_ctx
- * @param {csi_dsp_algo_load_req_t*} config_para
- * @return {*}
- */
- int csi_dsp_task_load_algo(void *task_ctx, csi_dsp_algo_load_req_t* config_para);
- /**
- * @description:
- * @param {void} *task_ctx
- * @return {*}
- */
- int csi_dsp_task_acquire_algo(void *task_ctx,char*name);
- /**
- * @description:
- * @param {void} *task
- * @return {*}
- */
- int csi_dsp_task_start(void *task);
- /**
- * @description:
- * @param {void} *task
- * @return {*}
- */
- int csi_dsp_task_stop(void *task);
- /**
- * @description:
- * @param {void} *task
- * @param { } int
- * @param {void*} context
- * @param {size_t} data_size
- * @return {*}
- */
- int csi_dsp_task_register_cb(void *task,
- int (*cb)(void*context,void*data),
- void* context,
- size_t data_size);
- /**
- * @description:
- * @param {void} *task
- * @return {*}
- */
- int csi_dsp_ps_task_unregister_cb(void *task);
- /**
- * @description:
- * @param {void} *task
- * @return {*}
- */
- struct csi_sw_task_req* csi_dsp_task_create_request(void *task);
- /**
- * @description:
- * @param {void *} task_ctx
- * @param {csi_dsp_buffer *} buffer
- * @return {*}
- */
- int csi_dsp_task_create_buffer(void * task_ctx,struct csi_dsp_buffer * buffer);
- /**
- * @description:
- * @param {void *} task_ctx
- * @param {csi_dsp_buffer *} buffer
- * @return {*}
- */
- int csi_dsp_task_free_buffer(void * task_ctx,struct csi_dsp_buffer * buffer);
- /**
- * @description:
- * @param {csi_sw_task_req*} req
- * @param {csi_dsp_buffer *} buffer
- * @return {*}
- */
- int csi_dsp_request_add_buffer(struct csi_sw_task_req* req,struct csi_dsp_buffer * buffer);
- /**
- * @description:
- * @param {csi_sw_task_req*} req
- * @param {void*} property
- * @param {size_t} sz
- * @return {*}
- */
- int csi_dsp_request_set_property(struct csi_sw_task_req* req,void* property,size_t sz);
- /**
- * @description:
- * @param {csi_sw_task_req*} req
- * @return {*}
- */
- int csi_dsp_request_enqueue(struct csi_sw_task_req* req);
- /**
- * @description:
- * @param {void} *task
- * @return {*}
- */
- struct csi_sw_task_req* csi_dsp_request_dequeue(void *task);
- /**
- * @description:
- * @param {csi_sw_task_req*} req
- * @return {*}
- */
- int csi_dsp_task_release_request(struct csi_sw_task_req* req);
- int csi_dsp_task_update_backend_buf(void *task_ctx,struct csi_dsp_task_be_para* config_para);
- int csi_dsp_test_config(void* dsp ,struct csi_dsp_ip_test_par* config_para,void* buf);
- #ifdef __cplusplus
- }
- #endif
- #endif
|