Exemple #1
0
static u16 cmp_rec(struct ib_sa_mcmember_data *src,
		   struct ib_sa_mcmember_data *dst, ib_sa_comp_mask comp_mask)
{
	/* src is group record, dst is request record */
	/* MGID must already match */
	/* Port_GID we always replace to our Port_GID, so it is a match */

#define MAD_STATUS_REQ_INVALID 0x0200
	if (comp_mask & IB_SA_MCMEMBER_REC_QKEY && src->qkey != dst->qkey)
		return MAD_STATUS_REQ_INVALID;
	if (comp_mask & IB_SA_MCMEMBER_REC_MLID && src->mlid != dst->mlid)
		return MAD_STATUS_REQ_INVALID;
	if (check_selector(comp_mask, IB_SA_MCMEMBER_REC_MTU_SELECTOR,
				 IB_SA_MCMEMBER_REC_MTU,
				 src->mtusel_mtu, dst->mtusel_mtu))
		return MAD_STATUS_REQ_INVALID;
	if (comp_mask & IB_SA_MCMEMBER_REC_TRAFFIC_CLASS &&
	    src->tclass != dst->tclass)
		return MAD_STATUS_REQ_INVALID;
	if (comp_mask & IB_SA_MCMEMBER_REC_PKEY && src->pkey != dst->pkey)
		return MAD_STATUS_REQ_INVALID;
	if (check_selector(comp_mask, IB_SA_MCMEMBER_REC_RATE_SELECTOR,
				 IB_SA_MCMEMBER_REC_RATE,
				 src->ratesel_rate, dst->ratesel_rate))
		return MAD_STATUS_REQ_INVALID;
	if (check_selector(comp_mask,
				 IB_SA_MCMEMBER_REC_PACKET_LIFE_TIME_SELECTOR,
				 IB_SA_MCMEMBER_REC_PACKET_LIFE_TIME,
				 src->lifetmsel_lifetm, dst->lifetmsel_lifetm))
		return MAD_STATUS_REQ_INVALID;
	if (comp_mask & IB_SA_MCMEMBER_REC_SL &&
			(be32_to_cpu(src->sl_flowlabel_hoplimit) & 0xf0000000) !=
			(be32_to_cpu(dst->sl_flowlabel_hoplimit) & 0xf0000000))
		return MAD_STATUS_REQ_INVALID;
	if (comp_mask & IB_SA_MCMEMBER_REC_FLOW_LABEL &&
			(be32_to_cpu(src->sl_flowlabel_hoplimit) & 0x0fffff00) !=
			(be32_to_cpu(dst->sl_flowlabel_hoplimit) & 0x0fffff00))
		return MAD_STATUS_REQ_INVALID;
	if (comp_mask & IB_SA_MCMEMBER_REC_HOP_LIMIT &&
			(be32_to_cpu(src->sl_flowlabel_hoplimit) & 0x000000ff) !=
			(be32_to_cpu(dst->sl_flowlabel_hoplimit) & 0x000000ff))
		return MAD_STATUS_REQ_INVALID;
	if (comp_mask & IB_SA_MCMEMBER_REC_SCOPE &&
			(src->scope_join_state & 0xf0) !=
			(dst->scope_join_state & 0xf0))
		return MAD_STATUS_REQ_INVALID;

	/* join_state checked separately, proxy_join ignored */

	return 0;
}
bool CCToggleGroupTest::init()
{
	CCToggleTestSceneBase::init();
	setTitle("CCToggleBasicTest");
	setDescription("Toggle button in group");

	CCToggle* pToggle1 = CCToggle::create("toggle1_2.png", "toggle1_1.png");
	pToggle1->setCheckSelector(this, check_selector(CCToggleGroupTest::onCheck));
	pToggle1->setPosition(ccp(200, 450));
	pToggle1->setExclusion(1);
	m_pLayout->addChild(pToggle1);

	CCToggle* pToggle2 = CCToggle::create("toggle1_2.png", "toggle1_1.png");
	pToggle2->setCheckSelector(this, check_selector(CCToggleGroupTest::onCheck));
	pToggle2->setPosition(ccp(200, 350));
	pToggle2->setExclusion(1);
	m_pLayout->addChild(pToggle2);

	CCToggle* pToggle3 = CCToggle::create("toggle1_2.png", "toggle1_1.png");
	pToggle3->setCheckSelector(this, check_selector(CCToggleGroupTest::onCheck));
	pToggle3->setPosition(ccp(200, 250));
	pToggle3->setExclusion(1);
	m_pLayout->addChild(pToggle3);

	CCTextTTF* pText1 = CCTextTTF::create();
	pText1->setAnchorPoint(ccp(0, 0.5));
	pText1->setPosition(ccp(350, 450));
	pText1->setFontSize(35.0f);
	pText1->setString("none");
	m_pLayout->addChild(pText1);
	pToggle1->setUserObject(pText1);

	CCTextTTF* pText2 = CCTextTTF::create();
	pText2->setAnchorPoint(ccp(0, 0.5));
	pText2->setPosition(ccp(350, 350));
	pText2->setFontSize(35.0f);
	pText2->setString("none");
	m_pLayout->addChild(pText2);
	pToggle2->setUserObject(pText2);

	CCTextTTF* pText3 = CCTextTTF::create();
	pText3->setAnchorPoint(ccp(0, 0.5));
	pText3->setPosition(ccp(350, 250));
	pText3->setFontSize(35.0f);
	pText3->setString("none");
	m_pLayout->addChild(pText3);
	pToggle3->setUserObject(pText3);


	CCToggle* pToggle4 = CCToggle::create("toggle1_2.png", "toggle1_1.png");
	pToggle4->setPosition(ccp(700, 250));
	pToggle4->setExclusion(2);
	m_pLayout->addChild(pToggle4);

	CCToggle* pToggle5 = CCToggle::create("toggle1_2.png", "toggle1_1.png");
	pToggle5->setPosition(ccp(700, 350));
	pToggle5->setExclusion(2);
	m_pLayout->addChild(pToggle5);

	return true;
}