11#ifndef __INCLUDE_DAO_PEM_H__
12#define __INCLUDE_DAO_PEM_H__
24#include <rte_cycles.h>
26#include <rte_hexdump.h>
39#define DAO_PEM_CTRL_REGION_MAX 384
42#define DAO_PEM_CTRL_REGION_MASK_MAX (RTE_ALIGN(DAO_PEM_CTRL_REGION_MAX, 64) / 64)
45#define DAO_PEM_DEFAULT_HOST_PAGE_SZ (64 * 1024UL)
47#define DAO_PEM_MAX_VFS 128
50#define PEM_PFVF_DEV_ID_PF_MASK 0xF000
52#define PEM_PFVF_DEV_ID_PF_SHIFT 12
54#define PEM_PFVF_DEV_ID_VF_MASK 0x0FFF
56#define PEM_PFVF_DEV_ID_VF_SHIFT 0
59#define DAO_PEM_DEV_ID_MAX 2
146 uint64_t *addr, uint64_t *size);
int dao_pem_dev_fini(uint16_t pem_devid)
uint16_t dao_pem_max_vfs_get(uint16_t pem_devid)
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_ctrl_region_cb_t)(void *ctx, uintptr_t shadow, uint32_t off, uint64_t val, uint64_t shadow_val)
int dao_pem_dev_init(uint16_t pem_devid, struct dao_pem_dev_conf *conf)
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)
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)
uint8_t dao_pem_host_interrupt_setup(uint16_t pem_devid, int vfid, uint64_t **intr_addr)