#include <fcntl.h>
#include <inttypes.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <rte_cycles.h>
#include <rte_eal.h>
#include <rte_hexdump.h>
#include <rte_lcore.h>
#include <rte_mbuf.h>
Go to the source code of this file.
|
int | dao_pem_dev_init (uint16_t pem_devid, struct dao_pem_dev_conf *conf) |
|
int | dao_pem_dev_fini (uint16_t pem_devid) |
|
int | dao_pem_ctrl_region_register (uint16_t pem_devid, uintptr_t base, uint32_t len, dao_pem_ctrl_region_cb_t cb, void *ctx, bool sync_shadow) |
|
int | dao_pem_ctrl_region_unregister (uint16_t pem_devid, uintptr_t base, uint32_t len, dao_pem_ctrl_region_cb_t cb, void *ctx) |
|
int | dao_pem_vf_region_info_get (uint16_t pem_devid, uint16_t dev_id, uint8_t bar_idx, uint64_t *addr, uint64_t *size) |
|
size_t | dao_pem_host_page_sz (uint16_t pem_devid) |
|
uint8_t | dao_pem_host_interrupt_setup (uint16_t pem_devid, int vfid, uint64_t **intr_addr) |
|
uint16_t | dao_pem_max_vfs_get (uint16_t pem_devid) |
|
DAO PEM library
Definition in file dao_pem.h.
◆ DAO_PEM_CTRL_REGION_MAX
#define DAO_PEM_CTRL_REGION_MAX 384 |
PEM control region max
Definition at line 39 of file dao_pem.h.
◆ DAO_PEM_CTRL_REGION_MASK_MAX
PEM control region mask
Definition at line 42 of file dao_pem.h.
◆ DAO_PEM_DEFAULT_HOST_PAGE_SZ
#define DAO_PEM_DEFAULT_HOST_PAGE_SZ (64 * 1024UL) |
Default PEM Host page size
Definition at line 45 of file dao_pem.h.
◆ DAO_PEM_MAX_VFS
#define DAO_PEM_MAX_VFS 128 |
Max VF's supported
Definition at line 47 of file dao_pem.h.
◆ PEM_PFVF_DEV_ID_PF_MASK
#define PEM_PFVF_DEV_ID_PF_MASK 0xF000 |
PFVF DEV ID PF mask
Definition at line 50 of file dao_pem.h.
◆ PEM_PFVF_DEV_ID_PF_SHIFT
#define PEM_PFVF_DEV_ID_PF_SHIFT 12 |
PFVF DEV ID PF shift
Definition at line 52 of file dao_pem.h.
◆ PEM_PFVF_DEV_ID_VF_MASK
#define PEM_PFVF_DEV_ID_VF_MASK 0x0FFF |
PFVF DEV ID VF mask
Definition at line 54 of file dao_pem.h.
◆ PEM_PFVF_DEV_ID_VF_SHIFT
#define PEM_PFVF_DEV_ID_VF_SHIFT 0 |
PFVF DEV ID VF shift
Definition at line 56 of file dao_pem.h.
◆ DAO_PEM_DEV_ID_MAX
#define DAO_PEM_DEV_ID_MAX 2 |
PEM device ID max
Definition at line 59 of file dao_pem.h.
◆ dao_pem_ctrl_region_cb_t
typedef int(* dao_pem_ctrl_region_cb_t) (void *ctx, uintptr_t shadow, uint32_t off, uint64_t val, uint64_t shadow_val) |
Callback for region changes
Definition at line 84 of file dao_pem.h.
◆ dao_pem_dev_init()
PEM device init
- Parameters
-
pem_devid | PEM device ID to init. |
conf | PEM device configuration. |
- Returns
- Zero on success.
◆ dao_pem_dev_fini()
int dao_pem_dev_fini |
( |
uint16_t |
pem_devid | ) |
|
PEM device fini
- Parameters
-
pem_devid | PEM device ID to cleanup. |
- Returns
- Zero on success.
◆ dao_pem_ctrl_region_register()
int dao_pem_ctrl_region_register |
( |
uint16_t |
pem_devid, |
|
|
uintptr_t |
base, |
|
|
uint32_t |
len, |
|
|
dao_pem_ctrl_region_cb_t |
cb, |
|
|
void * |
ctx, |
|
|
bool |
sync_shadow |
|
) |
| |
PEM control region register.
Registers a portion of BAR region to be polled on and get notification if something changes in the area.
- Parameters
-
pem_devid | PEM device ID |
base | BAR region base address. |
len | BAR region len. |
cb | Callback to receive for changes in the region. |
ctx | Context pointer passed to callback. |
sync_shadow | Flag to indicate whether to sync shadow at time this API return. |
- Returns
- Zero on success.
◆ dao_pem_ctrl_region_unregister()
int dao_pem_ctrl_region_unregister |
( |
uint16_t |
pem_devid, |
|
|
uintptr_t |
base, |
|
|
uint32_t |
len, |
|
|
dao_pem_ctrl_region_cb_t |
cb, |
|
|
void * |
ctx |
|
) |
| |
PEM control region unregister.
- Parameters
-
pem_devid | PEM device ID |
base | region base address. |
len | region len. |
cb | Callback. |
ctx | Context pointer passed to callback. |
- Returns
- Zero on success.
◆ dao_pem_vf_region_info_get()
int dao_pem_vf_region_info_get |
( |
uint16_t |
pem_devid, |
|
|
uint16_t |
dev_id, |
|
|
uint8_t |
bar_idx, |
|
|
uint64_t * |
addr, |
|
|
uint64_t * |
size |
|
) |
| |
PEM VF region info get.
- Parameters
-
pem_devid | PEM device ID |
dev_id | PF/VF device ID. |
bar_idx | BAR index to get info. |
addr | Pointer to store BAR address. |
size | Pointer to store BAR size.. |
- Returns
- Zero on success.
◆ dao_pem_host_page_sz()
size_t dao_pem_host_page_sz |
( |
uint16_t |
pem_devid | ) |
|
PEM host page size get.
- Parameters
-
- Returns
- Non-Zero value on success.
◆ dao_pem_host_interrupt_setup()
uint8_t dao_pem_host_interrupt_setup |
( |
uint16_t |
pem_devid, |
|
|
int |
vfid, |
|
|
uint64_t ** |
intr_addr |
|
) |
| |
PEM VF host interrupt setup.
- Parameters
-
pem_devid | PEM device ID. |
vfid | VF device ID. |
intr_addr | Pointer to an array of addresses to be filled that triggers host interrupt upon write. |
- Returns
- Number of interrupts configured.
◆ dao_pem_max_vfs_get()
uint16_t dao_pem_max_vfs_get |
( |
uint16_t |
pem_devid | ) |
|
PEM max VFs get.
- Parameters
-
- Returns
- Max VFs supported.