dns_dyndb_destroy_t *destroy_func;
char *name;
void *inst;
- LINK(dyndb_implementation_t) link;
+ ISC_LINK(dyndb_implementation_t) link;
};
/*
* These are stored here so they can be cleaned up on shutdown.
* (The order in which they are stored is not important.)
*/
-static LIST(dyndb_implementation_t) dyndb_implementations;
+static ISC_LIST(dyndb_implementation_t) dyndb_implementations;
/* Locks dyndb_implementations. */
static isc_mutex_t dyndb_lock;
void
dns__dyndb_initialize(void) {
isc_mutex_init(&dyndb_lock);
- INIT_LIST(dyndb_implementations);
+ ISC_LIST_INIT(dyndb_implementations);
}
void
isc_mem_attach(mctx, &imp->mctx);
- INIT_LINK(imp, link);
+ ISC_LINK_INIT(imp, link);
r = uv_dlopen(filename, &imp->handle);
if (r != 0) {
CHECK(implementation->register_func(mctx, name, parameters, file, line,
dctx, &implementation->inst));
- APPEND(dyndb_implementations, implementation, link);
+ ISC_LIST_APPEND(dyndb_implementations, implementation, link);
result = ISC_R_SUCCESS;
cleanup:
dyndb_implementation_t *prev;
LOCK(&dyndb_lock);
- elem = TAIL(dyndb_implementations);
+ elem = ISC_LIST_TAIL(dyndb_implementations);
while (elem != NULL) {
- prev = PREV(elem, link);
- UNLINK(dyndb_implementations, elem, link);
+ prev = ISC_LIST_PREV(elem, link);
+ ISC_LIST_UNLINK(dyndb_implementations, elem, link);
isc_log_write(DNS_LOGCATEGORY_DATABASE, DNS_LOGMODULE_DYNDB,
ISC_LOG_INFO, "unloading DynDB instance '%s'",
elem->name);
isc_refcount_decrementz(&qpdb->current_version->references);
isc_refcount_destroy(&qpdb->current_version->references);
- UNLINK(qpdb->open_versions, qpdb->current_version, link);
+ ISC_LIST_UNLINK(qpdb->open_versions, qpdb->current_version, link);
cds_wfs_destroy(&qpdb->current_version->glue_stack);
isc_rwlock_destroy(&qpdb->current_version->rwlock);
isc_mem_put(qpdb->common.mctx, qpdb->current_version,
* Keep the current version in the open list so that list operation
* won't happen in normal lookup operations.
*/
- PREPEND(qpdb->open_versions, qpdb->current_version, link);
+ ISC_LIST_PREPEND(qpdb->open_versions, qpdb->current_version, link);
qpdb->common.magic = DNS_DB_MAGIC;
qpdb->common.impmagic = QPZONE_DB_MAGIC;
*
* The caller must be holding the database lock.
*/
- for (changed = HEAD(version->changed_list); changed != NULL;
+ for (changed = ISC_LIST_HEAD(version->changed_list); changed != NULL;
changed = next_changed)
{
- next_changed = NEXT(changed, link);
+ next_changed = ISC_LIST_NEXT(changed, link);
if (!changed->dirty) {
- UNLINK(version->changed_list, changed, link);
- APPEND(*cleanup_list, changed, link);
+ ISC_LIST_UNLINK(version->changed_list, changed, link);
+ ISC_LIST_APPEND(*cleanup_list, changed, link);
}
}
}
(void)isc_refcount_current(
&cur_version->references);
if (cur_version->serial == qpdb->least_serial) {
- INSIST(EMPTY(
+ INSIST(ISC_LIST_EMPTY(
cur_version->changed_list));
}
- UNLINK(qpdb->open_versions, cur_version, link);
+ ISC_LIST_UNLINK(qpdb->open_versions,
+ cur_version, link);
}
- if (EMPTY(qpdb->open_versions)) {
+ if (ISC_LIST_EMPTY(qpdb->open_versions)) {
/*
* We're going to become the least open
* version.
*/
if (cur_ref == 1) {
cleanup_version = cur_version;
- APPENDLIST(version->changed_list,
- cleanup_version->changed_list, link);
+ ISC_LIST_APPENDLIST(
+ version->changed_list,
+ cleanup_version->changed_list, link);
}
/*
* Become the current version.
*/
INSIST(isc_refcount_increment0(&version->references) ==
0);
- PREPEND(qpdb->open_versions, qpdb->current_version,
- link);
+ ISC_LIST_PREPEND(qpdb->open_versions,
+ qpdb->current_version, link);
resigned_list = version->resigned_list;
ISC_LIST_INIT(version->resigned_list);
} else {
* Find the version with the least serial
* number greater than ours.
*/
- least_greater = PREV(version, link);
+ least_greater = ISC_LIST_PREV(version, link);
if (least_greater == NULL) {
least_greater = qpdb->current_version;
}
* Add any unexecuted cleanups to
* those of the least greater version.
*/
- APPENDLIST(least_greater->changed_list,
- version->changed_list, link);
+ ISC_LIST_APPENDLIST(least_greater->changed_list,
+ version->changed_list,
+ link);
}
} else if (version->serial == qpdb->least_serial) {
- INSIST(EMPTY(version->changed_list));
+ INSIST(ISC_LIST_EMPTY(version->changed_list));
}
- UNLINK(qpdb->open_versions, version, link);
+ ISC_LIST_UNLINK(qpdb->open_versions, version, link);
}
least_serial = qpdb->least_serial;
RWUNLOCK(&qpdb->lock, isc_rwlocktype_write);
if (cleanup_version != NULL) {
isc_refcount_destroy(&cleanup_version->references);
- INSIST(EMPTY(cleanup_version->changed_list));
+ INSIST(ISC_LIST_EMPTY(cleanup_version->changed_list));
cleanup_gluelists(&cleanup_version->glue_stack);
cds_wfs_destroy(&cleanup_version->glue_stack);
isc_rwlock_destroy(&cleanup_version->rwlock);
/*
* Commit/rollback re-signed headers.
*/
- for (header = HEAD(resigned_list); header != NULL;
- header = HEAD(resigned_list))
+ for (header = ISC_LIST_HEAD(resigned_list); header != NULL;
+ header = ISC_LIST_HEAD(resigned_list))
{
isc_rwlock_t *nlock = NULL;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
dns_qp_t *tree = NULL, *nsec = NULL, *nsec3 = NULL;
bool need_tree = false, need_nsec = false, need_nsec3 = false;
- for (changed = HEAD(cleanup_list); changed != NULL;
+ for (changed = ISC_LIST_HEAD(cleanup_list); changed != NULL;
changed = next_changed)
{
isc_rwlock_t *nlock = NULL;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
- next_changed = NEXT(changed, link);
+ next_changed = ISC_LIST_NEXT(changed, link);
node = changed->node;
nlock = &qpdb->buckets[node->locknum].lock;
*/
#include <isc/list.h> /* Contractual promise. */
-#define LIST(type) ISC_LIST(type)
-#define INIT_LIST(type) ISC_LIST_INIT(type)
-#define LINK(type) ISC_LINK(type)
-#define INIT_LINK(elt, link) ISC_LINK_INIT(elt, link)
-#define HEAD(list) ISC_LIST_HEAD(list)
-#define TAIL(list) ISC_LIST_TAIL(list)
-#define EMPTY(list) ISC_LIST_EMPTY(list)
-#define PREV(elt, link) ISC_LIST_PREV(elt, link)
-#define NEXT(elt, link) ISC_LIST_NEXT(elt, link)
-#define APPEND(list, elt, link) ISC_LIST_APPEND(list, elt, link)
-#define PREPEND(list, elt, link) ISC_LIST_PREPEND(list, elt, link)
-#define UNLINK(list, elt, link) ISC_LIST_UNLINK(list, elt, link)
-#define ENQUEUE(list, elt, link) ISC_LIST_APPEND(list, elt, link)
-#define DEQUEUE(list, elt, link) ISC_LIST_UNLINK(list, elt, link)
-#define INSERTBEFORE(li, b, e, ln) ISC_LIST_INSERTBEFORE(li, b, e, ln)
-#define INSERTAFTER(li, a, e, ln) ISC_LIST_INSERTAFTER(li, a, e, ln)
-#define APPENDLIST(list1, list2, link) ISC_LIST_APPENDLIST(list1, list2, link)
-
/*%
* Performance
*/
unsigned int paren_count;
unsigned int saved_paren_count;
isc_lexspecials_t specials;
- LIST(struct inputsource) sources;
+ ISC_LIST(struct inputsource) sources;
};
static void
lex->paren_count = 0;
lex->saved_paren_count = 0;
memset(lex->specials, 0, 256);
- INIT_LIST(lex->sources);
+ ISC_LIST_INIT(lex->sources);
lex->magic = LEX_MAGIC;
*lexp = lex;
*lexp = NULL;
REQUIRE(VALID_LEX(lex));
- while (!EMPTY(lex->sources)) {
+ while (!ISC_LIST_EMPTY(lex->sources)) {
RUNTIME_CHECK(isc_lex_close(lex) == ISC_R_SUCCESS);
}
if (lex->data != NULL) {
REQUIRE(VALID_LEX(lex));
- source = HEAD(lex->sources);
+ source = ISC_LIST_HEAD(lex->sources);
if (source == NULL) {
return ISC_R_NOMORE;
}
*/
REQUIRE(VALID_LEX(lex));
- source = HEAD(lex->sources);
+ source = ISC_LIST_HEAD(lex->sources);
REQUIRE(tokenp != NULL);
if (source == NULL) {
*/
REQUIRE(VALID_LEX(lex));
- source = HEAD(lex->sources);
+ source = ISC_LIST_HEAD(lex->sources);
REQUIRE(source != NULL);
REQUIRE(tokenp != NULL);
REQUIRE(isc_buffer_consumedlength(source->pushback) != 0 ||
inputsource *source;
REQUIRE(VALID_LEX(lex));
- source = HEAD(lex->sources);
+ source = ISC_LIST_HEAD(lex->sources);
REQUIRE(source != NULL);
REQUIRE(tokenp != NULL);
REQUIRE(isc_buffer_consumedlength(source->pushback) != 0 ||
inputsource *source;
REQUIRE(VALID_LEX(lex));
- source = HEAD(lex->sources);
+ source = ISC_LIST_HEAD(lex->sources);
if (source == NULL) {
return NULL;
inputsource *source;
REQUIRE(VALID_LEX(lex));
- source = HEAD(lex->sources);
+ source = ISC_LIST_HEAD(lex->sources);
if (source == NULL) {
return 0;
char *newname;
REQUIRE(VALID_LEX(lex));
- source = HEAD(lex->sources);
+ source = ISC_LIST_HEAD(lex->sources);
if (source == NULL) {
return ISC_R_NOTFOUND;
inputsource *source;
REQUIRE(VALID_LEX(lex));
- source = HEAD(lex->sources);
+ source = ISC_LIST_HEAD(lex->sources);
if (source == NULL) {
return ISC_R_NOTFOUND;
REQUIRE(VALID_LEX(lex));
- source = HEAD(lex->sources);
+ source = ISC_LIST_HEAD(lex->sources);
if (source == NULL) {
return false;
isc_nm_http_response_status_t response_status;
isc_nmsocket_t *httpsock;
- LINK(struct http_cstream) link;
+ ISC_LINK(struct http_cstream) link;
} http_cstream_t;
#define HTTP2_SESSION_MAGIC ISC_MAGIC('H', '2', 'S', 'S')
void *backtrace[TRACE_SIZE];
int backtrace_size;
#endif
- LINK(isc_nmhandle_t) active_link;
- LINK(isc_nmhandle_t) inactive_link;
+ ISC_LINK(isc_nmhandle_t) active_link;
+ ISC_LINK(isc_nmhandle_t) inactive_link;
void *opaque;
char *path;
isc_nm_recv_cb_t cb;
void *cbarg;
- LINK(struct isc_nm_httphandler) link;
+ ISC_LINK(struct isc_nm_httphandler) link;
} isc_nm_httphandler_t;
struct isc_nm_http_endpoints {
isc_nm_recv_cb_t cb;
void *cbarg;
- LINK(struct isc_nmsocket_h2) link;
+ ISC_LINK(struct isc_nmsocket_h2) link;
isc_nm_http_endpoints_t **listener_endpoints;
size_t n_listener_endpoints;
void *backtrace[TRACE_SIZE];
int backtrace_size;
#endif
- LINK(isc_nmsocket_t) active_link;
+ ISC_LINK(isc_nmsocket_t) active_link;
isc_job_t job;
};
REQUIRE(rl->timer != NULL);
if (rl->state == isc_ratelimiter_shuttingdown) {
- INSIST(EMPTY(rl->pending));
+ INSIST(ISC_LIST_EMPTY(rl->pending));
goto unlock;
}
LOCK(&rl->lock);
INSIST(rl->state == isc_ratelimiter_shuttingdown);
- INSIST(EMPTY(rl->pending));
+ INSIST(ISC_LIST_EMPTY(rl->pending));
isc_timer_stop(rl->timer);
isc_timer_destroy(&rl->timer);
ns_plugin_check_t *check_func;
ns_plugin_register_t *register_func;
ns_plugin_destroy_t *destroy_func;
- LINK(ns_plugin_t) link;
+ ISC_LINK(ns_plugin_t) link;
};
static ns_hooklist_t default_hooktable[NS_HOOKPOINTS_COUNT];