net/ixgbe: support power management on VF
[dpdk.git] / drivers / net / bnxt / tf_core / tf_device.h
index 40395eb..d0c4ec8 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2019-2020 Broadcom
+ * Copyright(c) 2019-2021 Broadcom
  * All rights reserved.
  */
 
@@ -10,6 +10,8 @@
 #include "tf_identifier.h"
 #include "tf_tbl.h"
 #include "tf_tcam.h"
+#include "tf_if_tbl.h"
+#include "tf_global_cfg.h"
 
 struct tf;
 struct tf_session;
@@ -196,6 +198,26 @@ struct tf_dev_ops {
        int (*tf_dev_free_ident)(struct tf *tfp,
                                 struct tf_ident_free_parms *parms);
 
+       /**
+        * Search of an identifier element.
+        *
+        * This API search the specified identifier element from a
+        * device specific identifier shadow DB. The allocated element
+        * is returned.
+        *
+        * [in] tfp
+        *   Pointer to TF handle
+        *
+        * [in] parms
+        *   Pointer to identifier search parameters
+        *
+        * Returns
+        *   - (0) if successful.
+        *   - (-EINVAL) on failure.
+        */
+       int (*tf_dev_search_ident)(struct tf *tfp,
+                                  struct tf_ident_search_parms *parms);
+
        /**
         * Allocation of a table type element.
         *
@@ -551,6 +573,49 @@ struct tf_dev_ops {
         */
        int (*tf_dev_alloc_tbl_scope)(struct tf *tfp,
                                      struct tf_alloc_tbl_scope_parms *parms);
+       /**
+        * Map EEM parif
+        *
+        * [in] tfp
+        *   Pointer to TF handle
+        *
+        * [in] pf
+        * PF associated with the table scope
+        *
+        * [in] parif_bitmask
+        * Bitmask of PARIFs to enable
+        *
+        * [in/out] pointer to the parif_2_pf data to be updated
+        *
+        * [in/out] pointer to the parif_2_pf mask to be updated
+        *
+        * [in] sz_in_bytes - number of bytes to be written
+        *
+        *    returns:
+        *    0       - Success
+        *    -EINVAL - Error
+        */
+       int (*tf_dev_map_parif)(struct tf *tfp,
+                               uint16_t parif_bitmask,
+                               uint16_t pf,
+                               uint8_t *data,
+                               uint8_t *mask,
+                               uint16_t sz_in_bytes);
+       /**
+        * Map EEM table scope
+        *
+        * [in] tfp
+        *   Pointer to TF handle
+        *
+        * [in] parms
+        *   Pointer to table scope map parameters
+        *
+        *    returns:
+        *    0       - Success
+        *    -EINVAL - Error
+        */
+       int (*tf_dev_map_tbl_scope)(struct tf *tfp,
+                                   struct tf_map_tbl_scope_parms *parms);
 
        /**
         * Free EEM table scope
@@ -567,6 +632,76 @@ struct tf_dev_ops {
         */
        int (*tf_dev_free_tbl_scope)(struct tf *tfp,
                                     struct tf_free_tbl_scope_parms *parms);
+
+       /**
+        * Sets the specified interface table type element.
+        *
+        * This API sets the specified element data by invoking the
+        * firmware.
+        *
+        * [in] tfp
+        *   Pointer to TF handle
+        *
+        * [in] parms
+        *   Pointer to interface table set parameters
+        *
+        * Returns
+        *   - (0) if successful.
+        *   - (-EINVAL) on failure.
+        */
+       int (*tf_dev_set_if_tbl)(struct tf *tfp,
+                                struct tf_if_tbl_set_parms *parms);
+
+       /**
+        * Retrieves the specified interface table type element.
+        *
+        * This API retrieves the specified element data by invoking the
+        * firmware.
+        *
+        * [in] tfp
+        *   Pointer to TF handle
+        *
+        * [in] parms
+        *   Pointer to table get parameters
+        *
+        * Returns
+        *   - (0) if successful.
+        *   - (-EINVAL) on failure.
+        */
+       int (*tf_dev_get_if_tbl)(struct tf *tfp,
+                                struct tf_if_tbl_get_parms *parms);
+
+       /**
+        * Update global cfg
+        *
+        * [in] tfp
+        *   Pointer to TF handle
+        *
+        * [in] parms
+        *   Pointer to global cfg parameters
+        *
+        *    returns:
+        *    0       - Success
+        *    -EINVAL - Error
+        */
+       int (*tf_dev_set_global_cfg)(struct tf *tfp,
+                                    struct tf_global_cfg_parms *parms);
+
+       /**
+        * Get global cfg
+        *
+        * [in] tfp
+        *   Pointer to TF handle
+        *
+        * [in] parms
+        *   Pointer to global cfg parameters
+        *
+        *    returns:
+        *    0       - Success
+        *    -EINVAL - Error
+        */
+       int (*tf_dev_get_global_cfg)(struct tf *tfp,
+                                    struct tf_global_cfg_parms *parms);
 };
 
 /**