X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fcommon%2Fqat%2Fqat_device.h;h=85fae7b7c7467e3ea932776a4deb5f1a9b45b1f3;hb=b8ac8b089cebd5d415641c4a5fb7f7a955c296b7;hp=05e164baa74310e4daed1462f6028d2b647e11a7;hpb=b17d16fb47b49919725436b731405ab32a0c02f2;p=dpdk.git diff --git a/drivers/common/qat/qat_device.h b/drivers/common/qat/qat_device.h index 05e164baa7..85fae7b7c7 100644 --- a/drivers/common/qat/qat_device.h +++ b/drivers/common/qat/qat_device.h @@ -21,17 +21,34 @@ #define COMP_ENQ_THRESHOLD_NAME "qat_comp_enq_threshold" #define MAX_QP_THRESHOLD_SIZE 32 +/** + * Function prototypes for GENx specific device operations. + **/ +typedef int (*qat_dev_reset_ring_pairs_t) + (struct qat_pci_device *); +typedef const struct rte_mem_resource* (*qat_dev_get_transport_bar_t) + (struct rte_pci_device *); +typedef int (*qat_dev_get_misc_bar_t) + (struct rte_mem_resource **, struct rte_pci_device *); +typedef int (*qat_dev_read_config_t) + (struct qat_pci_device *); +typedef int (*qat_dev_get_extra_size_t)(void); + +struct qat_dev_hw_spec_funcs { + qat_dev_reset_ring_pairs_t qat_dev_reset_ring_pairs; + qat_dev_get_transport_bar_t qat_dev_get_transport_bar; + qat_dev_get_misc_bar_t qat_dev_get_misc_bar; + qat_dev_read_config_t qat_dev_read_config; + qat_dev_get_extra_size_t qat_dev_get_extra_size; +}; + +extern struct qat_dev_hw_spec_funcs *qat_dev_hw_spec[]; + struct qat_dev_cmd_param { const char *name; uint16_t val; }; -enum qat_comp_num_im_buffers { - QAT_NUM_INTERM_BUFS_GEN1 = 12, - QAT_NUM_INTERM_BUFS_GEN2 = 20, - QAT_NUM_INTERM_BUFS_GEN3 = 64 -}; - struct qat_device_info { const struct rte_memzone *mz; /**< mz to store the qat_pci_device so it can be @@ -59,8 +76,7 @@ struct qat_device_info { extern struct qat_device_info qat_pci_devs[]; -struct qat_sym_dev_private; -struct qat_asym_dev_private; +struct qat_cryptodev_private; struct qat_comp_dev_private; /* @@ -89,14 +105,14 @@ struct qat_pci_device { /**< links to qps set up for each service, index same as on API */ /* Data relating to symmetric crypto service */ - struct qat_sym_dev_private *sym_dev; + struct qat_cryptodev_private *sym_dev; /**< link back to cryptodev private data */ int qat_sym_driver_id; /**< Symmetric driver id used by this device */ /* Data relating to asymmetric crypto service */ - struct qat_asym_dev_private *asym_dev; + struct qat_cryptodev_private *asym_dev; /**< link back to cryptodev private data */ int qat_asym_driver_id; @@ -105,17 +121,15 @@ struct qat_pci_device { /* Data relating to compression service */ struct qat_comp_dev_private *comp_dev; /**< link back to compressdev private data */ - struct qat_qp_hw_data qp_gen4_data[QAT_GEN4_BUNDLE_NUM] - [QAT_GEN4_QPS_PER_BUNDLE_NUM]; - /**< Data of ring configuration on gen4 */ void *misc_bar_io_addr; /**< Address of misc bar */ + void *dev_private; + /**< Per generation specific information */ }; struct qat_gen_hw_data { enum qat_device_gen dev_gen; const struct qat_qp_hw_data (*qp_hw_data)[ADF_MAX_QPS_ON_ANY_SERVICE]; - enum qat_comp_num_im_buffers comp_num_im_bufs_required; struct qat_pf2vf_dev *pf2vf_dev; };