// ***************************************************************************** void PodNode::setValue(const PodNode& other) { delete m_value; if (other.valueType() != UNDEFINED) { m_value = other.m_value->copy(); } else { m_value = NULL; } syncBlock(); }
// ***************************************************************************** PodNode::PodNode(const std::string& podName, const std::string& podType, PodValue* value) : m_podName(podName), m_podType(podType), m_value(value), m_parent(NULL), m_sourcefile(), m_sourceline(-1) { if (m_value) { syncBlock(); } }
// ***************************************************************************** void PodNode::setValue(PodNodeDeque& value, const std::string& blockScopeType) { for (PodNodeDeque::iterator iter = value.begin(); iter != value.end(); ++iter) { PodNode* child = (*iter); if (child->parent()) { throw PodIntegrityError(child, "Node cannot be a member of more than one block"); } } delete m_value; m_value = new BlockPodValue(value, blockScopeType); syncBlock(); }
bool_t BusController::signal_allocate(int blockNum, int j){ getExec(blockNum, j); printf("signal allocate\n"); int id; for(id=shared_count-1;id>=0;--id){ if(recs[id][blockNum] & REC_WRITE) break; } if(id>=0){ // dirty cache int i = mem_map[id]->ca->findLine(blockNum*cB); mem_map[id]->ca->commit(i); syncBlock(blockNum, id); recs[id][blockNum] = REC_READ; } recs[j][blockNum] |= REC_READ; return TRUE; }
// ***************************************************************************** void PodNode::setValue(PodValue* value) { delete m_value; m_value = value; syncBlock(); }