Esempio n. 1
0
err_t sys_mbox_new(sys_mbox_t *mbox, int size)
{
	iop_mbx_t mbp;

	dbgprintf("sys_mbox_new: Create MBox (TID: %d)\n", GetThreadId());

	mbp.attr = mbp.option = 0;

	if((*mbox = CreateMbx(&mbp)) < 0)
	{
	    	printf("sys_mbox_new: CreateMbx failed, EC: %d\n", *mbox);
		return ERR_MEM;
	}

	return ERR_OK;
}
Esempio n. 2
0
err_t sys_mbox_new(sys_mbox_t *mbox, int size)
{
	iop_mbx_t mbp;

	mbp.attr = MBA_THFIFO;
	mbp.option = (u32)"PS2IP";

	if((*mbox = CreateMbx(&mbp)) < 0)
	{
	    	printf("sys_mbox_new: CreateMbx failed, EC: %d\n", *mbox);
		return ERR_MEM;
	}

	dbgprintf("sys_mbox_new: mbox %d\n", *mbox);

	return ERR_OK;
}
Esempio n. 3
0
sys_mbox_t
sys_mbox_new(void)
{
    iop_mbx_t mbp;
    int mbid;

	dbgprintf("sys_mbox_new: Create MBox (TID: %d)\n",GetThreadId());

    mbp.attr = 0;
    mbp.option = 0;

    if((mbid = CreateMbx(&mbp)) < 0)
    {
		printf("sys_mbox_new: CreateMbx failed, EC: %d\n", mbid);
		return	-1;
    }

	mbox_count++;
	return((sys_mbox_t) mbid);
}
Esempio n. 4
0
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);
}