Lines Matching defs:psq

108 ieee80211_psq_init(struct ieee80211_psq *psq, const char *name)
110 memset(psq, 0, sizeof(*psq));
111 psq->psq_maxlen = IEEE80211_PS_MAX_QUEUE;
112 IEEE80211_PSQ_INIT(psq, name); /* OS-dependent setup */
116 ieee80211_psq_cleanup(struct ieee80211_psq *psq)
119 psq_drain(psq); /* XXX should not be needed? */
121 KASSERT(psq->psq_len == 0, ("%d frames on ps q", psq->psq_len));
123 IEEE80211_PSQ_DESTROY(psq); /* OS-dependent cleanup */
132 struct ieee80211_psq *psq = &ni->ni_psq;
136 IEEE80211_PSQ_LOCK(psq);
137 qhead = &psq->psq_head[0];
144 KASSERT(psq->psq_len > 0, ("psq len %d", psq->psq_len));
145 psq->psq_len--;
148 if (m == NULL && qhead == &psq->psq_head[0]) {
150 qhead = &psq->psq_head[1];
154 *qlen = psq->psq_len;
155 IEEE80211_PSQ_UNLOCK(psq);
179 psq_drain(struct ieee80211_psq *psq)
185 IEEE80211_PSQ_LOCK(psq);
186 qlen = psq->psq_len;
187 qhead = &psq->psq_head[0];
195 if (qhead == &psq->psq_head[0]) { /* Algol-68 style for loop */
196 qhead = &psq->psq_head[1];
199 psq->psq_len = 0;
200 IEEE80211_PSQ_UNLOCK(psq);
228 struct ieee80211_psq *psq = &ni->ni_psq;
231 if (psq->psq_len != 0) {
238 IEEE80211_PSQ_LOCK(psq);
239 qhead = &psq->psq_head[0];
249 KASSERT(psq->psq_len > 0, ("psq len %d", psq->psq_len));
250 psq->psq_len--;
254 if (qhead == &psq->psq_head[0]) { /* Algol-68 style for loop */
255 qhead = &psq->psq_head[1];
260 IEEE80211_PSQ_UNLOCK(psq);
326 struct ieee80211_psq *psq = &ni->ni_psq;
332 IEEE80211_PSQ_LOCK(psq);
333 if (psq->psq_len >= psq->psq_maxlen) {
334 psq->psq_drops++;
335 IEEE80211_PSQ_UNLOCK(psq);
338 psq->psq_drops, psq->psq_len);
363 qhead = &psq->psq_head[0];
365 qhead = &psq->psq_head[1];
376 if (qhead == &psq->psq_head[1]) {
377 mh = psq->psq_head[0].head;
381 mh = psq->psq_head[1].head;
397 qlen = ++(psq->psq_len);
398 IEEE80211_PSQ_UNLOCK(psq);
418 struct ieee80211_psq *psq = &ni->ni_psq;
426 "flush ps queue, %u packets queued", psq->psq_len);
428 IEEE80211_PSQ_LOCK(psq);
429 qhead = &psq->psq_head[0]; /* 802.11 frames */
439 qhead = &psq->psq_head[1]; /* 802.3 frames */
447 psq->psq_len = 0;
448 IEEE80211_PSQ_UNLOCK(psq);
450 /* NB: do this outside the psq lock */