diff options
Diffstat (limited to 'sys/mips/rmi/pic.h')
-rw-r--r-- | sys/mips/rmi/pic.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/mips/rmi/pic.h b/sys/mips/rmi/pic.h index fd7ffc6..05d2741 100644 --- a/sys/mips/rmi/pic.h +++ b/sys/mips/rmi/pic.h @@ -281,4 +281,16 @@ pic_delayed_ack(int irq, int haslock) } } +static inline +void pic_send_ipi(int cpu, int ipi, int haslock) +{ + xlr_reg_t *mmio = xlr_io_mmio(XLR_IO_PIC_OFFSET); + int tid, pid; + + tid = cpu & 0x3; + pid = (cpu >> 2) & 0x7; + + xlr_write_reg(mmio, PIC_IPI, (pid << 20) | (tid << 16) | ipi); +} + #endif /* _RMI_PIC_H_ */ |