dcmi_create_vdevice接口原型
函数原型
int dcmi_create_vdevice(int card_id, int device_id, struct dcmi_create_vdev_res_stru*vdev, struct dcmi_create_vdev_out *out)
功能说明
创建指定NPU单元的vNPU设备。
参数说明
参数名称 |
输入/输出 |
类型 |
描述 |
---|---|---|---|
card_id |
输入 |
int |
指定NPU管理单元ID,当前实际支持的ID通过dcmi_get_card_num_list接口获取。 |
device_id |
输入 |
int |
指定设备编号,通过dcmi_get_device_id_in_card接口获取。取值范围如下: NPU芯片:[0, device_id_max-1]。 |
vdev |
输入 |
struct dcmi_create_vdev_res_stru* |
输入创建虚拟设备信息。 struct dcmi_create_vdev_res_stru { unsigned int vdev_id; unsigned int vfg_id; char template_name[32]; unsigned char reserved[64]; }; 说明:
|
out |
输出 |
struct dcmi_create_vdev_out * |
输出创建的虚拟设备信息。当前只支持vdev_id 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]; }; 说明:
|
返回值
类型 |
描述 |
---|---|
int |
处理结果:
|
异常处理
无。
约束说明
Linux物理机 |
Linux物理机容器 |
|
root用户 |
运行用户组(非root用户) |
root用户 |
N |
N |
N |
调用示例
int card_id = 0; int device_id = 0; struct dcmi_create_vdev_out out = {0}; int ret; struct dcmi_create_vdev_res_stru vdev = {0}; vdev.vdev_id = 0xFFFFFFFF; strncpy_s(vdev.template_name, sizeof(vdev.template_name), "vir02", strlen("vir02")); ret = dcmi_create_vdevice(card_id, device_id, &vdev, &out); if (ret != 0) { //todo return ret; }