本文整理汇总了C++中SharedIOSQPtr::Init方法的典型用法代码示例。如果您正苦于以下问题:C++ SharedIOSQPtr::Init方法的具体用法?C++ SharedIOSQPtr::Init怎么用?C++ SharedIOSQPtr::Init使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SharedIOSQPtr
的用法示例。
在下文中一共展示了SharedIOSQPtr::Init方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SharedIOCQPtr
void
IllegalCreateQs_r10b::RunCoreTest()
{
/** \verbatim
* Assumptions:
* 1) Test CreateResources_r10b has run prior.
* \endverbatim
*/
// Lookup objs which were created in a prior test within group
SharedACQPtr acq = CAST_TO_ACQ(gRsrcMngr->GetObj(ACQ_GROUP_ID))
SharedASQPtr asq = CAST_TO_ASQ(gRsrcMngr->GetObj(ASQ_GROUP_ID))
uint32_t numEntries = 2;
uint8_t dword;
uint32_t mask;
uint32_t value;
{
LOG_NRM("Create IOCQ ID #%d but toxify its QID to 0", IOQ_ID);
SharedIOCQPtr iocq = SharedIOCQPtr(new IOCQ(mFd));
iocq->Init(IOQ_ID, numEntries, true, 0);
LOG_NRM("Form a Create IOCQ cmd");
SharedCreateIOCQPtr iocqCmd = SharedCreateIOCQPtr(new CreateIOCQ());
iocqCmd->Init(iocq);
dword = 10;
mask = 0xFFFF;
value = 0;
SendToxicCmd(asq, acq, iocqCmd, dword, mask, value, CESTAT_INVALID_QID);
}
{
LOG_NRM("Create IOSQ ID #%d but toxify its QID to 0", IOQ_ID);
SharedIOSQPtr iosq = SharedIOSQPtr(new IOSQ(mFd));
iosq->Init(IOQ_ID, numEntries, IOQ_ID, 0);
LOG_NRM("Form a Create IOSQ cmd");
SharedCreateIOSQPtr iosqCmd = SharedCreateIOSQPtr(new CreateIOSQ());
iosqCmd->Init(iosq);
dword = 10;
mask = 0xFFFF;
value = 0;
SendToxicCmd(asq, acq, iosqCmd, dword, mask, value, CESTAT_INVALID_QID);
}
{
LOG_NRM("Create IOSQ ID #%d but wrongly associate to ACQ", IOQ_ID);
SharedIOSQPtr iosq = SharedIOSQPtr(new IOSQ(mFd));
iosq->Init(IOQ_ID, numEntries, IOQ_ID, 0);
LOG_NRM("Form a Create IOSQ cmd");
SharedCreateIOSQPtr iosqCmd = SharedCreateIOSQPtr(new CreateIOSQ());
iosqCmd->Init(iosq);
dword = 11;
mask = 0xFFFF0000;
value = 0;
SendToxicCmd(asq, acq, iosqCmd, dword, mask, value, CESTAT_CQ_INVALID);
}
}
示例2: GetValue
void
UnsupportRsvdFields_r10b::RunCoreTest()
{
/** \verbatim
* Assumptions:
* 1) Test CreateResources_r10b has run prior.
* \endverbatim
*/
uint64_t maxIOQEntries = 2;
// Lookup objs which were created in a prior test within group
SharedASQPtr asq = CAST_TO_ASQ(gRsrcMngr->GetObj(ASQ_GROUP_ID))
SharedACQPtr acq = CAST_TO_ACQ(gRsrcMngr->GetObj(ACQ_GROUP_ID))
LOG_NRM("Setup element sizes for the IOQ's");
uint8_t iocqes = (gInformative->GetIdentifyCmdCtrlr()->
GetValue(IDCTRLRCAP_CQES) & 0xf);
uint8_t iosqes = (gInformative->GetIdentifyCmdCtrlr()->
GetValue(IDCTRLRCAP_SQES) & 0xf);
gCtrlrConfig->SetIOCQES(iocqes);
gCtrlrConfig->SetIOSQES(iosqes);
LOG_NRM("Create IOCQ");
SharedIOCQPtr iocq = Queues::CreateIOCQContigToHdw(mGrpName, mTestName,
CALC_TIMEOUT_ms(1), asq, acq, IOQ_ID, maxIOQEntries, false,
IOCQ_GROUP_ID, true, 0);
LOG_NRM("Create IOSQ");
SharedIOSQPtr iosq = SharedIOSQPtr(new IOSQ(gDutFd));
LOG_NRM("Allocate contiguous memory; IOSQ has ID=%d", IOQ_ID);
iosq->Init(IOQ_ID, maxIOQEntries, IOQ_ID, 0);
LOG_NRM("Form a Create IOSQ cmd to perform queue creation");
SharedCreateIOSQPtr createIOSQCmd = SharedCreateIOSQPtr(new CreateIOSQ());
createIOSQCmd->Init(iosq);
LOG_NRM("Set all cmd's rsvd bits");
uint32_t work = createIOSQCmd->GetDword(0);
work |= 0x0000fc00; // Set DW0_b15:10 bits
createIOSQCmd->SetDword(work, 0);
createIOSQCmd->SetDword(0xffffffff, 2);
createIOSQCmd->SetDword(0xffffffff, 3);
createIOSQCmd->SetDword(0xffffffff, 4);
createIOSQCmd->SetDword(0xffffffff, 5);
createIOSQCmd->SetDword(0xffffffff, 6);
createIOSQCmd->SetDword(0xffffffff, 7);
// DW11_b15:3
work = createIOSQCmd->GetDword(11);
work |= 0x0000fff8;
createIOSQCmd->SetDword(work, 11);
createIOSQCmd->SetDword(0xffffffff, 12);
createIOSQCmd->SetDword(0xffffffff, 13);
createIOSQCmd->SetDword(0xffffffff, 14);
createIOSQCmd->SetDword(0xffffffff, 15);
IO::SendAndReapCmd(mGrpName, mTestName, CALC_TIMEOUT_ms(1), asq, acq,
createIOSQCmd, "", true);
WriteReadVerify(iosq, iocq);
Queues::DeleteIOSQToHdw(mGrpName, mTestName, CALC_TIMEOUT_ms(1), iosq,
asq, acq, "", false);
Queues::DeleteIOCQToHdw(mGrpName, mTestName, CALC_TIMEOUT_ms(1), iocq,
asq, acq, "", false);
}
示例3: FrmwkEx
void
MaxQSizeExceed_r10b::RunCoreTest()
{
/** \verbatim
* Assumptions:
* 1) Test CreateResources_r10b has run prior.
* \endverbatim
*/
uint64_t mqes;
string qualify;
uint64_t maxIOQEntries = 2;
// Lookup objs which were created in a prior test within group
SharedASQPtr asq = CAST_TO_ASQ(gRsrcMngr->GetObj(ASQ_GROUP_ID))
SharedACQPtr acq = CAST_TO_ACQ(gRsrcMngr->GetObj(ACQ_GROUP_ID))
LOG_NRM("Setup element sizes for the IOQ's");
uint8_t iocqes = (gInformative->GetIdentifyCmdCtrlr()->
GetValue(IDCTRLRCAP_CQES) & 0xf);
uint8_t iosqes = (gInformative->GetIdentifyCmdCtrlr()->
GetValue(IDCTRLRCAP_SQES) & 0xf);
gCtrlrConfig->SetIOCQES(iocqes);
gCtrlrConfig->SetIOSQES(iosqes);
SharedIOCQPtr iocq = Queues::CreateIOCQContigToHdw(mGrpName, mTestName,
DEFAULT_CMD_WAIT_ms, asq, acq, IOQ_ID, maxIOQEntries, false,
IOCQ_GROUP_ID, false, 0);
if (gRegisters->Read(CTLSPC_CAP, mqes) == false)
throw FrmwkEx(HERE, "Unable to determine CAP.MQES");
mqes &= CAP_MQES;
mqes = mqes + 1; // convert to 1 - based
LOG_NRM("DUT's largest supported IOSQ size = 0x%05lX", mqes);
list<uint32_t> illegalQSizes = GetIllegalQSizes(mqes);
for (list<uint32_t>::iterator qSize = illegalQSizes.begin();
qSize != illegalQSizes.end(); qSize++) {
LOG_NRM("Create an IOSQ object with test lifetime");
SharedIOSQPtr iosq = SharedIOSQPtr(new IOSQ(gDutFd));
LOG_NRM("Issue CreateIOSQ with illegal Q size = 0x%08X", *qSize);
iosq->Init(IOQ_ID, *qSize, IOQ_ID, 0);
LOG_NRM("Form a Create IOSQ cmd to perform queue creation");
SharedCreateIOSQPtr createIOSQCmd =
SharedCreateIOSQPtr(new CreateIOSQ());
createIOSQCmd->Init(iosq);
qualify = str(boost::format("qsize.0x%04X") % *qSize);
IO::SendAndReapCmd(mGrpName, mTestName, DEFAULT_CMD_WAIT_ms, asq, acq,
createIOSQCmd, qualify, false, CESTAT_MAX_Q_SIZE_EXCEED);
}
LOG_NRM("Issue largest legal sized IOSQ 0x%05lX, should succeed", mqes);
LOG_NRM("Create an IOSQ object with test lifetime");
SharedIOSQPtr iosq = SharedIOSQPtr(new IOSQ(gDutFd));
LOG_NRM("Issue CreateIOSQ with legal Q size = 0x%08lX", mqes);
iosq->Init(IOQ_ID, mqes, IOQ_ID, 0);
LOG_NRM("Form a Create IOSQ cmd to perform queue creation");
SharedCreateIOSQPtr createIOSQCmd =
SharedCreateIOSQPtr(new CreateIOSQ());
createIOSQCmd->Init(iosq);
qualify = str(boost::format("qsize.0x%04lX") % mqes);
IO::SendAndReapCmd(mGrpName, mTestName, DEFAULT_CMD_WAIT_ms, asq, acq,
createIOSQCmd, qualify, false);
Queues::DeleteIOSQToHdw(mGrpName, mTestName, DEFAULT_CMD_WAIT_ms, iosq,
asq, acq, "", false);
Queues::DeleteIOCQToHdw(mGrpName, mTestName, DEFAULT_CMD_WAIT_ms, iocq,
asq, acq, "", false);
}
示例4: FrmwkEx
void
InvalidQID_r10b::RunCoreTest()
{
/** \verbatim
* Assumptions:
* None.
* \endverbatim
*/
string work;
bool enableLog;
uint64_t maxIOQEntries = 2;
if (gCtrlrConfig->SetState(ST_DISABLE_COMPLETELY) == false)
throw FrmwkEx(HERE);
LOG_NRM("Create admin queues ACQ and ASQ");
SharedACQPtr acq = SharedACQPtr(new ACQ(mFd));
acq->Init(5);
SharedASQPtr asq = SharedASQPtr(new ASQ(mFd));
asq->Init(5);
// All queues will use identical IRQ vector
IRQ::SetAnySchemeSpecifyNum(1);
gCtrlrConfig->SetCSS(CtrlrConfig::CSS_NVM_CMDSET);
if (gCtrlrConfig->SetState(ST_ENABLE) == false)
throw FrmwkEx(HERE);
// Calc X, max no. of IOSQ's DUT supports.
uint32_t X = gInformative->GetFeaturesNumOfIOSQs();
LOG_NRM("Maximum num of IOSQ's DUT will support = %d", X);
LOG_NRM("Setup element sizes for the IOQ's");
gCtrlrConfig->SetIOCQES(gInformative->GetIdentifyCmdCtrlr()->
GetValue(IDCTRLRCAP_CQES) & 0xf);
gCtrlrConfig->SetIOSQES(gInformative->GetIdentifyCmdCtrlr()->
GetValue(IDCTRLRCAP_SQES) & 0xf);
LOG_NRM("Create IOCQ with QID = %d", IOQ_ID);
SharedIOCQPtr iocq = Queues::CreateIOCQContigToHdw(mGrpName, mTestName,
DEFAULT_CMD_WAIT_ms, asq, acq, IOQ_ID, maxIOQEntries, false,
IOCQ_GROUP_ID, true, 0);
LOG_NRM("Issue CreateIOSQ cmds with QID's ranging from %d to %d",
(X + 1), MAX_IOQ_ID);
list<uint32_t> illegalQIDs = GetIllegalQIDs(X + 1);
for (list<uint32_t>::iterator qId = illegalQIDs.begin();
qId != illegalQIDs.end(); qId++) {
LOG_NRM("Process CreateIOSQCmd with iosq id #%d and assoc iocq id #%d",
*qId, IOQ_ID);
SharedIOSQPtr iosq = SharedIOSQPtr(new IOSQ(mFd));
iosq->Init(*qId, maxIOQEntries, IOQ_ID, 0);
SharedCreateIOSQPtr createIOSQCmd =
SharedCreateIOSQPtr(new CreateIOSQ());
createIOSQCmd->Init(iosq);
work = str(boost::format("iosqId.%d") % *qId);
enableLog = false;
if ((*qId <= (X + 8)) || (*qId >= (MAX_IOQ_ID - 8)))
enableLog = true;
LOG_NRM("Send and reap cmd with SQ ID #%d", *qId);
IO::SendAndReapCmd(mGrpName, mTestName, DEFAULT_CMD_WAIT_ms, asq, acq,
createIOSQCmd, work, enableLog, CESTAT_INVALID_QID);
}
}