Go to the source code of this file.
Defines | |
#define | QUEUE_MACRO_DEBUG 0 |
#define | QMD_TRACE_ELEM(elem) |
#define | QMD_TRACE_HEAD(head) |
#define | TRACEBUF |
#define | TRASHIT(x) |
#define | SLIST_HEAD(name, type) |
#define | SLIST_HEAD_INITIALIZER(head) { NULL } |
#define | SLIST_ENTRY(type) |
#define | SLIST_EMPTY(head) ((head)->slh_first == NULL) |
#define | SLIST_FIRST(head) ((head)->slh_first) |
#define | SLIST_FOREACH(var, head, field) |
#define | SLIST_FOREACH_PREVPTR(var, varp, head, field) |
#define | SLIST_INIT(head) |
#define | SLIST_INSERT_AFTER(slistelm, elm, field) |
#define | SLIST_INSERT_HEAD(head, elm, field) |
#define | SLIST_NEXT(elm, field) ((elm)->field.sle_next) |
#define | SLIST_REMOVE(head, elm, type, field) |
#define | SLIST_REMOVE_HEAD(head, field) |
#define | STAILQ_HEAD(name, type) |
#define | STAILQ_HEAD_INITIALIZER(head) { NULL, &(head).stqh_first } |
#define | STAILQ_ENTRY(type) |
#define | STAILQ_CONCAT(head1, head2) |
#define | STAILQ_EMPTY(head) ((head)->stqh_first == NULL) |
#define | STAILQ_FIRST(head) ((head)->stqh_first) |
#define | STAILQ_FOREACH(var, head, field) |
#define | STAILQ_INIT(head) |
#define | STAILQ_INSERT_AFTER(head, tqelm, elm, field) |
#define | STAILQ_INSERT_HEAD(head, elm, field) |
#define | STAILQ_INSERT_TAIL(head, elm, field) |
#define | STAILQ_LAST(head, type, field) |
#define | STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) |
#define | STAILQ_REMOVE(head, elm, type, field) |
#define | STAILQ_REMOVE_HEAD(head, field) |
#define | STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) |
#define | ATH_LIST_HEAD(name, type) |
#define | LIST_HEAD_INITIALIZER(head) { NULL } |
#define | LIST_ENTRY(type) |
#define | LIST_EMPTY(head) ((head)->lh_first == NULL) |
#define | LIST_FIRST(head) ((head)->lh_first) |
#define | LIST_FOREACH(var, head, field) |
#define | LIST_INIT(head) |
#define | LIST_INSERT_AFTER(listelm, elm, field) |
#define | LIST_INSERT_BEFORE(listelm, elm, field) |
#define | LIST_INSERT_HEAD(head, elm, field) |
#define | LIST_NEXT(elm, field) ((elm)->field.le_next) |
#define | LIST_REMOVE(elm, field) |
#define | TAILQ_HEAD(name, type) |
#define | TAILQ_HEAD_INITIALIZER(head) { NULL, &(head).tqh_first } |
#define | TAILQ_ENTRY(type) |
#define | TAILQ_CONCAT(head1, head2, field) |
#define | TAILQ_EMPTY(head) ((head)->tqh_first == NULL) |
#define | TAILQ_FIRST(head) ((head)->tqh_first) |
#define | TAILQ_FOREACH(var, head, field) |
#define | TAILQ_FOREACH_SAFE(var, head, field, tvar) |
#define | TAILQ_FOREACH_REVERSE(var, head, headname, field) |
#define | TAILQ_INIT(head) |
#define | TAILQ_INSERT_AFTER(head, listelm, elm, field) |
#define | TAILQ_INSERT_BEFORE(listelm, elm, field) |
#define | TAILQ_INSERT_HEAD(head, elm, field) |
#define | TAILQ_INSERT_TAIL(head, elm, field) |
#define | TAILQ_LAST(head, headname) (*(((struct headname *)((head)->tqh_last))->tqh_last)) |
#define | TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) |
#define | TAILQ_PREV(elm, headname, field) (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) |
#define | TAILQ_REMOVE(head, elm, field) |
#define SLIST_HEAD | ( | name, | |||
type | ) |
#define SLIST_ENTRY | ( | type | ) |
#define SLIST_FOREACH | ( | var, | |||
head, | |||||
field | ) |
Value:
for ((var) = SLIST_FIRST((head)); \ (var); \ (var) = SLIST_NEXT((var), field))
#define SLIST_FOREACH_PREVPTR | ( | var, | |||
varp, | |||||
head, | |||||
field | ) |
Value:
for ((varp) = &SLIST_FIRST((head)); \ ((var) = *(varp)) != NULL; \ (varp) = &SLIST_NEXT((var), field))
#define SLIST_INIT | ( | head | ) |
#define SLIST_INSERT_AFTER | ( | slistelm, | |||
elm, | |||||
field | ) |
Value:
do { \ SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \ SLIST_NEXT((slistelm), field) = (elm); \ } while (0)
#define SLIST_INSERT_HEAD | ( | head, | |||
elm, | |||||
field | ) |
Value:
do { \ SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \ SLIST_FIRST((head)) = (elm); \ } while (0)
#define SLIST_REMOVE | ( | head, | |||
elm, | |||||
type, | |||||
field | ) |
Value:
do { \ if (SLIST_FIRST((head)) == (elm)) { \ SLIST_REMOVE_HEAD((head), field); \ } \ else { \ struct type *curelm = SLIST_FIRST((head)); \ while (SLIST_NEXT(curelm, field) != (elm)) \ curelm = SLIST_NEXT(curelm, field); \ SLIST_NEXT(curelm, field) = \ SLIST_NEXT(SLIST_NEXT(curelm, field), field); \ } \ } while (0)
#define SLIST_REMOVE_HEAD | ( | head, | |||
field | ) |
Value:
do { \ SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \ } while (0)
#define STAILQ_HEAD | ( | name, | |||
type | ) |
#define STAILQ_HEAD_INITIALIZER | ( | head | ) | { NULL, &(head).stqh_first } |
#define STAILQ_ENTRY | ( | type | ) |
#define STAILQ_CONCAT | ( | head1, | |||
head2 | ) |
Value:
do { \ if (!STAILQ_EMPTY((head2))) { \ *(head1)->stqh_last = (head2)->stqh_first; \ (head1)->stqh_last = (head2)->stqh_last; \ STAILQ_INIT((head2)); \ } \ } while (0)
#define STAILQ_FOREACH | ( | var, | |||
head, | |||||
field | ) |
Value:
for((var) = STAILQ_FIRST((head)); \ (var); \ (var) = STAILQ_NEXT((var), field))
#define STAILQ_INIT | ( | head | ) |
Value:
do { \ STAILQ_FIRST((head)) = NULL; \ (head)->stqh_last = &STAILQ_FIRST((head)); \ } while (0)
#define STAILQ_INSERT_AFTER | ( | head, | |||
tqelm, | |||||
elm, | |||||
field | ) |
Value:
do { \ if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ STAILQ_NEXT((tqelm), field) = (elm); \ } while (0)
#define STAILQ_INSERT_HEAD | ( | head, | |||
elm, | |||||
field | ) |
Value:
do { \ if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ STAILQ_FIRST((head)) = (elm); \ } while (0)
#define STAILQ_INSERT_TAIL | ( | head, | |||
elm, | |||||
field | ) |
Value:
do { \ STAILQ_NEXT((elm), field) = NULL; \ *(head)->stqh_last = (elm); \ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ } while (0)
#define STAILQ_LAST | ( | head, | |||
type, | |||||
field | ) |
Value:
(STAILQ_EMPTY((head)) ? \ NULL : \ ((struct type *) \ ((char *)((head)->stqh_last) - __offsetof(struct type, field))))
#define STAILQ_REMOVE | ( | head, | |||
elm, | |||||
type, | |||||
field | ) |
Value:
do { \ if (STAILQ_FIRST((head)) == (elm)) { \ STAILQ_REMOVE_HEAD((head), field); \ } \ else { \ struct type *curelm = STAILQ_FIRST((head)); \ while (STAILQ_NEXT(curelm, field) != (elm)) \ curelm = STAILQ_NEXT(curelm, field); \ if ((STAILQ_NEXT(curelm, field) = \ STAILQ_NEXT(STAILQ_NEXT(curelm, field), field)) == NULL)\ (head)->stqh_last = &STAILQ_NEXT((curelm), field);\ } \ } while (0)
#define STAILQ_REMOVE_HEAD | ( | head, | |||
field | ) |
Value:
do { \ if ((STAILQ_FIRST((head)) = \ STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \ (head)->stqh_last = &STAILQ_FIRST((head)); \ } while (0)
#define STAILQ_REMOVE_HEAD_UNTIL | ( | head, | |||
elm, | |||||
field | ) |
Value:
do { \ if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL) \ (head)->stqh_last = &STAILQ_FIRST((head)); \ } while (0)
#define ATH_LIST_HEAD | ( | name, | |||
type | ) |
#define LIST_ENTRY | ( | type | ) |
#define LIST_FOREACH | ( | var, | |||
head, | |||||
field | ) |
Value:
for ((var) = LIST_FIRST((head)); \ (var); \ (var) = LIST_NEXT((var), field))
#define LIST_INIT | ( | head | ) |
#define LIST_INSERT_AFTER | ( | listelm, | |||
elm, | |||||
field | ) |
#define LIST_INSERT_BEFORE | ( | listelm, | |||
elm, | |||||
field | ) |
#define LIST_INSERT_HEAD | ( | head, | |||
elm, | |||||
field | ) |
Value:
do { \ if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \ LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\ LIST_FIRST((head)) = (elm); \ (elm)->field.le_prev = &LIST_FIRST((head)); \ } while (0)
#define LIST_REMOVE | ( | elm, | |||
field | ) |
#define TAILQ_HEAD | ( | name, | |||
type | ) |
#define TAILQ_HEAD_INITIALIZER | ( | head | ) | { NULL, &(head).tqh_first } |
#define TAILQ_ENTRY | ( | type | ) |
#define TAILQ_CONCAT | ( | head1, | |||
head2, | |||||
field | ) |
Value:
do { \ if (!TAILQ_EMPTY(head2)) { \ *(head1)->tqh_last = (head2)->tqh_first; \ (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \ (head1)->tqh_last = (head2)->tqh_last; \ TAILQ_INIT((head2)); \ QMD_TRACE_HEAD(head); \ QMD_TRACE_HEAD(head2); \ } \ } while (0)
#define TAILQ_FIRST | ( | head | ) | ((head)->tqh_first) |
Definition at line 398 of file queue.h.
Referenced by get_is_crypto_attachfail(), get_is_crypto_badcipher(), get_is_crypto_ccmp(), get_is_crypto_delkey(), get_is_crypto_enmicfail(), get_is_crypto_keyfail(), get_is_crypto_nocipher(), get_is_crypto_nomem(), get_is_crypto_setkey_cipher(), get_is_crypto_setkey_nokey(), get_is_crypto_swfallback(), get_is_crypto_tkip(), get_is_crypto_tkipcm(), get_is_crypto_tkipdemic(), get_is_crypto_tkipenmic(), get_is_crypto_wep(), get_is_ibss_capmismatch(), get_is_ibss_norate(), get_is_node_timeout(), get_is_ps_badaid(), get_is_ps_qempty(), get_is_ps_unassoc(), get_is_rx_acl(), get_is_rx_ahdemo_mgt(), get_is_rx_assoc_badwpaie(), get_is_rx_assoc_bss(), get_is_rx_assoc_capmismatch(), get_is_rx_assoc_norate(), get_is_rx_assoc_notauth(), get_is_rx_auth_countermeasures(), get_is_rx_auth_fail(), get_is_rx_auth_unsupported(), get_is_rx_bad_auth(), get_is_rx_badchan(), get_is_rx_badcipher(), get_is_rx_badkeyid(), get_is_rx_badsubtype(), get_is_rx_badversion(), get_is_rx_beacon(), get_is_rx_ccmpformat(), get_is_rx_ccmpmic(), get_is_rx_ccmpreplay(), get_is_rx_chanmismatch(), get_is_rx_ctl(), get_is_rx_deauth(), get_is_rx_decap(), get_is_rx_decryptcrc(), get_is_rx_disassoc(), get_is_rx_dup(), get_is_rx_elem_missing(), get_is_rx_elem_toobig(), get_is_rx_elem_toosmall(), get_is_rx_elem_unknown(), get_is_rx_mcastecho(), get_is_rx_mgtdiscard(), get_is_rx_nobuf(), get_is_rx_nocipherctx(), get_is_rx_nodealloc(), get_is_rx_noprivacy(), get_is_rx_notassoc(), get_is_rx_rstoobig(), get_is_rx_ssidmismatch(), get_is_rx_tkipformat(), get_is_rx_tkipicv(), get_is_rx_tkipmic(), get_is_rx_tkipreplay(), get_is_rx_tooshort(), get_is_rx_unauth(), get_is_rx_unencrypted(), get_is_rx_wepfail(), get_is_rx_wrongbss(), get_is_rx_wrongdir(), get_is_scan_active(), get_is_scan_passive(), get_is_tx_badcipher(), get_is_tx_nobuf(), get_is_tx_nodefkey(), get_is_tx_noheadroom(), get_is_tx_nonode(), and get_is_tx_unknownmgt().
#define TAILQ_FOREACH | ( | var, | |||
head, | |||||
field | ) |
Value:
for ((var) = TAILQ_FIRST((head)); \ (var); \ (var) = TAILQ_NEXT((var), field))
Definition at line 400 of file queue.h.
Referenced by get_node_example(), get_node_negotiated_rate(), get_node_on_tx_err(), get_node_on_tx_ok(), get_node_on_tx_retr(), get_node_rssi(), get_node_txpower(), and xian_broadcast_neighbour().
#define TAILQ_FOREACH_SAFE | ( | var, | |||
head, | |||||
field, | |||||
tvar | ) |
Value:
for ((var) = TAILQ_FIRST((head)); \ (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ (var) = (tvar))
#define TAILQ_FOREACH_REVERSE | ( | var, | |||
head, | |||||
headname, | |||||
field | ) |
Value:
for ((var) = TAILQ_LAST((head), headname); \ (var); \ (var) = TAILQ_PREV((var), headname, field))
#define TAILQ_INIT | ( | head | ) |
Value:
do { \ TAILQ_FIRST((head)) = NULL; \ (head)->tqh_last = &TAILQ_FIRST((head)); \ QMD_TRACE_HEAD(head); \ } while (0)
#define TAILQ_INSERT_AFTER | ( | head, | |||
listelm, | |||||
elm, | |||||
field | ) |
Value:
do { \ if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\ TAILQ_NEXT((elm), field)->field.tqe_prev = \ &TAILQ_NEXT((elm), field); \ else { \ (head)->tqh_last = &TAILQ_NEXT((elm), field); \ QMD_TRACE_HEAD(head); \ } \ TAILQ_NEXT((listelm), field) = (elm); \ (elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field); \ QMD_TRACE_ELEM(&(elm)->field); \ QMD_TRACE_ELEM(&listelm->field); \ } while (0)
#define TAILQ_INSERT_BEFORE | ( | listelm, | |||
elm, | |||||
field | ) |
Value:
do { \ (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ TAILQ_NEXT((elm), field) = (listelm); \ *(listelm)->field.tqe_prev = (elm); \ (listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field); \ QMD_TRACE_ELEM(&(elm)->field); \ QMD_TRACE_ELEM(&listelm->field); \ } while (0)
#define TAILQ_INSERT_HEAD | ( | head, | |||
elm, | |||||
field | ) |
Value:
do { \ if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \ TAILQ_FIRST((head))->field.tqe_prev = \ &TAILQ_NEXT((elm), field); \ else \ (head)->tqh_last = &TAILQ_NEXT((elm), field); \ TAILQ_FIRST((head)) = (elm); \ (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \ QMD_TRACE_HEAD(head); \ QMD_TRACE_ELEM(&(elm)->field); \ } while (0)
#define TAILQ_INSERT_TAIL | ( | head, | |||
elm, | |||||
field | ) |
Value:
do { \ TAILQ_NEXT((elm), field) = NULL; \ (elm)->field.tqe_prev = (head)->tqh_last; \ *(head)->tqh_last = (elm); \ (head)->tqh_last = &TAILQ_NEXT((elm), field); \ QMD_TRACE_HEAD(head); \ QMD_TRACE_ELEM(&(elm)->field); \ } while (0)
#define TAILQ_LAST | ( | head, | |||
headname | ) | (*(((struct headname *)((head)->tqh_last))->tqh_last)) |
#define TAILQ_PREV | ( | elm, | |||
headname, | |||||
field | ) | (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) |
#define TAILQ_REMOVE | ( | head, | |||
elm, | |||||
field | ) |
Value:
do { \ if ((TAILQ_NEXT((elm), field)) != NULL) \ TAILQ_NEXT((elm), field)->field.tqe_prev = \ (elm)->field.tqe_prev; \ else { \ (head)->tqh_last = (elm)->field.tqe_prev; \ QMD_TRACE_HEAD(head); \ } \ *(elm)->field.tqe_prev = TAILQ_NEXT((elm), field); \ TRASHIT((elm)->field.tqe_next); \ TRASHIT((elm)->field.tqe_prev); \ QMD_TRACE_ELEM(&(elm)->field); \ } while (0)