@@ -848,13 +848,6 @@ int rte_vfio_noiommu_is_enabled(void)
return 0;
}
-RTE_EXPORT_INTERNAL_SYMBOL(rte_vfio_clear_group)
-int rte_vfio_clear_group(__rte_unused int vfio_group_fd)
-{
- rte_errno = ENOTSUP;
- return -1;
-}
-
RTE_EXPORT_INTERNAL_SYMBOL(rte_vfio_get_group_num)
int
rte_vfio_get_group_num(__rte_unused const char *sysfs_base,
@@ -873,14 +866,6 @@ rte_vfio_get_container_fd(void)
return -1;
}
-RTE_EXPORT_INTERNAL_SYMBOL(rte_vfio_get_group_fd)
-int
-rte_vfio_get_group_fd(__rte_unused int iommu_group_num)
-{
- rte_errno = ENOTSUP;
- return -1;
-}
-
RTE_EXPORT_INTERNAL_SYMBOL(rte_vfio_container_create)
int
rte_vfio_container_create(void)
@@ -897,24 +882,6 @@ rte_vfio_container_destroy(__rte_unused int container_fd)
return -1;
}
-RTE_EXPORT_INTERNAL_SYMBOL(rte_vfio_container_group_bind)
-int
-rte_vfio_container_group_bind(__rte_unused int container_fd,
- __rte_unused int iommu_group_num)
-{
- rte_errno = ENOTSUP;
- return -1;
-}
-
-RTE_EXPORT_INTERNAL_SYMBOL(rte_vfio_container_group_unbind)
-int
-rte_vfio_container_group_unbind(__rte_unused int container_fd,
- __rte_unused int iommu_group_num)
-{
- rte_errno = ENOTSUP;
- return -1;
-}
-
RTE_EXPORT_INTERNAL_SYMBOL(rte_vfio_container_dma_map)
int
rte_vfio_container_dma_map(__rte_unused int container_fd,
@@ -136,24 +136,6 @@ int rte_vfio_is_enabled(const char *modname);
__rte_internal
int rte_vfio_noiommu_is_enabled(void);
-/**
- * @internal
- * Remove group fd from internal VFIO group fd array.
- *
- * This function is only relevant to linux and will return
- * an error on BSD.
- *
- * @param vfio_group_fd
- * VFIO Group FD.
- *
- * @return
- * 0 on success.
- * <0 on failure.
- */
-__rte_internal
-int
-rte_vfio_clear_group(int vfio_group_fd);
-
/**
* @internal
* Parse IOMMU group number for a device.
@@ -218,24 +200,6 @@ __rte_internal
int
rte_vfio_get_container_fd(void);
-/**
- * @internal
- * Open VFIO group fd or get an existing one.
- *
- * This function is only relevant to linux and will return
- * an error on BSD.
- *
- * @param iommu_group_num
- * iommu group number
- *
- * @return
- * > 0 group fd
- * < 0 for errors
- */
-__rte_internal
-int
-rte_vfio_get_group_fd(int iommu_group_num);
-
/**
* @internal
* Create a new container for device binding.
@@ -297,42 +261,6 @@ int
rte_vfio_container_assign_device(int vfio_container_fd, const char *sysfs_base,
const char *dev_addr);
-/**
- * @internal
- * Bind a IOMMU group to a container.
- *
- * @param container_fd
- * the container's fd
- *
- * @param iommu_group_num
- * the iommu group number to bind to container
- *
- * @return
- * group fd if successful
- * <0 if failed
- */
-__rte_internal
-int
-rte_vfio_container_group_bind(int container_fd, int iommu_group_num);
-
-/**
- * @internal
- * Unbind a IOMMU group from a container.
- *
- * @param container_fd
- * the container fd of container
- *
- * @param iommu_group_num
- * the iommu group number to delete from container
- *
- * @return
- * 0 if successful
- * <0 if failed
- */
-__rte_internal
-int
-rte_vfio_container_group_unbind(int container_fd, int iommu_group_num);
-
/**
* @internal
* Perform DMA mapping for devices in a container.
@@ -67,6 +67,9 @@ static int vfio_noiommu_dma_mem_map(int, uint64_t, uint64_t, uint64_t, int);
static int vfio_dma_mem_map(struct vfio_config *vfio_cfg, uint64_t vaddr,
uint64_t iova, uint64_t len, int do_map);
+static int vfio_container_group_bind(int container_fd, int iommu_group_num);
+static int vfio_container_group_unbind(int container_fd, int iommu_group_num);
+
/* IOMMU types we support */
static const struct vfio_iommu_type iommu_types[] = {
/* x86 IOMMU, otherwise known as type 1 */
@@ -532,9 +535,8 @@ get_vfio_cfg_by_container_fd(int container_fd)
return NULL;
}
-RTE_EXPORT_INTERNAL_SYMBOL(rte_vfio_get_group_fd)
int
-rte_vfio_get_group_fd(int iommu_group_num)
+vfio_get_group_fd_by_num(int iommu_group_num)
{
struct vfio_config *vfio_cfg;
@@ -731,9 +733,8 @@ vfio_sync_default_container(void)
return -1;
}
-RTE_EXPORT_INTERNAL_SYMBOL(rte_vfio_clear_group)
-int
-rte_vfio_clear_group(int vfio_group_fd)
+static int
+vfio_clear_group(int vfio_group_fd)
{
int i;
struct vfio_config *vfio_cfg;
@@ -787,7 +788,7 @@ rte_vfio_setup_device(const char *sysfs_base, const char *dev_addr,
return -1;
/* get the actual group fd */
- vfio_group_fd = rte_vfio_get_group_fd(iommu_group_num);
+ vfio_group_fd = vfio_get_group_fd_by_num(iommu_group_num);
if (vfio_group_fd < 0 && vfio_group_fd != -ENOENT)
return -1;
@@ -813,14 +814,14 @@ rte_vfio_setup_device(const char *sysfs_base, const char *dev_addr,
EAL_LOG(ERR, "%s cannot get VFIO group status, "
"error %i (%s)", dev_addr, errno, strerror(errno));
close(vfio_group_fd);
- rte_vfio_clear_group(vfio_group_fd);
+ vfio_clear_group(vfio_group_fd);
return -1;
} else if (!(group_status.flags & VFIO_GROUP_FLAGS_VIABLE)) {
EAL_LOG(ERR, "%s VFIO group is not viable! "
"Not all devices in IOMMU group bound to VFIO or unbound",
dev_addr);
close(vfio_group_fd);
- rte_vfio_clear_group(vfio_group_fd);
+ vfio_clear_group(vfio_group_fd);
return -1;
}
@@ -841,7 +842,7 @@ rte_vfio_setup_device(const char *sysfs_base, const char *dev_addr,
"%s cannot add VFIO group to container, error "
"%i (%s)", dev_addr, errno, strerror(errno));
close(vfio_group_fd);
- rte_vfio_clear_group(vfio_group_fd);
+ vfio_clear_group(vfio_group_fd);
return -1;
}
@@ -865,7 +866,7 @@ rte_vfio_setup_device(const char *sysfs_base, const char *dev_addr,
"%s failed to select IOMMU type",
dev_addr);
close(vfio_group_fd);
- rte_vfio_clear_group(vfio_group_fd);
+ vfio_clear_group(vfio_group_fd);
return -1;
}
/* lock memory hotplug before mapping and release it
@@ -882,7 +883,7 @@ rte_vfio_setup_device(const char *sysfs_base, const char *dev_addr,
"%i (%s)",
dev_addr, errno, strerror(errno));
close(vfio_group_fd);
- rte_vfio_clear_group(vfio_group_fd);
+ vfio_clear_group(vfio_group_fd);
rte_mcfg_mem_read_unlock();
return -1;
}
@@ -951,7 +952,7 @@ rte_vfio_setup_device(const char *sysfs_base, const char *dev_addr,
if (ret < 0) {
EAL_LOG(ERR, "Could not sync default VFIO container");
close(vfio_group_fd);
- rte_vfio_clear_group(vfio_group_fd);
+ vfio_clear_group(vfio_group_fd);
return -1;
}
/* we have successfully initialized VFIO, notify user */
@@ -988,7 +989,7 @@ rte_vfio_setup_device(const char *sysfs_base, const char *dev_addr,
EAL_LOG(WARNING, "Getting a vfio_dev_fd for %s failed",
dev_addr);
close(vfio_group_fd);
- rte_vfio_clear_group(vfio_group_fd);
+ vfio_clear_group(vfio_group_fd);
return -1;
}
@@ -1026,9 +1027,9 @@ rte_vfio_release_device(const char *sysfs_base, const char *dev_addr,
}
/* get the actual group fd */
- vfio_group_fd = rte_vfio_get_group_fd(iommu_group_num);
+ vfio_group_fd = vfio_get_group_fd_by_num(iommu_group_num);
if (vfio_group_fd < 0) {
- EAL_LOG(INFO, "rte_vfio_get_group_fd failed for %s",
+ EAL_LOG(INFO, "vfio_get_group_fd_by_num failed for %s",
dev_addr);
ret = vfio_group_fd;
goto out;
@@ -1064,7 +1065,7 @@ rte_vfio_release_device(const char *sysfs_base, const char *dev_addr,
goto out;
}
- if (rte_vfio_clear_group(vfio_group_fd) < 0) {
+ if (vfio_clear_group(vfio_group_fd) < 0) {
EAL_LOG(INFO, "Error when clearing group for %s",
dev_addr);
ret = -1;
@@ -2091,7 +2092,7 @@ rte_vfio_container_destroy(int container_fd)
for (i = 0; i < RTE_DIM(vfio_cfg->vfio_groups); i++)
if (vfio_cfg->vfio_groups[i].group_num != -1)
- rte_vfio_container_group_unbind(container_fd,
+ vfio_container_group_unbind(container_fd,
vfio_cfg->vfio_groups[i].group_num);
close(container_fd);
@@ -2122,7 +2123,7 @@ rte_vfio_container_assign_device(int vfio_container_fd, const char *sysfs_base,
return -1;
}
- ret = rte_vfio_container_group_bind(vfio_container_fd,
+ ret = vfio_container_group_bind(vfio_container_fd,
iommu_group_num);
if (ret < 0) {
EAL_LOG(ERR,
@@ -2134,9 +2135,8 @@ rte_vfio_container_assign_device(int vfio_container_fd, const char *sysfs_base,
return 0;
}
-RTE_EXPORT_INTERNAL_SYMBOL(rte_vfio_container_group_bind)
-int
-rte_vfio_container_group_bind(int container_fd, int iommu_group_num)
+static int
+vfio_container_group_bind(int container_fd, int iommu_group_num)
{
struct vfio_config *vfio_cfg;
@@ -2149,9 +2149,8 @@ rte_vfio_container_group_bind(int container_fd, int iommu_group_num)
return vfio_get_group_fd(vfio_cfg, iommu_group_num);
}
-RTE_EXPORT_INTERNAL_SYMBOL(rte_vfio_container_group_unbind)
-int
-rte_vfio_container_group_unbind(int container_fd, int iommu_group_num)
+static int
+vfio_container_group_unbind(int container_fd, int iommu_group_num)
{
struct vfio_group *cur_grp = NULL;
struct vfio_config *vfio_cfg;
@@ -51,6 +51,8 @@ vfio_set_iommu_type(int vfio_container_fd);
int
vfio_get_iommu_type(void);
+int vfio_get_group_fd_by_num(int iommu_group_num);
+
/* check if we have any supported extensions */
int
vfio_has_supported_extensions(int vfio_container_fd);
@@ -34,7 +34,7 @@ vfio_mp_primary(const struct rte_mp_msg *msg, const void *peer)
case SOCKET_REQ_GROUP:
r->req = SOCKET_REQ_GROUP;
r->group_num = m->group_num;
- fd = rte_vfio_get_group_fd(m->group_num);
+ fd = vfio_get_group_fd_by_num(m->group_num);
if (fd < 0 && fd != -ENOENT)
r->result = SOCKET_ERR;
else if (fd == -ENOENT)