summaryrefslogtreecommitdiffstats
path: root/sys/dev/sfxge/common/efx_filter.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/sfxge/common/efx_filter.c')
-rw-r--r--sys/dev/sfxge/common/efx_filter.c126
1 files changed, 63 insertions, 63 deletions
diff --git a/sys/dev/sfxge/common/efx_filter.c b/sys/dev/sfxge/common/efx_filter.c
index 7ae7ea5..a4b59cc 100644
--- a/sys/dev/sfxge/common/efx_filter.c
+++ b/sys/dev/sfxge/common/efx_filter.c
@@ -31,10 +31,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "efsys.h"
#include "efx.h"
-#include "efx_types.h"
-#include "efx_regs.h"
#include "efx_impl.h"
@@ -42,7 +39,7 @@ __FBSDID("$FreeBSD$");
#if EFSYS_OPT_FALCON || EFSYS_OPT_SIENA
-static __checkReturn int
+static __checkReturn efx_rc_t
falconsiena_filter_init(
__in efx_nic_t *enp);
@@ -50,22 +47,22 @@ static void
falconsiena_filter_fini(
__in efx_nic_t *enp);
-static __checkReturn int
+static __checkReturn efx_rc_t
falconsiena_filter_restore(
__in efx_nic_t *enp);
-static __checkReturn int
+static __checkReturn efx_rc_t
falconsiena_filter_add(
__in efx_nic_t *enp,
__inout efx_filter_spec_t *spec,
__in boolean_t may_replace);
-static __checkReturn int
+static __checkReturn efx_rc_t
falconsiena_filter_delete(
__in efx_nic_t *enp,
__inout efx_filter_spec_t *spec);
-static __checkReturn int
+static __checkReturn efx_rc_t
falconsiena_filter_supported_filters(
__in efx_nic_t *enp,
__out uint32_t *list,
@@ -97,19 +94,19 @@ static efx_filter_ops_t __efx_filter_siena_ops = {
};
#endif /* EFSYS_OPT_SIENA */
-#if EFSYS_OPT_HUNTINGTON
-static efx_filter_ops_t __efx_filter_hunt_ops = {
- hunt_filter_init, /* efo_init */
- hunt_filter_fini, /* efo_fini */
- hunt_filter_restore, /* efo_restore */
- hunt_filter_add, /* efo_add */
- hunt_filter_delete, /* efo_delete */
- hunt_filter_supported_filters, /* efo_supported_filters */
- hunt_filter_reconfigure, /* efo_reconfigure */
+#if EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD
+static efx_filter_ops_t __efx_filter_ef10_ops = {
+ ef10_filter_init, /* efo_init */
+ ef10_filter_fini, /* efo_fini */
+ ef10_filter_restore, /* efo_restore */
+ ef10_filter_add, /* efo_add */
+ ef10_filter_delete, /* efo_delete */
+ ef10_filter_supported_filters, /* efo_supported_filters */
+ ef10_filter_reconfigure, /* efo_reconfigure */
};
-#endif /* EFSYS_OPT_HUNTINGTON */
+#endif /* EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD */
- __checkReturn int
+ __checkReturn efx_rc_t
efx_filter_insert(
__in efx_nic_t *enp,
__inout efx_filter_spec_t *spec)
@@ -123,7 +120,7 @@ efx_filter_insert(
return (efop->efo_add(enp, spec, B_FALSE));
}
- __checkReturn int
+ __checkReturn efx_rc_t
efx_filter_remove(
__in efx_nic_t *enp,
__inout efx_filter_spec_t *spec)
@@ -141,11 +138,11 @@ efx_filter_remove(
return (efop->efo_delete(enp, spec));
}
- __checkReturn int
+ __checkReturn efx_rc_t
efx_filter_restore(
__in efx_nic_t *enp)
{
- int rc;
+ efx_rc_t rc;
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_FILTER);
@@ -155,17 +152,17 @@ efx_filter_restore(
return (0);
fail1:
- EFSYS_PROBE1(fail1, int, rc);
+ EFSYS_PROBE1(fail1, efx_rc_t, rc);
return (rc);
}
- __checkReturn int
+ __checkReturn efx_rc_t
efx_filter_init(
__in efx_nic_t *enp)
{
efx_filter_ops_t *efop;
- int rc;
+ efx_rc_t rc;
/* Check that efx_filter_spec_t is 64 bytes. */
EFX_STATIC_ASSERT(sizeof (efx_filter_spec_t) == 64);
@@ -189,10 +186,16 @@ efx_filter_init(
#if EFSYS_OPT_HUNTINGTON
case EFX_FAMILY_HUNTINGTON:
- efop = (efx_filter_ops_t *)&__efx_filter_hunt_ops;
+ efop = (efx_filter_ops_t *)&__efx_filter_ef10_ops;
break;
#endif /* EFSYS_OPT_HUNTINGTON */
+#if EFSYS_OPT_MEDFORD
+ case EFX_FAMILY_MEDFORD:
+ efop = (efx_filter_ops_t *)&__efx_filter_ef10_ops;
+ break;
+#endif /* EFSYS_OPT_MEDFORD */
+
default:
EFSYS_ASSERT(0);
rc = ENOTSUP;
@@ -209,7 +212,7 @@ efx_filter_init(
fail2:
EFSYS_PROBE(fail2);
fail1:
- EFSYS_PROBE1(fail1, int, rc);
+ EFSYS_PROBE1(fail1, efx_rc_t, rc);
enp->en_efop = NULL;
enp->en_mod_flags &= ~EFX_MOD_FILTER;
@@ -230,13 +233,13 @@ efx_filter_fini(
enp->en_mod_flags &= ~EFX_MOD_FILTER;
}
- __checkReturn int
+ __checkReturn efx_rc_t
efx_filter_supported_filters(
__in efx_nic_t *enp,
__out uint32_t *list,
__out size_t *length)
{
- int rc;
+ efx_rc_t rc;
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE);
@@ -249,12 +252,12 @@ efx_filter_supported_filters(
return (0);
fail1:
- EFSYS_PROBE1(fail1, int, rc);
+ EFSYS_PROBE1(fail1, efx_rc_t, rc);
return (rc);
}
- __checkReturn int
+ __checkReturn efx_rc_t
efx_filter_reconfigure(
__in efx_nic_t *enp,
__in_ecount(6) uint8_t const *mac_addr,
@@ -265,7 +268,7 @@ efx_filter_reconfigure(
__in_ecount(6*count) uint8_t const *addrs,
__in int count)
{
- int rc;
+ efx_rc_t rc;
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE);
@@ -282,14 +285,14 @@ efx_filter_reconfigure(
return (0);
fail1:
- EFSYS_PROBE1(fail1, int, rc);
+ EFSYS_PROBE1(fail1, efx_rc_t, rc);
return (rc);
}
void
efx_filter_spec_init_rx(
- __inout efx_filter_spec_t *spec,
+ __out efx_filter_spec_t *spec,
__in efx_filter_priority_t priority,
__in efx_filter_flag_t flags,
__in efx_rxq_t *erp)
@@ -308,7 +311,7 @@ efx_filter_spec_init_rx(
void
efx_filter_spec_init_tx(
- __inout efx_filter_spec_t *spec,
+ __out efx_filter_spec_t *spec,
__in efx_txq_t *etp)
{
EFSYS_ASSERT3P(spec, !=, NULL);
@@ -324,7 +327,7 @@ efx_filter_spec_init_tx(
/*
* Specify IPv4 host, transport protocol and port in a filter specification
*/
-__checkReturn int
+__checkReturn efx_rc_t
efx_filter_spec_set_ipv4_local(
__inout efx_filter_spec_t *spec,
__in uint8_t proto,
@@ -346,7 +349,7 @@ efx_filter_spec_set_ipv4_local(
/*
* Specify IPv4 hosts, transport protocol and ports in a filter specification
*/
-__checkReturn int
+__checkReturn efx_rc_t
efx_filter_spec_set_ipv4_full(
__inout efx_filter_spec_t *spec,
__in uint8_t proto,
@@ -373,7 +376,7 @@ efx_filter_spec_set_ipv4_full(
/*
* Specify local Ethernet address and/or VID in filter specification
*/
-__checkReturn int
+__checkReturn efx_rc_t
efx_filter_spec_set_eth_local(
__inout efx_filter_spec_t *spec,
__in uint16_t vid,
@@ -399,7 +402,7 @@ efx_filter_spec_set_eth_local(
/*
* Specify matching otherwise-unmatched unicast in a filter specification
*/
-__checkReturn int
+__checkReturn efx_rc_t
efx_filter_spec_set_uc_def(
__inout efx_filter_spec_t *spec)
{
@@ -412,7 +415,7 @@ efx_filter_spec_set_uc_def(
/*
* Specify matching otherwise-unmatched multicast in a filter specification
*/
-__checkReturn int
+__checkReturn efx_rc_t
efx_filter_spec_set_mc_def(
__inout efx_filter_spec_t *spec)
{
@@ -442,12 +445,12 @@ efx_filter_spec_set_mc_def(
*/
#define FILTER_CTL_SRCH_MAX 200
-static __checkReturn int
+static __checkReturn efx_rc_t
falconsiena_filter_spec_from_gen_spec(
__out falconsiena_filter_spec_t *fs_spec,
__in efx_filter_spec_t *gen_spec)
{
- int rc;
+ efx_rc_t rc;
boolean_t is_full = B_FALSE;
if (gen_spec->efs_flags & EFX_FILTER_FLAG_TX)
@@ -591,7 +594,7 @@ fail3:
fail2:
EFSYS_PROBE(fail2);
fail1:
- EFSYS_PROBE1(fail1, int, rc);
+ EFSYS_PROBE1(fail1, efx_rc_t, rc);
return (rc);
}
@@ -909,14 +912,14 @@ falconsiena_filter_build(
return (key);
}
-static __checkReturn int
+static __checkReturn efx_rc_t
falconsiena_filter_push_entry(
__inout efx_nic_t *enp,
__in falconsiena_filter_type_t type,
__in int index,
__in efx_oword_t *eop)
{
- int rc;
+ efx_rc_t rc;
switch (type) {
case EFX_FS_FILTER_RX_TCP_FULL:
@@ -986,7 +989,7 @@ falconsiena_filter_equal(
return (B_TRUE);
}
-static __checkReturn int
+static __checkReturn efx_rc_t
falconsiena_filter_search(
__in falconsiena_filter_tbl_t *fsftp,
__in falconsiena_filter_spec_t *spec,
@@ -1069,14 +1072,14 @@ falconsiena_filter_tbl_clear(
EFSYS_UNLOCK(enp->en_eslp, state);
}
-static __checkReturn int
+static __checkReturn efx_rc_t
falconsiena_filter_init(
__in efx_nic_t *enp)
{
falconsiena_filter_t *fsfp;
falconsiena_filter_tbl_t *fsftp;
int tbl_id;
- int rc;
+ efx_rc_t rc;
EFSYS_KMEM_ALLOC(enp->en_esip, sizeof (falconsiena_filter_t), fsfp);
@@ -1158,7 +1161,7 @@ fail2:
falconsiena_filter_fini(enp);
fail1:
- EFSYS_PROBE1(fail1, int, rc);
+ EFSYS_PROBE1(fail1, efx_rc_t, rc);
return (rc);
}
@@ -1202,7 +1205,7 @@ falconsiena_filter_fini(
}
/* Restore filter state after a reset */
-static __checkReturn int
+static __checkReturn efx_rc_t
falconsiena_filter_restore(
__in efx_nic_t *enp)
{
@@ -1213,7 +1216,7 @@ falconsiena_filter_restore(
efx_oword_t filter;
int filter_idx;
int state;
- int rc;
+ efx_rc_t rc;
EFSYS_LOCK(enp->en_eslp, state);
@@ -1245,20 +1248,20 @@ fail2:
EFSYS_PROBE(fail2);
fail1:
- EFSYS_PROBE1(fail1, int, rc);
+ EFSYS_PROBE1(fail1, efx_rc_t, rc);
EFSYS_UNLOCK(enp->en_eslp, state);
return (rc);
}
-static __checkReturn int
+static __checkReturn efx_rc_t
falconsiena_filter_add(
__in efx_nic_t *enp,
__inout efx_filter_spec_t *spec,
__in boolean_t may_replace)
{
- int rc;
+ efx_rc_t rc;
falconsiena_filter_spec_t fs_spec;
falconsiena_filter_t *fsfp = enp->en_filter.ef_falconsiena_filter;
falconsiena_filter_tbl_id_t tbl_id;
@@ -1331,21 +1334,20 @@ fail2:
EFSYS_PROBE(fail2);
fail1:
- EFSYS_PROBE1(fail1, int, rc);
+ EFSYS_PROBE1(fail1, efx_rc_t, rc);
return (rc);
}
-static __checkReturn int
+static __checkReturn efx_rc_t
falconsiena_filter_delete(
__in efx_nic_t *enp,
__inout efx_filter_spec_t *spec)
{
- int rc;
+ efx_rc_t rc;
falconsiena_filter_spec_t fs_spec;
falconsiena_filter_t *fsfp = enp->en_filter.ef_falconsiena_filter;
falconsiena_filter_tbl_id_t tbl_id;
falconsiena_filter_tbl_t *fsftp;
- falconsiena_filter_spec_t *saved_spec;
efx_oword_t filter;
int filter_idx;
unsigned int depth;
@@ -1369,8 +1371,6 @@ falconsiena_filter_delete(
if (rc != 0)
goto fail2;
- saved_spec = &fsftp->fsft_spec[filter_idx];
-
falconsiena_filter_clear_entry(enp, fsftp, filter_idx);
if (fsftp->fsft_used == 0)
falconsiena_filter_reset_search_depth(fsfp, tbl_id);
@@ -1383,13 +1383,13 @@ fail2:
EFSYS_PROBE(fail2);
fail1:
- EFSYS_PROBE1(fail1, int, rc);
+ EFSYS_PROBE1(fail1, efx_rc_t, rc);
return (rc);
}
#define MAX_SUPPORTED 4
-static __checkReturn int
+static __checkReturn efx_rc_t
falconsiena_filter_supported_filters(
__in efx_nic_t *enp,
__out uint32_t *list,
@@ -1397,7 +1397,7 @@ falconsiena_filter_supported_filters(
{
int index = 0;
uint32_t rx_matches[MAX_SUPPORTED];
- int rc;
+ efx_rc_t rc;
if (list == NULL) {
rc = EINVAL;
OpenPOWER on IntegriCloud