You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
graphengine/third_party/fwkacllib/inc/runtime/base.h

587 lines
16 KiB

5 years ago
/**
* Copyright 2019-2020 Huawei Technologies Co., Ltd
*
* 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.
*/
#ifndef __CCE_RUNTIME_BASE_H__
#define __CCE_RUNTIME_BASE_H__
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
5 years ago
// If you need export the function of this library in Win32 dll, use __declspec(dllexport)
#ifndef RTS_API
#ifdef RTS_DLL_EXPORT
#define RTS_API __declspec(dllexport)
#else
#define RTS_API
#endif
#endif
5 years ago
/**
* @ingroup dvrt_base
* @brief runtime error numbers.
*/
typedef enum tagRtError {
RT_ERROR_NONE = 0x0, // success
RT_ERROR_DEVICE_BASE = 0x07010000,
RT_ERROR_DEVICE_NULL,
RT_ERROR_DEVICE_NEW,
RT_ERROR_DEVICE_ID,
RT_ERROR_DEVICE_CHIPTYPE,
RT_ERROR_DEVICE_DEPLOY,
RT_ERROR_DEVICE_RETAIN,
RT_ERROR_DEVICE_PLATFORM,
RT_ERROR_DEVICE_LOADER,
RT_ERROR_DEVICE_LIMIT,
RT_ERROR_DEVICE_PROC_HANG_OUT,
RT_ERROR_DEVICE_POWER_UP_FAIL,
RT_ERROR_DEVICE_POWER_DOWN_FAIL,
RT_ERROR_DEVICE_INVALID,
RT_ERROR_DRV_BASE = 0x07020000,
RT_ERROR_DRV_NULL,
RT_ERROR_DRV_NEW,
RT_ERROR_DRV_MEMORY,
RT_ERROR_DRV_INPUT,
RT_ERROR_DRV_PTRNULL,
RT_ERROR_DRV_OPEN_AICPU,
RT_ERROR_DRV_CLOSE_AICPU,
RT_ERROR_DRV_SYM_AICPU,
RT_ERROR_DRV_OPEN_TSD,
RT_ERROR_DRV_CLOSE_TSD,
RT_ERROR_DRV_SYM_TSD,
RT_ERROR_DRV_SOURCE,
RT_ERROR_DRV_REPORT,
RT_ERROR_DRV_COMMAND,
RT_ERROR_DRV_OCCUPY,
RT_ERROR_DRV_ERR,
RT_ERROR_STREAM_BASE = 0x07030000,
RT_ERROR_STREAM_NULL,
RT_ERROR_STREAM_NEW,
RT_ERROR_STREAM_CONTEXT,
RT_ERROR_STREAM_INVALID,
RT_ERROR_STREAM_MODEL,
RT_ERROR_STREAM_FUSION,
RT_ERROR_STREAM_FULL,
RT_ERROR_STREAM_EMPTY,
RT_ERROR_STREAM_NOT_COMPLETE,
RT_ERROR_STREAM_SYNC,
RT_ERROR_STREAM_NO_CB_REG,
RT_ERROR_STREAM_DUPLICATE,
RT_ERROR_STREAM_NOT_EXIST,
RT_ERROR_SQ_NO_EXIST_SQ_TO_REUSE,
RT_ERROR_SQID_FULL,
RT_ERROR_MODEL_BASE = 0x07040000,
RT_ERROR_MODEL_NULL,
RT_ERROR_MODEL_NEW,
RT_ERROR_MODEL_CONTEXT,
RT_ERROR_MODEL_ENDGRAPH,
RT_ERROR_MODEL_STREAM,
RT_ERROR_MODEL_EXCUTOR,
RT_ERROR_MODEL_SETUP,
RT_ERROR_MODEL_ID,
RT_ERROR_MODEL_EXE_FAILED,
RT_ERROR_END_OF_SEQUENCE, // end of sequence
RT_ERROR_EVENT_BASE = 0x07050000,
RT_ERROR_EVENT_NULL,
RT_ERROR_EVENT_NEW,
RT_ERROR_EVENT_RECORDER_NULL,
RT_ERROR_EVENT_TIMESTAMP_INVALID,
RT_ERROR_EVENT_TIMESTAMP_REVERSAL,
RT_ERROR_EVENT_NOT_COMPLETE,
RT_ERROR_NOTIFY_BASE = 0x07060000,
RT_ERROR_NOTIFY_NULL,
RT_ERROR_NOTIFY_NEW,
RT_ERROR_NOTIFY_TYPE,
RT_ERROR_NOTIFY_NOT_COMPLETE,
RT_ERROR_CONTEXT_BASE = 0x07070000,
RT_ERROR_CONTEXT_NULL,
RT_ERROR_CONTEXT_NEW,
RT_ERROR_CONTEXT_DEL,
RT_ERROR_CONTEXT_DEFAULT_STREAM_NULL,
RT_ERROR_CONTEXT_ONLINE_STREAM_NULL,
RT_ERROR_KERNEL_BASE = 0x07080000,
RT_ERROR_KERNEL_NULL,
RT_ERROR_KERNEL_NEW,
RT_ERROR_KERNEL_LOOKUP,
RT_ERROR_KERNEL_NAME,
RT_ERROR_KERNEL_TYPE,
RT_ERROR_KERNEL_OFFSET,
RT_ERROR_KERNEL_DUPLICATE,
RT_ERROR_PROGRAM_BASE = 0x07090000,
RT_ERROR_PROGRAM_NULL,
RT_ERROR_PROGRAM_NEW,
RT_ERROR_PROGRAM_DATA,
RT_ERROR_PROGRAM_SIZE,
RT_ERROR_PROGRAM_MEM_TYPE,
RT_ERROR_PROGRAM_MACHINE_TYPE,
RT_ERROR_PROGRAM_USEOUT,
RT_ERROR_MODULE_BASE = 0x070a0000,
RT_ERROR_MODULE_NULL,
RT_ERROR_MODULE_NEW,
RT_ERROR_INSTANCE_BASE = 0x070b0000,
RT_ERROR_INSTANCE_NULL,
RT_ERROR_INSTANCE_NEW,
RT_ERROR_INSTANCE_VERSION,
RT_ERROR_API_BASE = 0x070c0000,
RT_ERROR_API_NULL,
RT_ERROR_API_NEW,
RT_ERROR_DATADUMP_BASE = 0x070d0000,
RT_ERROR_DATADUMP_NULL,
RT_ERROR_DATADUMP_NEW,
RT_ERROR_DATADUMP_TIME,
RT_ERROR_DATADUMP_FILE,
RT_ERROR_DATADUMP_ADDRESS,
RT_ERROR_DATADUMP_LOAD_FAILED,
RT_ERROR_DUMP_ADDR_SET_FAILED,
RT_ERROR_PROF_BASE = 0x070e0000,
RT_ERROR_PROF_NULL,
RT_ERROR_PROF_NEW,
RT_ERROR_PROF_START,
RT_ERROR_PROF_DEVICE_MEM,
RT_ERROR_PROF_HOST_MEM,
RT_ERROR_PROF_SET_DIR,
RT_ERROR_PROF_OPER,
RT_ERROR_PROF_FULL,
RT_ERROR_PROF_NAME,
RT_ERROR_PCTRACE_BASE = 0x070f0000,
RT_ERROR_PCTRACE_NULL,
RT_ERROR_PCTRACE_NEW,
RT_ERROR_PCTRACE_TIME,
RT_ERROR_PCTRACE_FILE,
RT_ERROR_TASK_BASE = 0x07100000,
RT_ERROR_TASK_NULL,
RT_ERROR_TASK_NEW,
RT_ERROR_TASK_TYPE,
RT_ERROR_TASK_ALLOCATOR,
RT_ERROR_COMMON_BASE = 0x07110000,
RT_ERROR_INVALID_VALUE, // RT_ERROR_INPUT_INVALID
RT_ERROR_MEMORY_ADDRESS_UNALIGNED,
RT_ERROR_SEC_HANDLE,
RT_ERROR_OS_HANDLE,
RT_ERROR_MUTEX_LOCK,
RT_ERROR_MUTEX_UNLOCK,
RT_ERROR_CALLOC,
RT_ERROR_POOL_RESOURCE,
RT_ERROR_TRANS_ARGS,
RT_ERROR_METADATA,
RT_ERROR_LOST_HEARTBEAT,
RT_ERROR_REPORT_TIMEOUT,
RT_ERROR_FEATURE_NOT_SUPPROT,
RT_ERROR_MEMORY_ALLOCATION,
RT_ERROR_MEMORY_FREE,
RT_ERROR_INVALID_MEMORY_TYPE,
RT_ERROR_DEBUG_BASE = 0x07120000,
RT_ERROR_DEBUG_NULL,
RT_ERROR_DEBUG_NEW,
RT_ERROR_DEBUG_SIGNAL,
RT_ERROR_DEBUG_OPEN,
RT_ERROR_DEBUG_WRITE,
RT_ERROR_DEBUG_REGISTER_FAILED,
RT_ERROR_DEBUG_UNREGISTER_FAILED,
RT_ERROR_ENGINE_BASE = 0x07130000,
RT_ERROR_ENGINE_NULL,
RT_ERROR_ENGINE_NEW,
RT_ERROR_ENGINE_THREAD,
RT_ERROR_LABEL_BASE = 0x07140000,
RT_ERROR_LABEL_NULL,
RT_ERROR_LABEL_NEW,
RT_ERROR_LABEL_CONTEXT,
RT_ERROR_LABEL_STREAM,
RT_ERROR_LABEL_MODEL,
RT_ERROR_LABEL_ALLOCATOR,
RT_ERROR_LABEL_FREE,
RT_ERROR_LABEL_SET,
RT_ERROR_LABEL_ID,
RT_ERROR_TSFW_BASE = 0x07150000,
RT_ERROR_TSFW_UNKNOWN,
RT_ERROR_TSFW_NULL_PTR,
RT_ERROR_TSFW_ILLEGAL_AI_CORE_ID,
RT_ERROR_TSFW_ILLEGAL_PARAM,
RT_ERROR_TSFW_TASK_CMD_QUEUE_FULL,
RT_ERROR_TSFW_TASK_CMD_QUEUE_EMPTY,
RT_ERROR_TSFW_TASK_REPORT_QUEUE_FULL,
RT_ERROR_TSFW_TASK_REPORT_QUEUE_EMPTY,
RT_ERROR_TSFW_TASK_NODE_BUFF_ALL_OCCUPYED,
RT_ERROR_TSFW_TASK_NODE_BUFF_ALL_FREED,
RT_ERROR_TSFW_L2_MEM_INSUFFICIENT_SPACE,
RT_ERROR_TSFW_L2_MALLOC_FAILED,
RT_ERROR_TSFW_DMA_CHANNEL_ALL_OCCUPYED,
RT_ERROR_TSFW_MEMCPY_OP_FAILED,
RT_ERROR_TSFW_BS_SLOT_ALL_OCCUPYED,
RT_ERROR_TSFW_TBS_SLOT_REPEAT_FREE,
RT_ERROR_TSFW_PRIORITY_TASK_LIST_FULL,
RT_ERROR_TSFW_PRIORITY_TASK_LIST_EMPTY,
RT_ERROR_TSFW_NO_STREAM_LIST_NEED_TO_BE_PROCESSED,
RT_ERROR_TSFW_REPEAT_MARK_STREAM_NEED_SERVICE,
RT_ERROR_TSFW_SYS_DMA_CHANNEL_ALL_OCCUPAPYED,
RT_ERROR_TSFW_NO_HBML2TASKNODE_FOUND,
RT_ERROR_TSFW_SQNODE_NODE_SLOT_ALL_OCCUPAPYED,
RT_ERROR_TSFW_CQNODE_NODE_SLOT_ALL_OCCUPAPYED,
RT_ERROR_TSFW_SQNODE_NOT_ENOUGH,
RT_ERROR_TSFW_SQNODE_SLOT_REPEAT_FREE,
RT_ERROR_TSFW_CQNODE_SLOT_REPEAT_FREE,
RT_ERROR_TSFW_CQ_REPORT_FAILED,
RT_ERROR_TSFW_SYS_DMA_RESET_SUCCESS,
RT_ERROR_TSFW_SYS_DMA_RESET_FAILED,
RT_ERROR_TSFW_SYS_DMA_TRNSFER_FAILED,
RT_ERROR_TSFW_SYS_DMA_MEMADDRALIGN_FAILED,
RT_ERROR_TSFW_SYS_DMA_ERROR_QUEUE_FULL,
RT_ERROR_TSFW_SYS_DMA_ERROR_QUEUE_EMPTY,
RT_ERROR_TSFW_TIMER_EVENT_FULL,
RT_ERROR_TSFW_TASK_L2_DESC_ENTRY_NOT_ENOUGH,
RT_ERROR_TSFW_AICORE_TIMEOUT,
RT_ERROR_TSFW_AICORE_EXCEPTION,
RT_ERROR_TSFW_AICORE_TRAP_EXCEPTION,
RT_ERROR_TSFW_AICPU_TIMEOUT,
RT_ERROR_TSFW_SDMA_L2_TO_DDR_MALLOC_FAIL,
RT_ERROR_TSFW_AICPU_EXCEPTION,
RT_ERROR_TSFW_AICPU_DATADUMP_RSP_ERR,
RT_ERROR_TSFW_AICPU_MODEL_RSP_ERR,
RT_ERROR_TSFW_REPEAT_ACTIVE_MODEL_STREAM,
RT_ERROR_TSFW_REPEAT_NOTIFY_WAIT,
RT_ERROR_TSFW_DEBUG_INVALID_SQCQ,
RT_ERROR_TSFW_DEBUG_WRONG_COMMAND_TYPE,
RT_ERROR_TSFW_DEBUG_CMD_PROCESS,
RT_ERROR_TSFW_DEBUG_INVALID_DEVICE_STATUS,
RT_ERROR_TSFW_DEBUG_NOT_IN_DEBUG_STATUS,
RT_ERROR_TSFW_DEBUG_INVALID_TASK_STATUS,
RT_ERROR_TSFW_DEBUG_TASK_EMPTY,
RT_ERROR_TSFW_DEBUG_TASK_FULL,
RT_ERROR_TSFW_DEBUG_TASK_NOT_EXIST,
RT_ERROR_TSFW_DEBUG_AI_CORE_FULL,
RT_ERROR_TSFW_DEBUG_AI_CORE_NOT_EXIST,
RT_ERROR_TSFW_DEBUG_AI_CORE_EXCEPTION,
RT_ERROR_TSFW_DEBUG_AI_CORE_TIMEOUT,
RT_ERROR_TSFW_DEBUG_BREAKPOINT_FULL,
RT_ERROR_TSFW_DEBUG_READ_ERROR,
RT_ERROR_TSFW_DEBUG_WRITE_FAIL,
RT_ERROR_TSFW_QUEUE_FULL,
RT_ERROR_TSFW_QUEUE_EMPTY,
RT_ERROR_TSFW_QUEUE_ALLOC_MEM_FAIL,
RT_ERROR_TSFW_QUEUE_DATA_SIZE_UNMATCH,
RT_ERROR_TSFW_PCIE_DMA_INVLD_CPY_TYPE,
RT_ERROR_TSFW_INVLD_CPY_DIR,
RT_ERROR_TSFW_PCIE_DMA_INVLD_CQ_DES,
RT_ERROR_TSFW_PCIE_DMA_CPY_ERR,
RT_ERROR_TSFW_PCIE_DMA_LNK_CHN_BUSY,
RT_ERROR_TSFW_PROFILE_BUFF_FULL,
RT_ERROR_TSFW_PROFILE_MODE_CONFLICT,
RT_ERROR_TSFW_PROFILE_OTHER_PID_ON,
RT_ERROR_TSFW_SCHD_AIC_TASK_PRELOAD_FAILED,
RT_ERROR_TSFW_TSCPU_CLOSE_FAILED,
RT_ERROR_TSFW_EXPECT_FAIL,
RT_ERROR_TSFW_REPEAT_MODEL_STREAM,
RT_ERROR_TSFW_STREAM_MODEL_UNBIND,
RT_ERROR_TSFW_MODEL_EXE_FAILED,
RT_ERROR_TSFW_IPC_SEND_FAILED,
RT_ERROR_TSFW_IPC_PROC_REG_FAILED,
RT_ERROR_TSFW_STREAM_FULL,
RT_ERROR_TSFW_END_OF_SEQUENCE,
RT_ERROR_TSFW_SWITCH_STREAM_LABEL,
RT_ERROR_TSFW_TRANS_SQE_FAIL,
RT_ERROR_TSFW_RESERVED,
RT_ERROR_SUBSCRIBE_BASE = 0x07160000,
RT_ERROR_SUBSCRIBE_NULL,
RT_ERROR_SUBSCRIBE_NEW,
RT_ERROR_SUBSCRIBE_STREAM,
RT_ERROR_SUBSCRIBE_THREAD,
RT_ERROR_SUBSCRIBE_GROUP,
RT_ERROR_GROUP_BASE = 0x07170000,
RT_ERROR_GROUP_NOT_SET,
RT_ERROR_GROUP_NOT_CREATE,
RT_ERROR_RESERVED = 0x07ff0000,
}rtError_t;
5 years ago
/**
* @ingroup dvrt_base
* @brief runtime exception numbers.
*/
typedef enum tagRtExceptionType {
RT_EXCEPTION_NONE = 0,
RT_EXCEPTION_TS_DOWN = 1,
RT_EXCEPTION_TASK_TIMEOUT = 2,
RT_EXCEPTION_TASK_FAILURE = 3,
RT_EXCEPTION_DEV_RUNNING_DOWN = 4,
RT_EXCEPTION_STREAM_ID_FREE_FAILED = 5
5 years ago
} rtExceptionType;
/**
* @ingroup dvrt_base
* @brief Switch type.
*/
typedef enum tagRtCondition {
RT_EQUAL = 0,
RT_NOT_EQUAL,
RT_GREATER,
RT_GREATER_OR_EQUAL,
RT_LESS,
RT_LESS_OR_EQUAL
} rtCondition_t;
/**
* @ingroup dvrt_base
* @brief Data Type of Extensible Switch Task.
*/
typedef enum tagRtSwitchDataType {
RT_SWITCH_INT32 = 0,
RT_SWITCH_INT64 = 1,
} rtSwitchDataType_t;
typedef enum tagRtStreamFlagType {
RT_HEAD_STREAM = 0, // first stream
RT_INVALID_FLAG = 0xFFFFFFFF,
} rtStreamFlagType_t;
typedef enum tagRtLimitType {
RT_LIMIT_TYPE_LOW_POWER_TIMEOUT = 0, // timeout for power down , ms
} rtLimitType_t;
typedef struct rtExceptionInfo {
uint32_t taskid;
uint32_t streamid;
uint32_t tid;
uint32_t deviceid;
} rtExceptionInfo;
5 years ago
typedef void (*rtErrorCallback)(rtExceptionType);
typedef void (*rtTaskFailCallback)(rtExceptionInfo *exceptionInfo);
5 years ago
/**
* @ingroup dvrt_base
* @brief stream handle.
*/
typedef void *rtStream_t;
/**
* @ingroup dvrt_base
* @brief runtime event handle.
*/
typedef void *rtEvent_t;
/**
* @ingroup dvrt_base
* @brief label handle.
*/
typedef void *rtLabel_t;
/**
* @ingroup profiling_base
* @brief runtime handle.
*/
RTS_API rtError_t rtSetProfDirEx(const char *profDir, const char *address, const char *jobCtx);
/**
* @ingroup profiling_base
* @brief init profiler object.
*/
RTS_API rtError_t rtProfilerInit(const char *profdir, const char *address, const char *job_ctx);
/**
* @ingroup profiling_base
* @brief config rts profiler.
*/
RTS_API rtError_t rtProfilerConfig(uint16_t type);
5 years ago
/**
* @ingroup profiling_base
* @brief start rts profiler.
*/
RTS_API rtError_t rtProfilerStart(void);
/**
* @ingroup profiling_base
* @brief stop rts profiler.
*/
RTS_API rtError_t rtProfilerStop(void);
/**
* @ingroup profiling_base
* @brief ts send keypoint profiler log.
*/
RTS_API rtError_t rtProfilerTrace(uint64_t id, bool notify, uint32_t flags, rtStream_t stream);
/**
* @ingroup dvrt_base
* @brief Returns the last error from a runtime call.
*/
RTS_API rtError_t rtGetLastError();
/**
* @ingroup dvrt_base
* @brief Returns the last error from a runtime call.
*/
RTS_API rtError_t rtPeekAtLastError();
/**
* @ingroup dvrt_base
* @brief register callback for error code
* @param [out] NA
* @return RT_ERROR_NONE for ok
*/
RTS_API rtError_t rtSetExceptCallback(rtErrorCallback callback);
/**
* @ingroup dvrt_base
* @brief register callback for task fail
* @param [out] NA
* @return RT_ERROR_NONE for ok
*/
RTS_API rtError_t rtSetTaskFailCallback(rtTaskFailCallback callback);
5 years ago
/**
* @ingroup dvrt_base
* @brief notify handle.
*/
typedef void *rtNotify_t;
/**
* @ingroup dvrt_base
* @brief create label instance
* @param [out] label created label
* @return RT_ERROR_NONE for ok
* @return RT_ERROR_INVALID_VALUE for error input
5 years ago
*/
RTS_API rtError_t rtLabelCreate(rtLabel_t *label);
/**
* @ingroup dvrt_base
* @brief set label and stream instance
* @param [in] label set label
* @param [in] stream set stream
* @return RT_ERROR_NONE for ok
* @return RT_ERROR_INVALID_VALUE for error input
5 years ago
*/
RTS_API rtError_t rtLabelSet(rtLabel_t label, rtStream_t stream);
/**
* @ingroup dvrt_base
* @brief destroy label instance
* @param [in] label label to destroy
* @return RT_ERROR_NONE for ok
* @return RT_ERROR_INVALID_VALUE for error input
5 years ago
*/
RTS_API rtError_t rtLabelDestroy(rtLabel_t label);
/**
* @ingroup dvrt_base
* @brief label switch instance
* @param [in] ptr address to get value compared
* @param [in] condition
* @param [in] value to compare
* @param [in] true_label goto label
* @param [in] stream to submit label_switch task
* @return RT_ERROR_NONE for ok
* @return RT_ERROR_INVALID_VALUE for error input
5 years ago
*/
RTS_API rtError_t rtLabelSwitch(void *ptr, rtCondition_t condition, uint32_t value, rtLabel_t trueLabel,
rtStream_t stream);
/**
* @ingroup dvrt_base
* @brief goto label instance
* @param [in] label goto label
* @param [in] stream to submit label_goto task
* @return RT_ERROR_NONE for ok
* @return RT_ERROR_INVALID_VALUE for error input
5 years ago
*/
RTS_API rtError_t rtLabelGoto(rtLabel_t label, rtStream_t stream);
/**
* @ingroup dvrt_base
* @brief name label instance
* @param [in] label instance
* @param [in] name label name
* @return RT_ERROR_NONE for ok
* @return RT_ERROR_INVALID_VALUE for error input
5 years ago
*/
RTS_API rtError_t rtNameLabel(rtLabel_t label, const char *name);
/**
* @ingroup dvrt_base
* @brief label switch by index
* @param [in] ptr index value ptr
* @param [in] max index max value
* @param [in] labelInfoPtr label content info ptr
* @param [in] stream set stream
* @return RT_ERROR_NONE for ok
* @return RT_ERROR_INVALID_VALUE for error input
*/
RTS_API rtError_t rtLabelSwitchByIndex(void *ptr, uint32_t max, void *labelInfoPtr, rtStream_t stream);
/**
* @ingroup dvrt_base
* @brief stream goto label
* @param [in] label goto label
* @param [in] stream stream to submit label_goto task
* @return RT_ERROR_NONE for ok
* @return RT_ERROR_INVALID_VALUE for error input
*/
RTS_API rtError_t rtLabelGotoEx(rtLabel_t label, rtStream_t stream);
/**
* @ingroup dvrt_base
* @brief labels to dev info
* @param [in] label model label list
* @param [in] labelNumber label number
* @param [in] dst device ptr
* @param [in] dstMax dst size
* @return RT_ERROR_NONE for ok
* @return RT_ERROR_INVALID_VALUE for error input
*/
RTS_API rtError_t rtLabelListCpy(rtLabel_t *label, uint32_t labelNumber, void *dst, uint32_t dstMax);
/**
* @ingroup dvrt_base
* @brief labels to dev info
* @param [out] label created label handle
* @param [in] stream label bind stream
* @return RT_ERROR_NONE for ok
* @return RT_ERROR_INVALID_VALUE for error input
*/
RTS_API rtError_t rtLabelCreateEx(rtLabel_t *label, rtStream_t stream);
5 years ago
#ifdef __cplusplus
}
#endif
#endif // __CCE_RUNTIME_BASE_H__