FD.io VPP  v18.01.1-37-g7ea3975
Vector Packet Processing
pci.h File Reference
+ Include dependency graph for pci.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  vlib_pci_device_info
 
struct  pci_device_id_t
 
struct  vlib_pci_main_t
 

Macros

#define PCI_REGISTER_DEVICE(x, ...)
 

Typedefs

typedef struct vlib_pci_device_info vlib_pci_device_info_t
 
typedef u32 vlib_pci_dev_handle_t
 
typedef struct _pci_device_registration pci_device_registration_t
 

Functions

typedef CLIB_PACKED (union{struct{u16 domain;u8 bus;u8 slot:5;u8 function:3;};u32 as_u32;}) vlib_pci_addr_t
 
vlib_pci_device_info_tvlib_pci_get_device_info (vlib_pci_addr_t *addr, clib_error_t **error)
 
vlib_pci_addr_t * vlib_pci_get_all_dev_addrs ()
 
vlib_pci_addr_t * vlib_pci_get_addr (vlib_pci_dev_handle_t h)
 
uword vlib_pci_get_private_data (vlib_pci_dev_handle_t h)
 
void vlib_pci_set_private_data (vlib_pci_dev_handle_t h, uword private_data)
 
static void vlib_pci_free_device_info (vlib_pci_device_info_t *di)
 
clib_error_tvlib_pci_bind_to_uio (vlib_pci_addr_t *addr, char *uio_driver_name)
 
clib_error_tvlib_pci_read_write_config (vlib_pci_dev_handle_t handle, vlib_read_or_write_t read_or_write, uword address, void *data, u32 n_bytes)
 
static clib_error_tvlib_pci_intr_enable (vlib_pci_dev_handle_t h)
 
static clib_error_tvlib_pci_intr_disable (vlib_pci_dev_handle_t h)
 
static clib_error_tvlib_pci_bus_master_enable (vlib_pci_dev_handle_t h)
 
clib_error_tvlib_pci_map_resource (vlib_pci_dev_handle_t h, u32 resource, void **result)
 
clib_error_tvlib_pci_map_resource_fixed (vlib_pci_dev_handle_t h, u32 resource, u8 *addr, void **result)
 

Variables

vlib_pci_main_t pci_main
 
unformat_function_t unformat_vlib_pci_addr
 
format_function_t format_vlib_pci_addr
 
format_function_t format_vlib_pci_link_speed
 
format_function_t format_vlib_pci_vpd
 

Macro Definition Documentation

#define PCI_REGISTER_DEVICE (   x,
  ... 
)
Value:
__VA_ARGS__ pci_device_registration_t x; \
static void __vlib_add_pci_device_registration_##x (void) \
__attribute__((__constructor__)) ; \
static void __vlib_add_pci_device_registration_##x (void) \
{ \
vlib_pci_main_t * pm = &pci_main; \
x.next_registration = pm->pci_device_registrations; \
pm->pci_device_registrations = &x; \
} \
pci_device_registration_t * pci_device_registrations
Definition: pci.h:140
vlib_pci_main_t pci_main
Definition: pci.c:53
struct _pci_device_registration pci_device_registration_t

Definition at line 145 of file pci.h.

Typedef Documentation

typedef struct _pci_device_registration pci_device_registration_t

Definition at line 94 of file pci.h.

Function Documentation

typedef CLIB_PACKED ( union{struct{u16 domain;u8 bus;u8 slot:5;u8 function:3;};u32 as_u32;}  )
clib_error_t* vlib_pci_bind_to_uio ( vlib_pci_addr_t *  addr,
char *  uio_driver_name 
)

Definition at line 330 of file pci.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* vlib_pci_bus_master_enable ( vlib_pci_dev_handle_t  h)
inlinestatic

Definition at line 229 of file pci.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void vlib_pci_free_device_info ( vlib_pci_device_info_t di)
inlinestatic

Definition at line 104 of file pci.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

vlib_pci_addr_t* vlib_pci_get_addr ( vlib_pci_dev_handle_t  h)

Definition at line 142 of file pci.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

vlib_pci_addr_t* vlib_pci_get_all_dev_addrs ( )

Definition at line 1027 of file pci.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

vlib_pci_device_info_t* vlib_pci_get_device_info ( vlib_pci_addr_t *  addr,
clib_error_t **  error 
)

Definition at line 156 of file pci.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uword vlib_pci_get_private_data ( vlib_pci_dev_handle_t  h)

Definition at line 128 of file pci.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* vlib_pci_intr_disable ( vlib_pci_dev_handle_t  h)
inlinestatic

Definition at line 213 of file pci.h.

static clib_error_t* vlib_pci_intr_enable ( vlib_pci_dev_handle_t  h)
inlinestatic

Definition at line 197 of file pci.h.

+ Here is the caller graph for this function:

clib_error_t* vlib_pci_map_resource ( vlib_pci_dev_handle_t  h,
u32  resource,
void **  result 
)

Definition at line 927 of file pci.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vlib_pci_map_resource_fixed ( vlib_pci_dev_handle_t  h,
u32  resource,
u8 addr,
void **  result 
)

Definition at line 933 of file pci.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vlib_pci_read_write_config ( vlib_pci_dev_handle_t  handle,
vlib_read_or_write_t  read_or_write,
uword  address,
void *  data,
u32  n_bytes 
)

Definition at line 851 of file pci.c.

+ Here is the call graph for this function:

void vlib_pci_set_private_data ( vlib_pci_dev_handle_t  h,
uword  private_data 
)

Definition at line 135 of file pci.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

format_function_t format_vlib_pci_addr

Definition at line 256 of file pci.h.

format_function_t format_vlib_pci_link_speed

Definition at line 257 of file pci.h.

format_function_t format_vlib_pci_vpd

Definition at line 258 of file pci.h.

vlib_pci_main_t pci_main

Definition at line 53 of file pci.c.

unformat_function_t unformat_vlib_pci_addr

Definition at line 255 of file pci.h.