SI_TO_IRQBIT
if (ipending & SI_TO_IRQBIT(si)) { \
ci->ci_ipending &= ~SI_TO_IRQBIT(si); \
if (ISSET(ipending, SI_TO_IRQBIT(SOFTINTR_XCALL))) {
CLR(ci->ci_ipending, SI_TO_IRQBIT(SOFTINTR_XCALL));
arm_smask[i] |= SI_TO_IRQBIT(SOFTINTR_CLOCK);
arm_smask[i] |= SI_TO_IRQBIT(SOFTINTR_XCALL);
arm_smask[i] |= SI_TO_IRQBIT(SOFTINTR_NET);
arm_smask[i] |= SI_TO_IRQBIT(SOFTINTR_TTY);
curcpu()->ci_ipending |= SI_TO_IRQBIT(si);
ci->ci_ipending |= SI_TO_IRQBIT(si);
SI_TO_IRQBIT(si)) { \
ci->ci_ipending &= ~SI_TO_IRQBIT(si); \
arm_smask[i] |= SI_TO_IRQBIT(SOFTINTR_CLOCK);
arm_smask[i] |= SI_TO_IRQBIT(SOFTINTR_NET);
arm_smask[i] |= SI_TO_IRQBIT(SOFTINTR_TTY);
ppc_smask[i] |= SI_TO_IRQBIT(SOFTINTR_CLOCK);
ppc_smask[i] |= SI_TO_IRQBIT(SOFTINTR_NET);
ppc_smask[i] |= SI_TO_IRQBIT(SOFTINTR_TTY);
atomic_setbits_int(&curcpu()->ci_ipending, SI_TO_IRQBIT(si));
mask = SI_TO_IRQBIT(q);
curcpu()->ci_ipending |= SI_TO_IRQBIT(si);
intr_smask[i] |= SI_TO_IRQBIT(SOFTINTR_CLOCK);
intr_smask[i] |= SI_TO_IRQBIT(SOFTINTR_NET);
intr_smask[i] |= SI_TO_IRQBIT(SOFTINTR_TTY);
if ((ci->ci_ipending & intr_smask[new]) & SI_TO_IRQBIT(si)) { \
ci->ci_ipending &= ~SI_TO_IRQBIT(si); \
SI_TO_IRQBIT(si)) { \
ci->ci_ipending &= ~SI_TO_IRQBIT(si); \
riscv_smask[i] |= SI_TO_IRQBIT(SOFTINTR_CLOCK);
riscv_smask[i] |= SI_TO_IRQBIT(SOFTINTR_NET);
riscv_smask[i] |= SI_TO_IRQBIT(SOFTINTR_TTY);
curcpu()->ci_ipending |= SI_TO_IRQBIT(si);