net/sfc/base: do not use enum type when values are bitmask
[dpdk.git] / drivers / net / sfc / base / efx.h
index bfa548e..0815d7a 100644 (file)
@@ -1421,6 +1421,45 @@ efx_nvram_fini(
 
 #endif /* EFSYS_OPT_NVRAM */
 
+#if EFSYS_OPT_BOOTCFG
+
+/* Report size and offset of bootcfg sector in NVRAM partition. */
+extern __checkReturn           efx_rc_t
+efx_bootcfg_sector_info(
+       __in                    efx_nic_t *enp,
+       __in                    uint32_t pf,
+       __out_opt               uint32_t *sector_countp,
+       __out                   size_t *offsetp,
+       __out                   size_t *max_sizep);
+
+/*
+ * Copy bootcfg sector data to a target buffer which may differ in size.
+ * Optionally corrects format errors in source buffer.
+ */
+extern                         efx_rc_t
+efx_bootcfg_copy_sector(
+       __in                    efx_nic_t *enp,
+       __inout_bcount(sector_length)
+                               uint8_t *sector,
+       __in                    size_t sector_length,
+       __out_bcount(data_size) uint8_t *data,
+       __in                    size_t data_size,
+       __in                    boolean_t handle_format_errors);
+
+extern                         efx_rc_t
+efx_bootcfg_read(
+       __in                    efx_nic_t *enp,
+       __out_bcount(size)      caddr_t data,
+       __in                    size_t size);
+
+extern                         efx_rc_t
+efx_bootcfg_write(
+       __in                    efx_nic_t *enp,
+       __in_bcount(size)       caddr_t data,
+       __in                    size_t size);
+
+#endif /* EFSYS_OPT_BOOTCFG */
+
 #if EFSYS_OPT_DIAG
 
 typedef enum efx_pattern_type_t {
@@ -1812,12 +1851,12 @@ typedef enum efx_rx_hash_alg_e {
        EFX_RX_HASHALG_TOEPLITZ
 } efx_rx_hash_alg_t;
 
-typedef enum efx_rx_hash_type_e {
-       EFX_RX_HASH_IPV4 = 0,
-       EFX_RX_HASH_TCPIPV4,
-       EFX_RX_HASH_IPV6,
-       EFX_RX_HASH_TCPIPV6,
-} efx_rx_hash_type_t;
+#define        EFX_RX_HASH_IPV4        (1U << 0)
+#define        EFX_RX_HASH_TCPIPV4     (1U << 1)
+#define        EFX_RX_HASH_IPV6        (1U << 2)
+#define        EFX_RX_HASH_TCPIPV6     (1U << 3)
+
+typedef unsigned int efx_rx_hash_type_t;
 
 typedef enum efx_rx_hash_support_e {
        EFX_RX_HASH_UNAVAILABLE = 0,    /* Hardware hash not inserted */
@@ -2312,6 +2351,151 @@ efx_hash_bytes(
        __in                    size_t length,
        __in                    uint32_t init);
 
+#if EFSYS_OPT_LICENSING
+
+/* LICENSING */
+
+typedef struct efx_key_stats_s {
+       uint32_t        eks_valid;
+       uint32_t        eks_invalid;
+       uint32_t        eks_blacklisted;
+       uint32_t        eks_unverifiable;
+       uint32_t        eks_wrong_node;
+       uint32_t        eks_licensed_apps_lo;
+       uint32_t        eks_licensed_apps_hi;
+       uint32_t        eks_licensed_features_lo;
+       uint32_t        eks_licensed_features_hi;
+} efx_key_stats_t;
+
+extern __checkReturn           efx_rc_t
+efx_lic_init(
+       __in                    efx_nic_t *enp);
+
+extern                         void
+efx_lic_fini(
+       __in                    efx_nic_t *enp);
+
+extern __checkReturn   boolean_t
+efx_lic_check_support(
+       __in                    efx_nic_t *enp);
+
+extern __checkReturn   efx_rc_t
+efx_lic_update_licenses(
+       __in            efx_nic_t *enp);
+
+extern __checkReturn   efx_rc_t
+efx_lic_get_key_stats(
+       __in            efx_nic_t *enp,
+       __out           efx_key_stats_t *ksp);
+
+extern __checkReturn   efx_rc_t
+efx_lic_app_state(
+       __in            efx_nic_t *enp,
+       __in            uint64_t app_id,
+       __out           boolean_t *licensedp);
+
+extern __checkReturn   efx_rc_t
+efx_lic_get_id(
+       __in            efx_nic_t *enp,
+       __in            size_t buffer_size,
+       __out           uint32_t *typep,
+       __out           size_t *lengthp,
+       __out_opt       uint8_t *bufferp);
+
+
+extern __checkReturn           efx_rc_t
+efx_lic_find_start(
+       __in                    efx_nic_t *enp,
+       __in_bcount(buffer_size)
+                               caddr_t bufferp,
+       __in                    size_t buffer_size,
+       __out                   uint32_t *startp
+       );
+
+extern __checkReturn           efx_rc_t
+efx_lic_find_end(
+       __in                    efx_nic_t *enp,
+       __in_bcount(buffer_size)
+                               caddr_t bufferp,
+       __in                    size_t buffer_size,
+       __in                    uint32_t offset,
+       __out                   uint32_t *endp
+       );
+
+extern __checkReturn   __success(return != B_FALSE)    boolean_t
+efx_lic_find_key(
+       __in                    efx_nic_t *enp,
+       __in_bcount(buffer_size)
+                               caddr_t bufferp,
+       __in                    size_t buffer_size,
+       __in                    uint32_t offset,
+       __out                   uint32_t *startp,
+       __out                   uint32_t *lengthp
+       );
+
+extern __checkReturn   __success(return != B_FALSE)    boolean_t
+efx_lic_validate_key(
+       __in                    efx_nic_t *enp,
+       __in_bcount(length)     caddr_t keyp,
+       __in                    uint32_t length
+       );
+
+extern __checkReturn           efx_rc_t
+efx_lic_read_key(
+       __in                    efx_nic_t *enp,
+       __in_bcount(buffer_size)
+                               caddr_t bufferp,
+       __in                    size_t buffer_size,
+       __in                    uint32_t offset,
+       __in                    uint32_t length,
+       __out_bcount_part(key_max_size, *lengthp)
+                               caddr_t keyp,
+       __in                    size_t key_max_size,
+       __out                   uint32_t *lengthp
+       );
+
+extern __checkReturn           efx_rc_t
+efx_lic_write_key(
+       __in                    efx_nic_t *enp,
+       __in_bcount(buffer_size)
+                               caddr_t bufferp,
+       __in                    size_t buffer_size,
+       __in                    uint32_t offset,
+       __in_bcount(length)     caddr_t keyp,
+       __in                    uint32_t length,
+       __out                   uint32_t *lengthp
+       );
+
+       __checkReturn           efx_rc_t
+efx_lic_delete_key(
+       __in                    efx_nic_t *enp,
+       __in_bcount(buffer_size)
+                               caddr_t bufferp,
+       __in                    size_t buffer_size,
+       __in                    uint32_t offset,
+       __in                    uint32_t length,
+       __in                    uint32_t end,
+       __out                   uint32_t *deltap
+       );
+
+extern __checkReturn           efx_rc_t
+efx_lic_create_partition(
+       __in                    efx_nic_t *enp,
+       __in_bcount(buffer_size)
+                               caddr_t bufferp,
+       __in                    size_t buffer_size
+       );
+
+extern __checkReturn           efx_rc_t
+efx_lic_finish_partition(
+       __in                    efx_nic_t *enp,
+       __in_bcount(buffer_size)
+                               caddr_t bufferp,
+       __in                    size_t buffer_size
+       );
+
+#endif /* EFSYS_OPT_LICENSING */
+
 
 
 #ifdef __cplusplus