Beispiel #1
0
TARGETING::TargetHandleList getProcNVDIMMs( TARGETING::Target * i_proc )
{
    TargetHandleList o_nvdimmList;

    TARGETING::ATTR_MODEL_type l_chipModel =
        i_proc->getAttr<TARGETING::ATTR_MODEL>();

    // NVDIMM only present on NIMBUS systems
    if (l_chipModel == TARGETING::MODEL_NIMBUS)
    {
        TargetHandleList l_dimmTargetList;
        getChildAffinityTargets(l_dimmTargetList, i_proc, CLASS_NA, TYPE_DIMM);

        for (TargetHandleList::iterator it = l_dimmTargetList.begin();
                 it != l_dimmTargetList.end(); ++it)
        {
            TARGETING::Target* l_dimm = *it;
            if (TARGETING::isNVDIMM(l_dimm))
            {
                // Found a valid NVDIMM
                o_nvdimmList.push_back(l_dimm);
            }
        }
    }

    return o_nvdimmList;
}
Beispiel #2
0
uint16_t hdatCalcMaxTpmsPerNode()
{
    size_t l_maxTpms = 0;

    // calculate max # of TPMs per node

    // look for class ENC type NODE and class chip TPM to find TPMs
    TARGETING::TargetHandleList l_nodeEncList;

    getEncResources(l_nodeEncList, TARGETING::TYPE_NODE,
        TARGETING::UTIL_FILTER_ALL);

    // loop thru the nodes and check number of TPMs
    std::for_each(l_nodeEncList.begin(), l_nodeEncList.end(),
    [&l_maxTpms](const TARGETING::Target* const i_pNode)
    {
        // for this Node, get a list of tpms
        TARGETING::TargetHandleList l_tpmChipList;

        getChildAffinityTargets ( l_tpmChipList, i_pNode,
                        TARGETING::CLASS_CHIP, TARGETING::TYPE_TPM, false );

        l_maxTpms = std::max(l_maxTpms, l_tpmChipList.size());
    } );
    return l_maxTpms;
}
Beispiel #3
0
TargetHandle_t TargetServiceImpl::getMembuf(
        TargetHandle_t i_mcs)
{
    TargetHandle_t membuf = NULL;

    TargetHandleList list;
    getChildAffinityTargets(list, i_mcs, CLASS_CHIP, TYPE_MEMBUF);

    if(list.size() == 1)
    {
        membuf = list[0];
    }

    return membuf;
}