Lines Matching refs:pq
128 #define PKTQ_PREC_ITER(pq, prec) for (prec = (pq)->num_prec - 1; prec >= 0; prec--) argument
196 extern void pktq_filter(struct pktq *pq, pktq_filter_t fn, void* arg,
199 extern void pktq_pfilter(struct pktq *pq, int prec, pktq_filter_t fn, void* arg,
206 #define pktqprec_max_pkts(pq, prec) ((pq)->q[prec].max_pkts) argument
207 #define pktqprec_n_pkts(pq, prec) ((pq)->q[prec].n_pkts) argument
208 #define pktqprec_empty(pq, prec) ((pq)->q[prec].n_pkts == 0) argument
209 #define pktqprec_peek(pq, prec) ((pq)->q[prec].head) argument
210 #define pktqprec_peek_tail(pq, prec) ((pq)->q[prec].tail) argument
211 #define spktq_peek_tail(pq) ((pq)->q.tail) argument
213 extern int pktqprec_avail_pkts(struct pktq *pq, int prec);
214 extern bool pktqprec_full(struct pktq *pq, int prec);
216 #define pktqprec_avail_pkts(pq, prec) ((pq)->q[prec].max_pkts - (pq)->q[prec].n_pkts) argument
217 #define pktqprec_full(pq, prec) ((pq)->q[prec].n_pkts >= (pq)->q[prec].max_pkts) argument
220 extern void pktq_append(struct pktq *pq, int prec, struct spktq *list);
222 extern void pktq_prepend(struct pktq *pq, int prec, struct spktq *list);
224 extern void *pktq_penq(struct pktq *pq, int prec, void *p);
225 extern void *pktq_penq_head(struct pktq *pq, int prec, void *p);
226 extern void *pktq_pdeq(struct pktq *pq, int prec);
227 extern void *pktq_pdeq_prev(struct pktq *pq, int prec, void *prev_p);
228 extern void *pktq_pdeq_with_fn(struct pktq *pq, int prec, ifpkt_cb_t fn, int arg);
229 extern void *pktq_pdeq_tail(struct pktq *pq, int prec);
231 extern bool pktq_pdel(struct pktq *pq, void *p, int prec);
243 extern int pktq_mlen(struct pktq *pq, uint prec_bmp);
244 extern void *pktq_mdeq(struct pktq *pq, uint prec_bmp, int *prec_out);
245 extern void *pktq_mpeek(struct pktq *pq, uint prec_bmp, int *prec_out);
249 #define pktq_n_pkts_tot(pq) ((int)(pq)->n_pkts_tot) argument
250 #define pktq_max(pq) ((int)(pq)->max_pkts) argument
251 #define pktq_empty(pq) ((pq)->n_pkts_tot == 0) argument
258 extern int pktq_avail(struct pktq *pq);
259 extern bool pktq_full(struct pktq *pq);
263 #define pktq_avail(pq) ((int)((pq)->max_pkts - (pq)->n_pkts_tot)) argument
264 #define pktq_full(pq) ((pq)->n_pkts_tot >= (pq)->max_pkts) argument
270 #define pktenq(pq, p) pktq_penq((pq), 0, (p)) argument
271 #define pktenq_head(pq, p) pktq_penq_head((pq), 0, (p)) argument
272 #define pktdeq(pq) pktq_pdeq((pq), 0) argument
273 #define pktdeq_tail(pq) pktq_pdeq_tail((pq), 0) argument
274 #define pktqflush(osh, pq, dir) pktq_pflush(osh, (pq), 0, (dir)) argument
275 #define pktqinit(pq, max_pkts) pktq_init((pq), 1, (max_pkts)) argument
276 #define pktqdeinit(pq) pktq_deinit((pq)) argument
277 #define pktqavail(pq) pktq_avail((pq)) argument
278 #define pktqfull(pq) pktq_full((pq)) argument
279 #define pktqfilter(pq, fltr, fltr_ctx, defer, defer_ctx, flush, flush_ctx) \ argument
280 pktq_pfilter((pq), 0, (fltr), (fltr_ctx), (defer), (defer_ctx), (flush), (flush_ctx))
295 extern bool pktq_init(struct pktq *pq, int num_prec, uint max_pkts);
296 extern bool pktq_deinit(struct pktq *pq);
302 extern void pktq_set_max_plen(struct pktq *pq, int prec, uint max_pkts);
305 extern void *pktq_deq(struct pktq *pq, int *prec_out);
306 extern void *pktq_deq_tail(struct pktq *pq, int *prec_out);
307 extern void *pktq_peek(struct pktq *pq, int *prec_out);
309 extern void *pktq_peek_tail(struct pktq *pq, int *prec_out);
312 extern void pktq_flush(osl_t *osh, struct pktq *pq, bool dir);
319 extern void pktq_pflush(osl_t *osh, struct pktq *pq, int prec, bool dir);