示例#1
0
void CPersModD::PersModD()
{
	if (PR_htValid) {
		switch (PR_htInst) {
		case MODD:
		{
			if (SendReturnBusy_modD()) {
				HtRetry();
				break;
			}

			// Return to host interface
			SendReturn_modD();
		}
		break;
		default:
			assert(0);
		}
	}

	for (int i = 0; i < C_REPL/D_REPL; i += 1) {
		if (!GR_htReset && !RecvMsgBusy_CtoD(i)) {
			ht_uint4 msg = RecvMsg_CtoD(i);
			HtAssert((msg >> 2) == i_replId.read()+1u, msg);
			if (msg >= 0)
				S_msgRcvd |= (1 << ((msg-1)%(C_REPL/D_REPL)+1)) & ((1 << (C_REPL/D_REPL+1))-1);
		}
	}
示例#2
0
void CPersModD::PersModD()
{
	HtAssert(!PR_htValid, 0);

	for (int i = 0; i < C_REPL/D_REPL; i += 1) {
		if (!GR_htReset && !RecvMsgBusy_CtoD(i)) {
			ht_uint4 msg = RecvMsg_CtoD(i);
			HtAssert((msg >> 2) == i_replId.read()+1u, msg);
			if (msg >= 0)
				S_msgRcvd |= (1 << ((msg-1)%(C_REPL/D_REPL)+1)) & ((1 << (C_REPL/D_REPL+1))-1);
		}
	}