19 #ifndef _COBALT_KERNEL_APC_H 20 #define _COBALT_KERNEL_APC_H 22 #include <linux/ipipe.h> 23 #include <asm/xenomai/machine.h> 31 void (*handler)(
void *cookie),
36 static inline void __xnapc_schedule(
int apc)
38 unsigned long *p = &raw_cpu_ptr(&cobalt_machine_cpudata)->apc_pending;
40 if (!__test_and_set_bit(apc, p))
41 ipipe_post_irq_root(cobalt_pipeline.apc_virq);
70 flags = ipipe_test_and_stall_head() & 1;
71 __xnapc_schedule(apc);
72 ipipe_restore_head(flags);
75 void apc_dispatch(
unsigned int virq,
void *arg);
static void xnapc_schedule(int apc)
Schedule an APC invocation.
Definition: apc.h:66
int xnapc_alloc(const char *name, void(*handler)(void *cookie), void *cookie)
Allocate an APC slot.
Definition: apc.c:112
void xnapc_free(int apc)
Releases an APC slot.
Definition: apc.c:152