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; }