void IPC_msgNotifyMaster(void) { // make sure all data transactions complete before next instruction is executed __DSB(); // now trigger the remote processor __sev(); }
void IPC_sendInterrupt(void) { /* make sure all data transactions complete before next instruction is executed */ __DSB(); /* now trigger the remote processor */ __sev(); }
void IPC_sendMsg(mbxId_t mbxNum, msg_t msg, msgId_t msgNum, mbxParam_t param) { Mbx* rPtr = (Mbx*)(mbxRemoteTablePtr); rPtr += mbxNum; // prepare the information rPtr->mbxHeader.msg = msg; rPtr->mbxHeader.msgId = msgNum; rPtr->mbxParam = param; rPtr->mbxStatus = PROCESS; // make sure all data transactions complete before next instruction is executed __DSB(); // now trigger the remote processor __sev(); }
// ARM-LABEL: test_sev // AArch32: call void @llvm.arm.hint(i32 4) // AArch64: call void @llvm.aarch64.hint(i32 4) void test_sev(void) { __sev(); }
void sev() { __sev(); }
void check__sev(void) { __sev(); }