#include <isc/lang.h>
#include <isc/types.h>
Go to the source code of this file.
Data Structures | |
struct | isc_event |
This structure is public because "subclassing" it may be useful when defining new event types. More... | |
Defines | |
#define | ISC_EVENT_H 1 |
#define | ISC_EVENT_COMMON(ltype) |
#define | ISC_EVENTATTR_NOPURGE 0x00000001 |
Attributes matching a mask of 0x000000ff are reserved for the task library's definition. Attributes of 0xffffff00 may be used by the application or non-ISC libraries. | |
#define | ISC_EVENTATTR_CANCELED 0x00000002 |
The ISC_EVENTATTR_CANCELED attribute is intended to indicate that an event is delivered as a result of a canceled operation rather than successful completion, by mutual agreement between the sender and receiver. It is not set or used by the task system. | |
#define | ISC_EVENT_INIT(event, sz, at, ta, ty, ac, ar, sn, df, da) |
#define | ISC_EVENTTYPE_FIRSTEVENT 0x00000000 |
#define | ISC_EVENTTYPE_LASTEVENT 0xffffffff |
#define | ISC_EVENT_PTR(p) ((isc_event_t **)(void *)(p)) |
Typedefs | |
typedef void(* | isc_eventdestructor_t )(isc_event_t *) |
Functions | |
ISC_LANG_BEGINDECLS isc_event_t * | isc_event_allocate (isc_mem_t *mctx, void *sender, isc_eventtype_t type, isc_taskaction_t action, void *arg, size_t size) |
isc_event_t * | isc_event_constallocate (isc_mem_t *mctx, void *sender, isc_eventtype_t type, isc_taskaction_t action, const void *arg, size_t size) |
Allocate an event structure. | |
void | isc_event_free (isc_event_t **) |
Definition in file event.h.
#define ISC_EVENT_COMMON | ( | ltype | ) |
Value:
size_t ev_size; \ unsigned int ev_attributes; \ void * ev_tag; \ isc_eventtype_t ev_type; \ isc_taskaction_t ev_action; \ void * ev_arg; \ void * ev_sender; \ isc_eventdestructor_t ev_destroy; \ void * ev_destroy_arg; \ ISC_LINK(ltype) ev_link
#define ISC_EVENTATTR_NOPURGE 0x00000001 |
#define ISC_EVENTATTR_CANCELED 0x00000002 |
The ISC_EVENTATTR_CANCELED attribute is intended to indicate that an event is delivered as a result of a canceled operation rather than successful completion, by mutual agreement between the sender and receiver. It is not set or used by the task system.
Definition at line 60 of file event.h.
Referenced by isc_ratelimiter_shutdown(), notify_send_toaddr(), soa_query(), zone_asyncload(), zone_gotreadhandle(), zone_gotwritehandle(), and zonemgr_cancelio().
#define ISC_EVENT_INIT | ( | event, | |||
sz, | |||||
at, | |||||
ta, | |||||
ty, | |||||
ac, | |||||
ar, | |||||
sn, | |||||
df, | |||||
da | ) |
Value:
do { \ (event)->ev_size = (sz); \ (event)->ev_attributes = (at); \ (event)->ev_tag = (ta); \ (event)->ev_type = (ty); \ (event)->ev_action = (ac); \ (event)->ev_arg = (ar); \ (event)->ev_sender = (sn); \ (event)->ev_destroy = (df); \ (event)->ev_destroy_arg = (da); \ ISC_LINK_INIT((event), ev_link); \ } while (0)
Definition at line 62 of file event.h.
Referenced by allocate_devent(), allocate_sevent(), check_exit(), client_create(), dns_acache_create(), dns_adb_create(), dns_adb_shutdown(), dns_byaddr_create(), dns_dispatch_addresponse3(), dns_resolver_createfetch3(), dns_tcpmsg_readmessage(), dns_view_create(), dns_zone_create(), do_cancel(), fctx_start(), isc_event_allocate(), isc_event_constallocate(), isc_ratelimiter_create(), isccc_ccmsg_readmessage(), new_adbfind(), new_request(), resquery_send(), tcp_recv(), and udp_recv().
#define ISC_EVENT_PTR | ( | p | ) | ((isc_event_t **)(void *)(p)) |
Definition at line 87 of file event.h.
Referenced by assignwork(), client_resfind(), dispatch(), dns_client_startrequest(), dns_client_startresolve(), dns_client_startupdate(), dns_dispatch_addresponse3(), dns_dispatch_importrecv(), dns_resolver_cancelfetch(), dns_validator_create(), dns_validator_send(), do_cancel(), fctx_sendevents(), forward_callback(), internal_accept(), isc__socket_accept(), isc__socket_cancel(), lookup_find(), query_find(), request_done(), send_forward_event(), send_update_event(), sign(), tcp_recv(), udp_recv(), and update_sendevent().
typedef void(* isc_eventdestructor_t)(isc_event_t *) |
ISC_LANG_BEGINDECLS isc_event_t* isc_event_allocate | ( | isc_mem_t * | mctx, | |
void * | sender, | |||
isc_eventtype_t | type, | |||
isc_taskaction_t | action, | |||
void * | arg, | |||
size_t | size | |||
) |
Definition at line 43 of file event.c.
References destroy(), ISC_EVENT_INIT, isc_mem_get, and REQUIRE.
Referenced by acache_cleaner_init(), assignwork(), ATF_TC_BODY(), cache_cleaner_init(), closeversion(), decrement_reference(), dispatch(), dispatch_createudp(), dns_client_startrequest(), dns_client_startresolve(), dns_client_startupdate(), dns_dispatch_createtcp2(), dns_dispatch_importrecv(), dns_lookup_create(), dns_request_createraw4(), dns_request_createvia4(), dns_validator_create(), dns_zone_asyncload(), fctx_join(), force_timeout(), free_rbtdb(), isc__app_ctxonrun(), isc__socket_accept(), isc__task_onshutdown(), notify_send_queue(), ns_server_create(), queue_soa_query(), send_forward_event(), send_update_event(), sign(), task_send(), zmgr_start_xfrin_ifquota(), zone_postload(), zone_send_securedb(), zone_send_secureserial(), and zonemgr_getio().
isc_event_t* isc_event_constallocate | ( | isc_mem_t * | mctx, | |
void * | sender, | |||
isc_eventtype_t | type, | |||
isc_taskaction_t | action, | |||
const void * | arg, | |||
size_t | size | |||
) |
Allocate an event structure.
Allocate and initialize in a structure with initial elements defined by:
struct { ISC_EVENT_COMMON(struct isc_event); ... };
Requires:
Definition at line 62 of file event.c.
References DE_CONST, destroy(), ISC_EVENT_INIT, isc_mem_get, and REQUIRE.
void isc_event_free | ( | isc_event_t ** | ) |
Definition at line 96 of file event.c.
References REQUIRE.
Referenced by acache_cleaner_init(), acache_cleaner_shutdown_action(), acache_cleaning_timer_action(), accept_done(), adb_shutdown(), authvalidated(), byaddr_done(), cache_cleaner_init(), cache_free(), checkbogus(), cleaner_shutdown_action(), cleaning_timer_action(), cleanup(), cleanup_dead_nodes_callback(), client_create(), client_delay(), client_newconn(), client_resfind(), client_shutdown(), client_timeout(), cnamevalidated(), connect_done(), connect_timeout(), control_newconn(), control_senddone(), control_timeout(), destroy(), destroy_disp(), dispatch_createudp(), dlvfetched(), dlvvalidated(), dns_byaddr_create(), dns_client_startrequest(), dns_client_startresolve(), dns_client_startupdate(), dns_dispatch_importrecv(), dns_lookup_create(), dns_validator_create(), dsfetched(), dsfetched2(), dsvalidated(), dump_quantum(), event_done(), exit_check(), fctx_finddone(), fctx_timeout(), fetch_callback(), fetch_callback_validator(), fetch_done(), forward_callback(), forward_done(), forward_fail(), free_rbtdb(), got_transfer_quota(), grow_entries(), grow_names(), heartbeat_timer_tick(), interface_timer_tick(), internal_update_callback(), isc__socket_accept(), isc__task_purgerange(), isc_httpd_accept(), isc_httpd_recvdone(), isc_httpd_senddone(), isc_task_purgeevent(), keydone(), keyfetch_done(), keyvalidated(), load_quantum(), localrequest_done(), lookup_done(), lookup_find(), lwdclientmgr_shutdown_callback(), main(), notify_done(), notify_isqueued(), notify_send_queue(), notify_send_toaddr(), ns_lwdclient_recv(), ns_lwdclient_send(), ns_server_destroy(), onrun_callback(), pps_timer_tick(), prefetch_done(), prime_done(), process_adb_event(), process_gabn_finddone(), process_sendevent(), prune_tree(), query_find(), query_resume(), queue_soa_query(), ratelimiter_tick(), receive_secure_db(), receive_secure_serial(), receive_soa(), recv_done(), recv_length(), recv_message(), recvsoa(), refresh_callback(), req_connected(), req_destroy(), req_senddone(), req_shutdown(), req_timeout(), request_done(), resolve_done(), resolveaddr_done(), resolver_shutdown(), resolvesoa_done(), resquery_connected(), resume_dslookup(), rndc_connected(), rndc_recvdone(), rndc_recvnonce(), rndc_senddone(), rndc_start(), run_server(), send_done(), send_forward_event(), send_update_event(), set(), set_and_drop(), shutdown_program(), shutdown_server(), shutdown_task(), sign(), soa_query(), spillattimer_countdown(), start_zone_asyncload(), start_zt_asyncload(), startworker(), stub_callback(), suspend(), tcp_length_done(), tcp_recv(), udp_recv(), update_completed(), update_done(), updatedone_action(), writenode(), xfrin_connect_done(), xfrin_recv_done(), xfrin_send_done(), xfrin_timeout(), xfrout_senddone(), zone_asyncload(), zone_gotreadhandle(), zone_gotwritehandle(), and zone_timer().