registerOcc() { runtimeInterfaces_t * rt_intf = getRuntimeInterfaces(); rt_intf->get_lid_list = &UtilLidMgr::getLidList; rt_intf->occ_load = &executeLoadOCC; rt_intf->occ_start = &executeStartOCCs; rt_intf->occ_stop = &executeStopOCCs; rt_intf->process_occ_error = &process_occ_error; rt_intf->process_occ_reset = &process_occ_reset; rt_intf->enable_occ_actuation = &enable_occ_actuation; // If we already loaded OCC during the IPL we need to fix up // the virtual address because we're now not using virtual // memory // Note: We called our memory "ibm,slw-occ-image" but OPAL // created their own range that subsumed ours //@todo-RTC:124392-solve this naming issue... uint64_t l_base_homer = g_hostInterfaces->get_reserved_mem("ibm,homer-image"); TargetHandleList procChips; getAllChips(procChips, TYPE_PROC, true); for (TargetHandleList::iterator itr = procChips.begin(); itr != procChips.end(); ++itr) { uint64_t l_offset = (*itr)->getAttr<ATTR_POSITION>() * VMM_HOMER_INSTANCE_SIZE; (*itr)->setAttr<ATTR_HOMER_VIRT_ADDR> (l_base_homer+l_offset); } }
registerOcc() { runtimeInterfaces_t * rt_intf = getRuntimeInterfaces(); rt_intf->get_lid_list = &UtilLidMgr::getLidList; rt_intf->loadOCC = &executeLoadOCC; rt_intf->startOCCs = &executeStartOCCs; rt_intf->stopOCCs = &executeStopOCCs; }
registerAttn() { runtimeInterfaces_t * rt_intf = getRuntimeInterfaces(); if (NULL == rt_intf) { return; } rt_intf->enable_attns = &enableAttns; rt_intf->disable_attns = &disableAttns; rt_intf->handle_attns = &handleAttns; }
registerCxxTest() { getRuntimeInterfaces()->cxxtestExecute = &execute; }