net/mlx5: fix meter EIR calculation
[dpdk.git] / drivers / net / ionic / ionic.h
index a415dd8..49b90d1 100644 (file)
@@ -8,6 +8,8 @@
 #include <stdint.h>
 #include <inttypes.h>
 
+#include <rte_bus_pci.h>
+
 #include "ionic_dev.h"
 #include "ionic_if.h"
 #include "ionic_osdep.h"
@@ -46,14 +48,36 @@ struct ionic_hw {
 struct ionic_adapter {
        struct ionic_hw hw;
        struct ionic_dev idev;
+       const char *name;
        struct ionic_dev_bar bars[IONIC_BARS_MAX];
        struct ionic_identity   ident;
+       struct ionic_lif *lif;
        uint32_t num_bars;
-       bool is_mgmt_nic;
+       uint32_t max_ntxqs_per_lif;
+       uint32_t max_nrxqs_per_lif;
+       uint32_t max_mac_addrs;
+       uint32_t link_speed;
+       uint32_t nintrs;
+       bool intrs[IONIC_INTR_CTRL_REGS_MAX];
+       bool link_up;
+       char fw_version[IONIC_DEVINFO_FWVERS_BUFLEN];
        struct rte_pci_device *pci_dev;
        LIST_ENTRY(ionic_adapter) pci_adapters;
 };
 
+/** ionic_admin_ctx - Admin command context.
+ * @pending_work:       Flag that indicates a completion.
+ * @cmd:                Admin command (64B) to be copied to the queue.
+ * @comp:               Admin completion (16B) copied from the queue.
+ */
+struct ionic_admin_ctx {
+       bool pending_work;
+       union ionic_adminq_cmd cmd;
+       union ionic_adminq_comp comp;
+};
+
+int ionic_adminq_post_wait(struct ionic_lif *lif, struct ionic_admin_ctx *ctx);
+
 int ionic_dev_cmd_wait_check(struct ionic_dev *idev, unsigned long max_wait);
 int ionic_setup(struct ionic_adapter *adapter);
 
@@ -61,4 +85,8 @@ int ionic_identify(struct ionic_adapter *adapter);
 int ionic_init(struct ionic_adapter *adapter);
 int ionic_reset(struct ionic_adapter *adapter);
 
+int ionic_port_identify(struct ionic_adapter *adapter);
+int ionic_port_init(struct ionic_adapter *adapter);
+int ionic_port_reset(struct ionic_adapter *adapter);
+
 #endif /* _IONIC_H_ */