Lines Matching defs:cb
139 struct cdnr_block *cb;
163 cb = acc_classify(&top->tc_classifier, m, af);
164 if (cb != NULL)
165 tca = &cb->cb_action;
197 cb = tca->tca_next;
198 tca = (*cb->cb_input)(cb, &pktinfo);
223 struct cdnr_block *cb;
225 cb = (struct cdnr_block *)handle;
226 if (handle != ALIGN(cb))
229 if (cb == NULL || cb->cb_handle != handle)
231 return cb;
235 cdnr_cb2handle(struct cdnr_block *cb)
237 return (cb->cb_handle);
244 struct cdnr_block *cb;
267 cb = malloc(size, M_DEVBUF, M_WAITOK|M_ZERO);
268 if (cb == NULL)
271 cb->cb_len = size;
272 cb->cb_type = type;
273 cb->cb_ref = 0;
274 cb->cb_handle = (u_long)cb;
276 cb->cb_top = (struct top_cdnr *)cb;
278 cb->cb_top = top;
285 cb->cb_action.tca_code = TCACODE_NEXT;
286 cb->cb_action.tca_next = cb;
287 cb->cb_input = input_func;
289 cb->cb_action.tca_code = TCACODE_NONE;
293 LIST_INSERT_HEAD(&top->tc_elements, cb, cb_next);
295 return ((void *)cb);
301 struct cdnr_block *cb = cblock;
304 acc_discard_filters(&cb->cb_top->tc_classifier, cb, 0);
307 if (cb->cb_top != cblock)
308 LIST_REMOVE(cb, cb_next);
310 free(cb, M_DEVBUF);
317 generic_element_destroy(struct cdnr_block *cb)
321 switch (cb->cb_type) {
323 error = top_destroy((struct top_cdnr *)cb);
326 error = element_destroy(cb);
329 error = tbm_destroy((struct tbmeter *)cb);
332 error = trtcm_destroy((struct trtcm *)cb);
335 error = tswtcm_destroy((struct tswtcm *)cb);
372 struct cdnr_block *cb;
376 cb = cdnr_handle2cb(ktca->tca_handle);
377 if (cb == NULL) {
382 ktca->tca_next = cb;
383 cb->cb_ref++;
393 struct cdnr_block *cb;
396 cb = tca->tca_next;
397 if (cb == NULL)
399 cb->cb_ref--;
429 struct cdnr_block *cb;
438 while ((cb = LIST_FIRST(&top->tc_elements)) != NULL) {
439 while (cb != NULL && cb->cb_ref > 0)
440 cb = LIST_NEXT(cb, cb_next);
441 if (cb != NULL)
442 generic_element_destroy(cb);
467 struct cdnr_block *cb;
472 if ((cb = cdnr_cballoc(top, TCETYPE_ELEMENT, NULL)) == NULL)
475 tca_import_action(&cb->cb_action, action);
477 return cb;
481 element_destroy(struct cdnr_block *cb)
483 if (cb->cb_ref > 0)
486 tca_invalidate_action(&cb->cb_action);
488 cdnr_cbdestroy(cb);
555 tbm_input(struct cdnr_block *cb, struct cdnr_pktinfo *pktinfo)
557 struct tbmeter *tbm = (struct tbmeter *)cb;
648 trtcm_input(struct cdnr_block *cb, struct cdnr_pktinfo *pktinfo)
650 struct trtcm *tcm = (struct trtcm *)cb;
773 tswtcm_input(struct cdnr_block *cb, struct cdnr_pktinfo *pktinfo)
775 struct tswtcm *tsw = (struct tswtcm *)cb;
867 struct cdnr_block *cb;
872 cb = element_create(top, &ap->action);
873 if (cb == NULL)
876 ap->cdnr_handle = cdnr_cb2handle(cb);
884 struct cdnr_block *cb;
889 if ((cb = cdnr_handle2cb(ap->cdnr_handle)) == NULL)
892 if (cb->cb_type != TCETYPE_ELEMENT)
893 return generic_element_destroy(cb);
895 return element_destroy(cb);
902 struct cdnr_block *cb;
907 if ((cb = cdnr_handle2cb(ap->cdnr_handle)) == NULL)
911 cb, &ap->filter_handle);
1006 struct cdnr_block *cb;
1008 if ((cb = cdnr_handle2cb(ap->cdnr_handle)) == NULL)
1011 if (cb->cb_type == TCETYPE_TRTCM) {
1012 struct trtcm *tcm = (struct trtcm *)cb;
1017 } else if (cb->cb_type == TCETYPE_TSWTCM) {
1018 struct tswtcm *tsw = (struct tswtcm *)cb;
1078 struct cdnr_block *cb;
1099 LIST_FOREACH(cb, &top->tc_elements, cb_next) {
1106 tce.tce_handle = cb->cb_handle;
1107 tce.tce_type = cb->cb_type;
1108 switch (cb->cb_type) {
1110 tbm = (struct tbmeter *)cb;
1115 tcm = (struct trtcm *)cb;
1121 tsw = (struct tswtcm *)cb;