Data Plane Development Kit Reference Manual: Intel FPGA Programmable Acceleration Card N3000

ID 683512
Date 12/06/2019
Public
Document Table of Contents

2.5. OPAE User Mode Driver API Summary

Here is a summary of the OPAE User Mode Driver. The drivers/raw/ifpga/base/opae_hw_api.h header file defines this API.

OPAE Adapter API

opae_adapter_free(adapter)
int opae_adapter_enumerate(struct opae_adapter *adapter);
void opae_adapter_destroy(struct opae_adapter *adapter);

void *opae_adapter_data_alloc(enum opae_adapter_type type);

OPAE Manager API

struct opae_manager *opae_manager_alloc(const char *name, 
			struct opae_manager_ops *ops,
			struct opae_manager_networking_ops *network_ops, void *data);
opae_manager_free(mgr) 
int opae_manager_get_eth_group_region_info(struct opae_manager *mgr,
                u8 group_id, struct opae_eth_group_region_info *info);
struct opae_sensor_info *opae_mgr_get_sensor_by_name(struct opae_manager *mgr,
                const char *name);
struct opae_sensor_info *opae_mgr_get_sensor_by_id(struct opae_manager *mgr,
                unsigned int id);
int opae_mgr_get_sensor_value_by_name(struct opae_manager *mgr,
                const char *name, unsigned int *value);
int opae_mgr_get_sensor_value_by_id(struct opae_manager *mgr,
                unsigned int id, unsigned int *value);
int opae_mgr_get_sensor_value(struct opae_manager *mgr,
                struct opae_sensor_info *sensor,
                unsigned int *value);

OPAE Accelerator API

struct opae_accelerator *
opae_accelerator_alloc(const char *name, struct opae_accelerator_ops *ops,
		       void *data);
opae_accelerator_free(acc)
int opae_acc_get_info(struct opae_accelerator *acc, struct opae_acc_info *info);
int opae_acc_get_region_info(struct opae_accelerator *acc,
			     struct opae_acc_region_info *info);
int opae_acc_get_uuid(struct opae_accelerator *acc,
		      struct uuid *uuid);

Register Read and Write Accelerator API

opae_acc_reg_read64(acc, region, offset, data) 
opae_acc_reg_write64(acc, region, offset, data) 
opae_acc_reg_read32(acc, region, offset, data)
opae_acc_reg_write32(acc, region, offset, data) 
opae_acc_reg_read16(acc, region, offset, data) 
opae_acc_reg_write16(acc, region, offset, data) 
opae_acc_reg_read8(acc, region, offset, data)
opae_acc_reg_write8(acc, region, offset, data) 

OPAE Bridge

struct opae_bridge * opae_bridge_alloc(const char *name,
			struct opae_bridge_ops *ops, void *data)
int opae_bridge_reset(struct opae_bridge *br)
#define opae_bridge_free(br) opae_free(br)