aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/sfxge/common/efx_impl.h
diff options
context:
space:
mode:
authorAndrew Rybchenko <arybchik@FreeBSD.org>2016-01-14 09:19:28 +0000
committerAndrew Rybchenko <arybchik@FreeBSD.org>2016-01-14 09:19:28 +0000
commit0c848230f72ce4108cfc3fc6904fb55b8d66b614 (patch)
tree22138f121a0010e538dd71600c9e16ad6a4e0be3 /sys/dev/sfxge/common/efx_impl.h
parentdc5427fc70618fbe5f10b2dd8a8bdbcb2ba0ce5b (diff)
downloadsrc-0c848230f72ce4108cfc3fc6904fb55b8d66b614.tar.gz
src-0c848230f72ce4108cfc3fc6904fb55b8d66b614.zip
sfxge: add accessors for license-related MCDI calls to common code
Add support for Huntington MCDI licensing interface to common code. Ported from Linux net driver IOCTL functions with restructuring for initial support for V3 licensing API. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Reviewed by: gnn Sponsored by: Solarflare Communications, Inc. MFC after: 2 days Differential Revision: https://reviews.freebsd.org/D4918
Notes
Notes: svn path=/head/; revision=293901
Diffstat (limited to 'sys/dev/sfxge/common/efx_impl.h')
-rw-r--r--sys/dev/sfxge/common/efx_impl.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/sys/dev/sfxge/common/efx_impl.h b/sys/dev/sfxge/common/efx_impl.h
index 46f0f7efe7d8..02a3e8eb6ebc 100644
--- a/sys/dev/sfxge/common/efx_impl.h
+++ b/sys/dev/sfxge/common/efx_impl.h
@@ -84,6 +84,7 @@ extern "C" {
#define EFX_MOD_WOL 0x00000800
#define EFX_MOD_FILTER 0x00001000
#define EFX_MOD_PKTFILTER 0x00002000
+#define EFX_MOD_LIC 0x00004000
#define EFX_RESET_MAC 0x00000001
#define EFX_RESET_PHY 0x00000002
@@ -591,6 +592,18 @@ efx_mcdi_nvram_test(
#endif /* EFSYS_OPT_VPD || EFSYS_OPT_NVRAM */
+#if EFSYS_OPT_LICENSING
+
+typedef struct efx_lic_ops_s {
+ efx_rc_t (*elo_update_licenses)(efx_nic_t *);
+ efx_rc_t (*elo_get_key_stats)(efx_nic_t *, efx_key_stats_t *);
+ efx_rc_t (*elo_app_state)(efx_nic_t *, uint64_t, boolean_t *);
+ efx_rc_t (*elo_get_id)(efx_nic_t *, size_t, uint32_t *,
+ size_t *, uint8_t *);
+} efx_lic_ops_t;
+
+#endif
+
typedef struct efx_drv_cfg_s {
uint32_t edc_min_vi_count;
uint32_t edc_max_vi_count;
@@ -640,6 +653,9 @@ struct efx_nic_s {
uint32_t en_rss_context;
#endif /* EFSYS_OPT_RX_SCALE */
uint32_t en_vport_id;
+#if EFSYS_OPT_LICENSING
+ efx_lic_ops_t *en_elop;
+#endif
union {
#if EFSYS_OPT_FALCON
struct {