mirror of
https://github.com/Ascend/ascend-docker-runtime.git
synced 2025-10-07 02:02:46 +08:00
177 lines
4.3 KiB
C
177 lines
4.3 KiB
C
/*
|
|
* Copyright: Copyright (c) Huawei Technologies Co., Ltd. 2021-2022. All rights reserved.
|
|
* Description: DCMI API Reference
|
|
*/
|
|
|
|
#ifndef __DCMI_INTERFACE_API_H__
|
|
#define __DCMI_INTERFACE_API_H__
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#endif /* __cplusplus */
|
|
|
|
#ifdef __linux
|
|
#define DCMIDLLEXPORT
|
|
#else
|
|
#define DCMIDLLEXPORT _declspec(dllexport)
|
|
#endif
|
|
|
|
#define DCMI_VDEV_RES_NAME_LEN 16
|
|
#define DCMI_VDEV_FOR_RESERVE 32
|
|
#define DCMI_VDEV_MAX_NUM 32
|
|
struct dcmi_create_vdev_out {
|
|
unsigned int vdev_id;
|
|
unsigned int pcie_bus;
|
|
unsigned int pcie_device;
|
|
unsigned int pcie_func;
|
|
unsigned int vfg_id;
|
|
unsigned char reserved[DCMI_VDEV_FOR_RESERVE];
|
|
};
|
|
|
|
enum dcmi_main_cmd {
|
|
DCMI_MAIN_CMD_DVPP = 0,
|
|
DCMI_MAIN_CMD_ISP,
|
|
DCMI_MAIN_CMD_TS_GROUP_NUM,
|
|
DCMI_MAIN_CMD_CAN,
|
|
DCMI_MAIN_CMD_UART,
|
|
DCMI_MAIN_CMD_UPGRADE,
|
|
DCMI_MAIN_CMD_TEMP = 50,
|
|
DCMI_MAIN_CMD_SVM = 51,
|
|
DCMI_MAIN_CMD_VDEV_MNG,
|
|
DCMI_MAIN_CMD_DEVICE_SHARE = 0x8001,
|
|
DCMI_MAIN_CMD_EX_CERT = 0x8003,
|
|
DCMI_MAIN_CMD_MAX
|
|
};
|
|
|
|
/* DSMI sub vdev mng CMD def */
|
|
typedef enum {
|
|
DCMI_VMNG_SUB_CMD_GET_VDEV_RESOURCE,
|
|
DCMI_VMNG_SUB_CMD_GET_TOTAL_RESOURCE,
|
|
DCMI_VMNG_SUB_CMD_GET_FREE_RESOURCE,
|
|
DCMI_VMNG_SUB_CMD_MAX,
|
|
} DCMI_VDEV_MNG_SUB_CMD;
|
|
|
|
struct dcmi_base_resource {
|
|
unsigned long long token;
|
|
unsigned long long token_max;
|
|
unsigned long long task_timeout;
|
|
unsigned int vfg_id;
|
|
unsigned char vip_mode;
|
|
unsigned char reserved[DCMI_VDEV_FOR_RESERVE - 1]; /* bytes aligned */
|
|
};
|
|
|
|
/* total types of computing resource */
|
|
struct dcmi_computing_resource {
|
|
/* accelator resource */
|
|
float aic;
|
|
float aiv;
|
|
unsigned short dsa;
|
|
unsigned short rtsq;
|
|
unsigned short acsq;
|
|
unsigned short cdqm;
|
|
unsigned short c_core;
|
|
unsigned short ffts;
|
|
unsigned short sdma;
|
|
unsigned short pcie_dma;
|
|
|
|
/* memory resource, MB as unit */
|
|
unsigned long long memory_size;
|
|
|
|
/* id resource */
|
|
unsigned int event_id;
|
|
unsigned int notify_id;
|
|
unsigned int stream_id;
|
|
unsigned int model_id;
|
|
|
|
/* cpu resource */
|
|
unsigned short topic_schedule_aicpu;
|
|
unsigned short host_ctrl_cpu;
|
|
unsigned short host_aicpu;
|
|
unsigned short device_aicpu;
|
|
unsigned short topic_ctrl_cpu_slot;
|
|
|
|
unsigned char reserved[DCMI_VDEV_FOR_RESERVE];
|
|
};
|
|
|
|
struct dcmi_media_resource {
|
|
/* dvpp resource */
|
|
float jpegd;
|
|
float jpege;
|
|
float vpc;
|
|
float vdec;
|
|
float pngd;
|
|
float venc;
|
|
unsigned char reserved[DCMI_VDEV_FOR_RESERVE];
|
|
};
|
|
|
|
struct dcmi_vdev_query_info {
|
|
char name[DCMI_VDEV_RES_NAME_LEN];
|
|
unsigned int status;
|
|
unsigned int is_container_used;
|
|
unsigned int vfid;
|
|
unsigned int vfg_id;
|
|
unsigned long long container_id;
|
|
struct dcmi_base_resource base;
|
|
struct dcmi_computing_resource computing;
|
|
struct dcmi_media_resource media;
|
|
};
|
|
|
|
/* for single search */
|
|
// vdev
|
|
struct dcmi_vdev_query_stru {
|
|
unsigned int vdev_id;
|
|
struct dcmi_vdev_query_info query_info;
|
|
};
|
|
|
|
// free
|
|
struct dcmi_soc_free_resource {
|
|
unsigned int vfg_num;
|
|
unsigned int vfg_bitmap;
|
|
struct dcmi_base_resource base;
|
|
struct dcmi_computing_resource computing;
|
|
struct dcmi_media_resource media;
|
|
};
|
|
|
|
// total
|
|
struct dcmi_soc_total_resource {
|
|
unsigned int vdev_num;
|
|
unsigned int vdev_id[DCMI_VDEV_MAX_NUM];
|
|
unsigned int vfg_num;
|
|
unsigned int vfg_bitmap;
|
|
struct dcmi_base_resource base;
|
|
struct dcmi_computing_resource computing;
|
|
struct dcmi_media_resource media;
|
|
};
|
|
|
|
enum dcmi_unit_type {
|
|
NPU_TYPE = 0,
|
|
MCU_TYPE = 1,
|
|
CPU_TYPE = 2,
|
|
INVALID_TYPE = 0xFF
|
|
};
|
|
|
|
DCMIDLLEXPORT int dcmi_init(void);
|
|
|
|
DCMIDLLEXPORT int dcmi_get_card_num_list(int *card_num, int *card_list, int list_len);
|
|
|
|
DCMIDLLEXPORT int dcmi_get_device_num_in_card(int card_id, int *device_num);
|
|
|
|
DCMIDLLEXPORT int dcmi_create_vdevice(int card_id, int device_id, int vdev_id, const char *template_name,
|
|
struct dcmi_create_vdev_out *out);
|
|
|
|
DCMIDLLEXPORT int dcmi_set_destroy_vdevice(int card_id, int device_id, unsigned int vdevid);
|
|
|
|
DCMIDLLEXPORT int dcmi_get_device_logic_id(int *device_logic_id, int card_id, int device_id);
|
|
|
|
DCMIDLLEXPORT int dcmi_get_device_type(int card_id, int device_id, enum dcmi_unit_type *device_type);
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* __DCMI_INTERFACE_API_H__ */
|