Skip to content

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:

#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)