summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorarybchik <arybchik@FreeBSD.org>2016-06-04 14:09:39 +0000
committerarybchik <arybchik@FreeBSD.org>2016-06-04 14:09:39 +0000
commit63eae8936e2cfa6ef206bd80e3f88a667cd66c54 (patch)
tree8d37ae0fe75cee9ec204e0420e0ab7640efb4e6b
parent4be80457589dc40c335fbc5e52980b0c6fb26919 (diff)
downloadFreeBSD-src-63eae8936e2cfa6ef206bd80e3f88a667cd66c54.zip
FreeBSD-src-63eae8936e2cfa6ef206bd80e3f88a667cd66c54.tar.gz
MFC r301075
sfxge(4): avoid code duplication in SW events definition Sponsored by: Solarflare Communications, Inc.
-rw-r--r--sys/dev/sfxge/sfxge.h19
-rw-r--r--sys/dev/sfxge/sfxge_ev.c14
-rw-r--r--sys/dev/sfxge/sfxge_rx.c2
3 files changed, 16 insertions, 19 deletions
diff --git a/sys/dev/sfxge/sfxge.h b/sys/dev/sfxge/sfxge.h
index 73c4d05..9233e9c 100644
--- a/sys/dev/sfxge/sfxge.h
+++ b/sys/dev/sfxge/sfxge.h
@@ -119,18 +119,15 @@
#define SFXGE_MAGIC_DMAQ_LABEL_MASK \
((1 << SFXGE_MAGIC_DMAQ_LABEL_WIDTH) - 1)
-#define SFXGE_MAGIC_RX_QFLUSH_DONE \
- (SFXGE_MAGIC_RESERVED | (1 << SFXGE_MAGIC_DMAQ_LABEL_WIDTH))
-
-#define SFXGE_MAGIC_RX_QFLUSH_FAILED \
- (SFXGE_MAGIC_RESERVED | (2 << SFXGE_MAGIC_DMAQ_LABEL_WIDTH))
-
-#define SFXGE_MAGIC_RX_QREFILL \
- (SFXGE_MAGIC_RESERVED | (3 << SFXGE_MAGIC_DMAQ_LABEL_WIDTH))
-
-#define SFXGE_MAGIC_TX_QFLUSH_DONE \
- (SFXGE_MAGIC_RESERVED | (4 << SFXGE_MAGIC_DMAQ_LABEL_WIDTH))
+enum sfxge_sw_ev {
+ SFXGE_SW_EV_RX_QFLUSH_DONE = 1,
+ SFXGE_SW_EV_RX_QFLUSH_FAILED,
+ SFXGE_SW_EV_RX_QREFILL,
+ SFXGE_SW_EV_TX_QFLUSH_DONE,
+};
+#define SFXGE_SW_EV_MAGIC(_sw_ev) \
+ (SFXGE_MAGIC_RESERVED | ((_sw_ev) << SFXGE_MAGIC_DMAQ_LABEL_WIDTH))
enum sfxge_evq_state {
SFXGE_EVQ_UNINITIALIZED = 0,
diff --git a/sys/dev/sfxge/sfxge_ev.c b/sys/dev/sfxge/sfxge_ev.c
index bc2dca7..a9c787b 100644
--- a/sys/dev/sfxge/sfxge_ev.c
+++ b/sys/dev/sfxge/sfxge_ev.c
@@ -225,7 +225,7 @@ sfxge_ev_rxq_flush_done(void *arg, uint32_t rxq_index)
label = 0;
KASSERT((label & SFXGE_MAGIC_DMAQ_LABEL_MASK) == label,
("(label & SFXGE_MAGIC_DMAQ_LABEL_MASK) != level"));
- magic = SFXGE_MAGIC_RX_QFLUSH_DONE | label;
+ magic = SFXGE_SW_EV_MAGIC(SFXGE_SW_EV_RX_QFLUSH_DONE) | label;
KASSERT(evq->init_state == SFXGE_EVQ_STARTED,
("evq not started"));
@@ -259,7 +259,7 @@ sfxge_ev_rxq_flush_failed(void *arg, uint32_t rxq_index)
label = 0;
KASSERT((label & SFXGE_MAGIC_DMAQ_LABEL_MASK) == label,
("(label & SFXGE_MAGIC_DMAQ_LABEL_MASK) != label"));
- magic = SFXGE_MAGIC_RX_QFLUSH_FAILED | label;
+ magic = SFXGE_SW_EV_MAGIC(SFXGE_SW_EV_RX_QFLUSH_FAILED) | label;
KASSERT(evq->init_state == SFXGE_EVQ_STARTED,
("evq not started"));
@@ -350,7 +350,7 @@ sfxge_ev_txq_flush_done(void *arg, uint32_t txq_index)
label = txq->type;
KASSERT((label & SFXGE_MAGIC_DMAQ_LABEL_MASK) == label,
("(label & SFXGE_MAGIC_DMAQ_LABEL_MASK) != label"));
- magic = SFXGE_MAGIC_TX_QFLUSH_DONE | label;
+ magic = SFXGE_SW_EV_MAGIC(SFXGE_SW_EV_TX_QFLUSH_DONE) | label;
KASSERT(evq->init_state == SFXGE_EVQ_STARTED,
("evq not started"));
@@ -375,19 +375,19 @@ sfxge_ev_software(void *arg, uint16_t magic)
magic &= ~SFXGE_MAGIC_DMAQ_LABEL_MASK;
switch (magic) {
- case SFXGE_MAGIC_RX_QFLUSH_DONE:
+ case SFXGE_SW_EV_MAGIC(SFXGE_SW_EV_RX_QFLUSH_DONE):
sfxge_rx_qflush_done(sfxge_get_rxq_by_label(evq, label));
break;
- case SFXGE_MAGIC_RX_QFLUSH_FAILED:
+ case SFXGE_SW_EV_MAGIC(SFXGE_SW_EV_RX_QFLUSH_FAILED):
sfxge_rx_qflush_failed(sfxge_get_rxq_by_label(evq, label));
break;
- case SFXGE_MAGIC_RX_QREFILL:
+ case SFXGE_SW_EV_MAGIC(SFXGE_SW_EV_RX_QREFILL):
sfxge_rx_qrefill(sfxge_get_rxq_by_label(evq, label));
break;
- case SFXGE_MAGIC_TX_QFLUSH_DONE: {
+ case SFXGE_SW_EV_MAGIC(SFXGE_SW_EV_TX_QFLUSH_DONE): {
struct sfxge_txq *txq = sfxge_get_txq_by_label(evq, label);
KASSERT(txq != NULL, ("txq == NULL"));
diff --git a/sys/dev/sfxge/sfxge_rx.c b/sys/dev/sfxge/sfxge_rx.c
index 55bfbd5..54dccea 100644
--- a/sys/dev/sfxge/sfxge_rx.c
+++ b/sys/dev/sfxge/sfxge_rx.c
@@ -184,7 +184,7 @@ sfxge_rx_post_refill(void *arg)
label = 0;
KASSERT((label & SFXGE_MAGIC_DMAQ_LABEL_MASK) == label,
("(label & SFXGE_MAGIC_DMAQ_LABEL_MASK) != level"));
- magic = SFXGE_MAGIC_RX_QREFILL | label;
+ magic = SFXGE_SW_EV_MAGIC(SFXGE_SW_EV_RX_QREFILL) | label;
/* This is guaranteed due to the start/stop order of rx and ev */
KASSERT(evq->init_state == SFXGE_EVQ_STARTED,
OpenPOWER on IntegriCloud