ipi_msg_t
ipi_msg_t msg = { .func = agp_flush_cache_ipi };
ipi_msg_t msg = {
ipi_msg_t msg = {
ipi_msg_t ipimsg = { .func = __FPTRCAST(ipi_func_t, nullop) };
put_msg(ipi_mbox_t *mbox, ipi_msg_t *msg)
ipi_msg_t *msg;
ipi_unicast(ipi_msg_t *msg, struct cpu_info *ci)
ipi_multicast(ipi_msg_t *msg, const kcpuset_t *target)
ipi_broadcast(ipi_msg_t *msg, bool skip_self)
ipi_wait(ipi_msg_t *msg)
#define IPI_MSG_SLOTS (CACHE_LINE_SIZE / sizeof(ipi_msg_t *))
ipi_msg_t * msg[IPI_MSG_SLOTS];
ipi_msg_t ipi_msg = { .func = pcu_cpu_ipi, .arg = &pcu_msg };
ipi_msg_t ipi_msg = { .func = pcu_cpu_ipi, .arg = &pcu_msg };
void ipi_unicast(ipi_msg_t *, struct cpu_info *);
void ipi_multicast(ipi_msg_t *, const kcpuset_t *);
void ipi_broadcast(ipi_msg_t *, bool);
void ipi_wait(ipi_msg_t *);