void sys_mbox_free(sys_mbox_t pMBox) { dbgprintf("sys_mbox_free: Free MBox (TID: %d)\n",GetThreadId()); if(pMBox <= 0) { return; } // should refer status and see if mbox is empty, if not should give an error... DeleteMbx(pMBox); mbox_count--; }
void basicPollingTest() { static const int msgCount = 3; int i = 0; MSG msg[msgCount]; iop_mbx_t mbxInfo = {}; mbxInfo.option = 0; mbxInfo.attr = MBA_THFIFO | MBA_MSFIFO; s32 mbxId = CreateMbx(&mbxInfo); { s32 result = PollMbx(NULL, mbxId); printf(" polling from empty box: %d\n", result); } for (i = 0; i < msgCount; i++) { memset(&msg[i], 0, sizeof(MSG)); msg[i].header.priority = msgCount - i; msg[i].payload = i + 1; SendMbx(mbxId, &msg[i]); } printf(" box contents before polling: "); printMbx(mbxId); { MSG* msg = NULL; s32 result = PollMbx((void**)&msg, mbxId); printf(" polling from non-empty box: %d, message: %d\n", result, msg->payload); } printf(" box contents after polling: "); printMbx(mbxId); DeleteMbx(mbxId); }
//Delete the messagebox, pMBox. void sys_mbox_free(sys_mbox_t *mbox) { dbgprintf("sys_mbox_free: Free MBox (TID: %d)\n", GetThreadId()); DeleteMbx(*mbox); }
//Delete the messagebox, pMBox. void sys_mbox_free(sys_mbox_t *mbox) { DeleteMbx(*mbox); }