Lines Matching defs:ifq
164 altq_attach(struct ifaltq *ifq, int type, void *discipline,
169 IFQ_LOCK(ifq);
170 if (!ALTQ_IS_READY(ifq)) {
171 IFQ_UNLOCK(ifq);
175 ifq->altq_type = type;
176 ifq->altq_disc = discipline;
177 ifq->altq_enqueue = enqueue;
178 ifq->altq_dequeue = dequeue;
179 ifq->altq_request = request;
180 ifq->altq_flags &= (ALTQF_CANTCHANGE|ALTQF_ENABLED);
181 IFQ_UNLOCK(ifq);
186 altq_detach(struct ifaltq *ifq)
188 IFQ_LOCK(ifq);
190 if (!ALTQ_IS_READY(ifq)) {
191 IFQ_UNLOCK(ifq);
194 if (ALTQ_IS_ENABLED(ifq)) {
195 IFQ_UNLOCK(ifq);
198 if (!ALTQ_IS_ATTACHED(ifq)) {
199 IFQ_UNLOCK(ifq);
203 ifq->altq_type = ALTQT_NONE;
204 ifq->altq_disc = NULL;
205 ifq->altq_enqueue = NULL;
206 ifq->altq_dequeue = NULL;
207 ifq->altq_request = NULL;
208 ifq->altq_flags &= ALTQF_CANTCHANGE;
210 IFQ_UNLOCK(ifq);
215 altq_enable(struct ifaltq *ifq)
219 IFQ_LOCK(ifq);
221 if (!ALTQ_IS_READY(ifq)) {
222 IFQ_UNLOCK(ifq);
225 if (ALTQ_IS_ENABLED(ifq)) {
226 IFQ_UNLOCK(ifq);
231 IFQ_PURGE_NOLOCK(ifq);
232 ASSERT(ifq->ifq_len == 0);
233 ifq->ifq_drv_maxlen = 0; /* disable bulk dequeue */
234 ifq->altq_flags |= ALTQF_ENABLED;
237 IFQ_UNLOCK(ifq);
242 altq_disable(struct ifaltq *ifq)
246 IFQ_LOCK(ifq);
247 if (!ALTQ_IS_ENABLED(ifq)) {
248 IFQ_UNLOCK(ifq);
253 IFQ_PURGE_NOLOCK(ifq);
254 ASSERT(ifq->ifq_len == 0);
255 ifq->altq_flags &= ~(ALTQF_ENABLED);
258 IFQ_UNLOCK(ifq);
285 tbr_dequeue(struct ifaltq *ifq, int op)
292 IFQ_LOCK_ASSERT(ifq);
293 tbr = ifq->altq_tbr;
315 if (ALTQ_IS_ENABLED(ifq))
316 m = (*ifq->altq_dequeue)(ifq, op);
319 _IF_POLL(ifq, m);
321 _IF_DEQUEUE(ifq, m);
335 tbr_set(struct ifaltq *ifq, struct tb_profile *profile)
349 IFQ_LOCK(ifq);
352 if ((tbr = ifq->altq_tbr) == NULL) {
353 IFQ_UNLOCK(ifq);
356 ifq->altq_tbr = NULL;
358 IFQ_UNLOCK(ifq);
364 IFQ_UNLOCK(ifq);
391 otbr = ifq->altq_tbr;
392 ifq->altq_tbr = tbr; /* set the new tbr */
402 IFQ_UNLOCK(ifq);