From ef59a0da4de2cccef88e143517e233732f1e644e Mon Sep 17 00:00:00 2001 From: joshuac Date: Wed, 3 Aug 2022 19:03:02 +0900 Subject: [PATCH] misc: nvsciipc: update to support x86 build Added missing fs.h to fix build error. Added debug info for root user only. Added alternative header path for x86 build. Fixed NvSciIpcEndpointMapVuid() API. remove mutex except for SET_DB IOCTL (lockless for read operation). Added more ioctl commands. - NVSCIIPC_IOCTL_GET_DB_BY_NAME - NVSCIIPC_IOCTL_GET_DB_BY_VUID JIRA NVIPC-227 Change-Id: I95fc6f9fff36c9c1df999b11109236b1b3481d62 Signed-off-by: joshuac Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2755193 Reviewed-by: Kurt Yi GVS: Gerrit_Virtual_Submit --- include/uapi/linux/nvsciipc_ioctl.h | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/include/uapi/linux/nvsciipc_ioctl.h b/include/uapi/linux/nvsciipc_ioctl.h index 7ed1c8ec..3cdc3c18 100644 --- a/include/uapi/linux/nvsciipc_ioctl.h +++ b/include/uapi/linux/nvsciipc_ioctl.h @@ -34,7 +34,9 @@ #include -#define NVSCIIPC_MAX_EP_NAME 64 +#define NVSCIIPC_MAX_EP_NAME 64U +#define NVSCIIPC_MAX_RDMA_NAME 64U +#define NVSCIIPC_MAX_IP_NAME 16U struct nvsciipc_config_entry { /* endpoint name */ @@ -50,6 +52,11 @@ struct nvsciipc_config_entry { */ uint32_t id; uint64_t vuid; /* VM-wide unique id */ + char rdma_dev_name[NVSCIIPC_MAX_RDMA_NAME]; + char remote_ip[NVSCIIPC_MAX_IP_NAME]; + uint32_t remote_port; + uint32_t local_port; + uint32_t reserved; }; struct nvsciipc_db { @@ -62,6 +69,18 @@ struct nvsciipc_get_vuid { uint64_t vuid; }; +struct nvsciipc_get_db_by_name { + char ep_name[NVSCIIPC_MAX_EP_NAME]; + struct nvsciipc_config_entry entry; + uint32_t idx; +}; + +struct nvsciipc_get_db_by_vuid { + uint64_t vuid; + struct nvsciipc_config_entry entry; + uint32_t idx; +}; + /* IOCTL magic number - seen available in ioctl-number.txt*/ #define NVSCIIPC_IOCTL_MAGIC 0xC3 @@ -71,6 +90,12 @@ struct nvsciipc_get_vuid { #define NVSCIIPC_IOCTL_GET_VUID \ _IOWR(NVSCIIPC_IOCTL_MAGIC, 2, struct nvsciipc_get_vuid) -#define NVSCIIPC_IOCTL_NUMBER_MAX 2 +#define NVSCIIPC_IOCTL_GET_DB_BY_NAME \ + _IOWR(NVSCIIPC_IOCTL_MAGIC, 3, struct nvsciipc_get_db_by_name) + +#define NVSCIIPC_IOCTL_GET_DB_BY_VUID \ + _IOWR(NVSCIIPC_IOCTL_MAGIC, 4, struct nvsciipc_get_db_by_vuid) + +#define NVSCIIPC_IOCTL_NUMBER_MAX 4 #endif /* __NVSCIIPC_IOCTL_H__ */