APCs
struct apc { apc_func_t func; void *ctx; struct thread *owner; struct apc *next;};struct apc referenced types:
struct event_apc { struct apc apc; struct apc_event_desc *desc; size_t execute_times;};struct event_apc referenced types:
struct apc_event_desc { char *name;};struct apc * apc_create(void);apc_create referenced types:
struct event_apc * apc_event_apc_create(void);apc_event_apc_create referenced types:
void apc_init(struct apc *a, apc_func_t fn, void *arg1);apc_init referenced types:
void apc_event_apc_init(struct event_apc *a, apc_func_t fn, void *arg1);apc_event_apc_init referenced types:
void apc_event_signal(struct apc_event_desc *desc);apc_event_signal referenced types:
void apc_enqueue(struct thread *t, struct apc *a, enum apc_type type);apc_enqueue referenced types:
void apc_enqueue_event_apc(struct event_apc *a, struct apc_event_desc *d);apc_enqueue_event_apc referenced types:
bool apc_cancel(struct apc *a);apc_cancel referenced types:
void apc_check_and_deliver(struct thread *t);apc_check_and_deliver referenced types:
void apc_enable_special();void apc_disable_special();void apc_enable_kernel();void apc_disable_kernel();void apc_free_on_thread(struct thread *t);apc_free_on_thread referenced types:
char apc_event_str(struct apc_event_desc *evt);apc_event_str referenced types:
void apc_enqueue_on_curr(struct apc *a, enum apc_type type);apc_enqueue_on_curr referenced types:
void apc_queue_init(struct apc_queue *q);apc_queue_init referenced types:
Defines
Section titled “Defines”#define APC_EVENT_EXTERN(n) extern struct apc_event_desc __apc_event_##n#define APC_EVENT_CREATE(n, strname) \ struct apc_event_desc __apc_event_##n = {.name = strname}#define APC_EVENT(n) &(__apc_event_##n)