Lines Matching defs:order
1 /* $NetBSD: order.c,v 1.10 2025/01/26 16:25:24 christos Exp $ */
28 #include <dns/order.h>
49 #define DNS_ORDER_VALID(order) ISC_MAGIC_VALID(order, DNS_ORDER_MAGIC)
53 dns_order_t *order;
57 order = isc_mem_get(mctx, sizeof(*order));
59 ISC_LIST_INIT(order->ents);
62 isc_refcount_init(&order->references, 1);
64 order->mctx = NULL;
65 isc_mem_attach(mctx, &order->mctx);
66 order->magic = DNS_ORDER_MAGIC;
67 *orderp = order;
72 dns_order_add(dns_order_t *order, const dns_name_t *name,
77 REQUIRE(DNS_ORDER_VALID(order));
83 ent = isc_mem_get(order->mctx, sizeof(*ent));
91 ISC_LIST_INITANDAPPEND(order->ents, ent, link);
104 dns_order_find(dns_order_t *order, const dns_name_t *name,
107 REQUIRE(DNS_ORDER_VALID(order));
109 for (ent = ISC_LIST_HEAD(order->ents); ent != NULL;
138 dns_order_t *order;
139 order = *orderp;
142 if (isc_refcount_decrement(&order->references) == 1) {
143 isc_refcount_destroy(&order->references);
144 order->magic = 0;
146 while ((ent = ISC_LIST_HEAD(order->ents)) != NULL) {
147 ISC_LIST_UNLINK(order->ents, ent, link);
148 isc_mem_put(order->mctx, ent, sizeof(*ent));
150 isc_mem_putanddetach(&order->mctx, order, sizeof(*order));