NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
devemu_pci_host_common.c File Reference
#include "devemu_pci_host_common.h"
#include <linux/vfio.h>
#include <errno.h>
#include <unistd.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <doca_log.h>
#include <doca_dev.h>
Include dependency graph for devemu_pci_host_common.c:

Go to the source code of this file.

Macros

#define VFIO_GROUP_MAX_PATH   128
 
#define VFIO_CONTAINER_PATH   "/dev/vfio/vfio"
 
#define VFIO_GROUP_PATH_FORMAT   "/dev/vfio/%d"
 

Functions

 DOCA_LOG_REGISTER (DEVEMU_PCI_HOST_COMMON)
 
static bool validate_vfio_group_and_container (int group_fd, int container_fd)
 
static bool add_vfio_group_to_container (int group_fd, int container_fd)
 
static bool enable_pci_cmd (struct devemu_host_resources *resources)
 
doca_error_t init_vfio_device (struct devemu_host_resources *resources, int vfio_group, const char *pci_address)
 
doca_error_t map_bar_region_memory (struct devemu_host_resources *resources, const struct bar_region_config *bar_region_config, struct bar_mapped_region *mapped_mem)
 
void devemu_host_resources_cleanup (struct devemu_host_resources *resources)
 
doca_error_t parse_emulated_pci_address (const char *addr, char *parsed_addr)
 
doca_error_t register_emulated_pci_address_param (doca_argp_param_cb_t pci_callback)
 
doca_error_t register_vfio_group_param (doca_argp_param_cb_t vfio_group_callback)
 
doca_error_t register_region_index_param (const char *description, doca_argp_param_cb_t region_callback)
 

Macro Definition Documentation

◆ VFIO_CONTAINER_PATH

#define VFIO_CONTAINER_PATH   "/dev/vfio/vfio"

Definition at line 39 of file devemu_pci_host_common.c.

◆ VFIO_GROUP_MAX_PATH

#define VFIO_GROUP_MAX_PATH   128

Definition at line 38 of file devemu_pci_host_common.c.

◆ VFIO_GROUP_PATH_FORMAT

#define VFIO_GROUP_PATH_FORMAT   "/dev/vfio/%d"

Definition at line 40 of file devemu_pci_host_common.c.

Function Documentation

◆ add_vfio_group_to_container()

static bool add_vfio_group_to_container ( int  group_fd,
int  container_fd 
)
static

Definition at line 89 of file devemu_pci_host_common.c.

◆ devemu_host_resources_cleanup()

void devemu_host_resources_cleanup ( struct devemu_host_resources resources)

Definition at line 216 of file devemu_pci_host_common.c.

◆ DOCA_LOG_REGISTER()

DOCA_LOG_REGISTER ( DEVEMU_PCI_HOST_COMMON  )

◆ enable_pci_cmd()

static bool enable_pci_cmd ( struct devemu_host_resources resources)
static

Definition at line 112 of file devemu_pci_host_common.c.

◆ init_vfio_device()

doca_error_t init_vfio_device ( struct devemu_host_resources resources,
int  vfio_group,
const char *  pci_address 
)

Definition at line 135 of file devemu_pci_host_common.c.

◆ map_bar_region_memory()

doca_error_t map_bar_region_memory ( struct devemu_host_resources resources,
const struct bar_region_config bar_region_config,
struct bar_mapped_region mapped_mem 
)

Definition at line 171 of file devemu_pci_host_common.c.

◆ parse_emulated_pci_address()

doca_error_t parse_emulated_pci_address ( const char *  addr,
char *  parsed_addr 
)

Definition at line 235 of file devemu_pci_host_common.c.

◆ register_emulated_pci_address_param()

doca_error_t register_emulated_pci_address_param ( doca_argp_param_cb_t  pci_callback)

Definition at line 257 of file devemu_pci_host_common.c.

◆ register_region_index_param()

doca_error_t register_region_index_param ( const char *  description,
doca_argp_param_cb_t  region_callback 
)

Definition at line 307 of file devemu_pci_host_common.c.

◆ register_vfio_group_param()

doca_error_t register_vfio_group_param ( doca_argp_param_cb_t  vfio_group_callback)

Definition at line 282 of file devemu_pci_host_common.c.

◆ validate_vfio_group_and_container()

static bool validate_vfio_group_and_container ( int  group_fd,
int  container_fd 
)
static

Definition at line 51 of file devemu_pci_host_common.c.