Lines Matching +full:rx +full:- +full:eq
1 /*-
2 * SPDX-License-Identifier: BSD-3-Clause
34 * freebsd-drivers@emulex.com
109 #define IS_BE(sc) (((sc->flags & OCE_FLAGS_BE3) | \
110 (sc->flags & OCE_FLAGS_BE2))? 1:0)
111 #define IS_BE3(sc) (sc->flags & OCE_FLAGS_BE3)
112 #define IS_BE2(sc) (sc->flags & OCE_FLAGS_BE2)
113 #define IS_XE201(sc) ((sc->flags & OCE_FLAGS_XE201) ? 1:0)
114 #define HAS_A0_CHIP(sc) ((sc->flags & OCE_FLAGS_HAS_A0_CHIP) ? 1:0)
115 #define IS_SH(sc) ((sc->flags & OCE_FLAGS_SH) ? 1 : 0)
117 #define is_be_mode_mc(sc) ((sc->function_mode & FNM_FLEX10_MODE) || \
118 (sc->function_mode & FNM_UMC_MODE) || \
119 (sc->function_mode & FNM_VNIC_MODE))
121 #define IS_PROFILE_SUPER_NIC(sc) (sc->function_caps & OCE_FUNCTION_CAPS_SUPER_NIC)
134 #define is_rss_enabled(sc) ((sc->function_caps & FNC_RSS) && !is_be_mode_mc(sc))
144 #define OCE_MAX_CQ_EQ 8 /* Max CQ that can attached to an EQ */
151 #define OCE_MAX_MTU (OCE_MAX_JUMBO_FRAME_SIZE - \
152 ETHER_VLAN_ENCAP_LEN - \
160 #define OCE_MAX_TSO_SIZE (65535 - ETHER_HDR_LEN)
212 for (i = 0, wq = sc->wq[0]; i < sc->nwqs; i++, wq = sc->wq[i])
214 for (i = 0, rq = sc->rq[0]; i < sc->nrqs; i++, rq = sc->rq[i])
216 for (i = 0, rq = sc->rq[i + 1]; i < (sc->nrqs - 1); \
217 i++, rq = sc->rq[i + 1])
218 #define for_all_evnt_queues(sc, eq, i) \ argument
219 for (i = 0, eq = sc->eq[0]; i < sc->neqs; i++, eq = sc->eq[i])
221 for (i = 0, cq = sc->cq[0]; i < sc->ncqs; i++, cq = sc->cq[i])
269 struct oce_eq *eq; /* pointer to the connected EQ */ member
279 : (((_START) + (_STEP)) - (_END)))
281 #define DBUF_PA(obj) ((obj)->addr)
282 #define DBUF_VA(obj) ((obj)->ptr)
283 #define DBUF_TAG(obj) ((obj)->tag)
284 #define DBUF_MAP(obj) ((obj)->map)
288 #define RING_NUM_PENDING(ring) ring->num_used
289 #define RING_FULL(ring) (ring->num_used == ring->num_items)
290 #define RING_EMPTY(ring) (ring->num_used == 0)
292 (uint32_t)(ring->num_items - ring->num_used)
294 ring->cidx = GET_Q_NEXT(ring->cidx, n, ring->num_items)
296 ring->pidx = GET_Q_NEXT(ring->pidx, n, ring->num_items)
299 (void*)((type *)DBUF_VA(&ring->dma) + ring->cidx)
301 (uint64_t)(((type *)DBUF_PA(ring->dbuf)) + ring->cidx)
303 (void *)(((type *)DBUF_VA(&ring->dma)) + ring->pidx)
305 (uint64_t)(((type *)DBUF_PA(ring->dbuf)) + ring->pidx)
307 #define OCE_DMAPTR(o, c) ((c *)(o)->ptr)
494 struct oce_rx_stats rx; member
533 strncpy((lock)->name, (desc), MAX_LOCK_DESC_LEN); \
534 (lock)->name[MAX_LOCK_DESC_LEN] = '\0'; \
535 mtx_init(&(lock)->mutex, (lock)->name, NULL, MTX_DEF); \
538 if (mtx_initialized(&(lock)->mutex))\
539 mtx_destroy(&(lock)->mutex)
540 #define TRY_LOCK(lock) mtx_trylock(&(lock)->mutex)
541 #define LOCK(lock) mtx_lock(&(lock)->mutex)
542 #define LOCKED(lock) mtx_owned(&(lock)->mutex)
543 #define UNLOCK(lock) mtx_unlock(&(lock)->mutex)
631 struct oce_eq *eq; member
845 struct oce_rq *rq[OCE_MAX_RQ]; /* RX work queues */
847 struct oce_eq *eq[OCE_MAX_EQ]; /* Event queues */ member
902 ((IS_BE(sc)) ? (bus_space_read_4((sc)->space##_btag, \
903 (sc)->space##_bhandle,o)) \
904 : (bus_space_read_4((sc)->devcfg_btag, \
905 (sc)->devcfg_bhandle,o)))
907 ((IS_BE(sc) || IS_SH(sc)) ? (bus_space_read_4((sc)->space##_btag, \
908 (sc)->space##_bhandle,o)) \
909 : (bus_space_read_4((sc)->devcfg_btag, \
910 (sc)->devcfg_bhandle,o)))
912 ((IS_BE(sc) || IS_SH(sc)) ? (bus_space_read_2((sc)->space##_btag, \
913 (sc)->space##_bhandle,o)) \
914 : (bus_space_read_2((sc)->devcfg_btag, \
915 (sc)->devcfg_bhandle,o)))
917 ((IS_BE(sc) || IS_SH(sc)) ? (bus_space_read_1((sc)->space##_btag, \
918 (sc)->space##_bhandle,o)) \
919 : (bus_space_read_1((sc)->devcfg_btag, \
920 (sc)->devcfg_bhandle,o)))
923 ((IS_BE(sc)) ? (bus_space_write_4((sc)->space##_btag, \
924 (sc)->space##_bhandle,o,v)) \
925 : (bus_space_write_4((sc)->devcfg_btag, \
926 (sc)->devcfg_bhandle,o,v)))
928 ((IS_BE(sc) || IS_SH(sc)) ? (bus_space_write_4((sc)->space##_btag, \
929 (sc)->space##_bhandle,o,v)) \
930 : (bus_space_write_4((sc)->devcfg_btag, \
931 (sc)->devcfg_bhandle,o,v)))
933 ((IS_BE(sc) || IS_SH(sc)) ? (bus_space_write_2((sc)->space##_btag, \
934 (sc)->space##_bhandle,o,v)) \
935 : (bus_space_write_2((sc)->devcfg_btag, \
936 (sc)->devcfg_bhandle,o,v)))
938 ((IS_BE(sc) || IS_SH(sc)) ? (bus_space_write_1((sc)->space##_btag, \
939 (sc)->space##_bhandle,o,v)) \
940 : (bus_space_write_1((sc)->devcfg_btag, \
941 (sc)->devcfg_bhandle,o,v)))
947 #define oce_dma_sync(d, f) bus_dmamap_sync((d)->tag, (d)->map, f)
982 void oce_drain_eq(struct oce_eq *eq);
1060 int oce_mbox_create_eq(struct oce_eq *eq);
1131 #define IF_LRO_ENABLED(sc) ((if_getcapenable((sc)->ifp) & IFCAP_LRO) ? 1:0)
1132 #define IF_LSO_ENABLED(sc) ((if_getcapenable((sc)->ifp) & IFCAP_TSO4) ? 1:0)
1133 #define IF_CSUM_ENABLED(sc) ((if_getcapenable((sc)->ifp) & IFCAP_HWCSUM) ? 1:0)
1174 #define IS_QNQ_OR_UMC(sc) ((sc->pvid && (sc->function_mode & FNM_UMC_MODE ))\
1175 || (sc->qnqid && (sc->function_mode & FNM_FLEX10_MODE)))
1204 ETHER_IS_MULTICAST(eh->ether_dhost) && \
1205 !ETHER_IS_BROADCAST(eh->ether_dhost))
1209 ETHER_IS_BROADCAST(eh->ether_dhost))
1217 (sc->bmc_filt_mask & (BMC_FILT_BROADCAST_ARP))
1220 (sc->bmc_filt_mask & BMC_FILT_BROADCAST_DHCP_CLIENT)
1223 (sc->bmc_filt_mask & BMC_FILT_BROADCAST_DHCP_SERVER)
1226 (sc->bmc_filt_mask & BMC_FILT_BROADCAST_NET_BIOS)
1229 (sc->bmc_filt_mask & \
1233 (sc->bmc_filt_mask & BMC_FILT_MULTICAST_IPV6_RA)
1236 (sc->bmc_filt_mask & BMC_FILT_MULTICAST_IPV6_RAS)
1239 (sc->bmc_filt_mask & BMC_FILT_BROADCAST)
1242 (sc->bmc_filt_mask & BMC_FILT_MULTICAST)
1244 #define is_os2bmc_enabled(sc) (sc->flags & OCE_FLAGS_OS2BMC)