Lines Matching refs:pq
138 #define PKTQ_PREC_ITER(pq, prec) for (prec = (pq)->num_prec - 1; prec >= 0; prec--) argument
206 extern void pktq_filter(struct pktq *pq, pktq_filter_t fn, void* arg,
209 extern void pktq_pfilter(struct pktq *pq, int prec, pktq_filter_t fn, void* arg,
216 #define pktqprec_max_pkts(pq, prec) ((pq)->q[prec].max_pkts) argument
217 #define pktqprec_n_pkts(pq, prec) ((pq)->q[prec].n_pkts) argument
218 #define pktqprec_empty(pq, prec) ((pq)->q[prec].n_pkts == 0) argument
219 #define pktqprec_peek(pq, prec) ((pq)->q[prec].head) argument
220 #define pktqprec_peek_tail(pq, prec) ((pq)->q[prec].tail) argument
221 #define spktq_peek_tail(pq) ((pq)->q.tail) argument
223 extern int pktqprec_avail_pkts(struct pktq *pq, int prec);
224 extern bool pktqprec_full(struct pktq *pq, int prec);
226 #define pktqprec_avail_pkts(pq, prec) ((pq)->q[prec].max_pkts - (pq)->q[prec].n_pkts) argument
227 #define pktqprec_full(pq, prec) ((pq)->q[prec].n_pkts >= (pq)->q[prec].max_pkts) argument
230 extern void pktq_append(struct pktq *pq, int prec, struct spktq *list);
232 extern void pktq_prepend(struct pktq *pq, int prec, struct spktq *list);
234 extern void *pktq_penq(struct pktq *pq, int prec, void *p);
235 extern void *pktq_penq_head(struct pktq *pq, int prec, void *p);
236 extern void *pktq_pdeq(struct pktq *pq, int prec);
237 extern void *pktq_pdeq_prev(struct pktq *pq, int prec, void *prev_p);
238 extern void *pktq_pdeq_with_fn(struct pktq *pq, int prec, ifpkt_cb_t fn, int arg);
239 extern void *pktq_pdeq_tail(struct pktq *pq, int prec);
241 extern bool pktq_pdel(struct pktq *pq, void *p, int prec);
251 extern int pktq_mlen(struct pktq *pq, uint prec_bmp);
252 extern void *pktq_mdeq(struct pktq *pq, uint prec_bmp, int *prec_out);
253 extern void *pktq_mpeek(struct pktq *pq, uint prec_bmp, int *prec_out);
257 #define pktq_n_pkts_tot(pq) ((int)(pq)->n_pkts_tot) argument
258 #define pktq_max(pq) ((int)(pq)->max_pkts) argument
259 #define pktq_empty(pq) ((pq)->n_pkts_tot == 0) argument
266 extern int pktq_avail(struct pktq *pq);
267 extern bool pktq_full(struct pktq *pq);
271 #define pktq_avail(pq) ((int)((pq)->max_pkts - (pq)->n_pkts_tot)) argument
272 #define pktq_full(pq) ((pq)->n_pkts_tot >= (pq)->max_pkts) argument
278 #define pktenq(pq, p) pktq_penq((pq), 0, (p)) argument
279 #define pktenq_head(pq, p) pktq_penq_head((pq), 0, (p)) argument
280 #define pktdeq(pq) pktq_pdeq((pq), 0) argument
281 #define pktdeq_tail(pq) pktq_pdeq_tail((pq), 0) argument
282 #define pktqflush(osh, pq, dir) pktq_pflush(osh, (pq), 0, (dir)) argument
283 #define pktqinit(pq, max_pkts) pktq_init((pq), 1, (max_pkts)) argument
284 #define pktqdeinit(pq) pktq_deinit((pq)) argument
285 #define pktqavail(pq) pktq_avail((pq)) argument
286 #define pktqfull(pq) pktq_full((pq)) argument
287 #define pktqfilter(pq, fltr, fltr_ctx, defer, defer_ctx, flush, flush_ctx) \ argument
288 pktq_pfilter((pq), 0, (fltr), (fltr_ctx), (defer), (defer_ctx), (flush), (flush_ctx))
303 extern bool pktq_init(struct pktq *pq, int num_prec, int max_pkts);
304 extern bool pktq_deinit(struct pktq *pq);
308 extern void pktq_set_max_plen(struct pktq *pq, int prec, int max_pkts);
311 extern void *pktq_deq(struct pktq *pq, int *prec_out);
312 extern void *pktq_deq_tail(struct pktq *pq, int *prec_out);
313 extern void *pktq_peek(struct pktq *pq, int *prec_out);
315 extern void *pktq_peek_tail(struct pktq *pq, int *prec_out);
318 extern void pktq_flush(osl_t *osh, struct pktq *pq, bool dir);
321 extern void pktq_pflush(osl_t *osh, struct pktq *pq, int prec, bool dir);