Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / sam / system / blaze / dev_registry.cc
// ========== Copyright Header Begin ==========================================
//
// OpenSPARC T2 Processor File: dev_registry.cc
// Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
//
// The above named program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public
// License version 2 as published by the Free Software Foundation.
//
// The above named program is distributed in the hope that it will be
// useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this work; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
//
// ========== Copyright Header End ============================================
#include "module.h"
devRegistry::devRegistry(){
handle = devid_first;
assert(pthread_mutex_init(&handleMutex,NULL)==0);
}
devRegistry::~devRegistry(){}
// get the name of the device with id 'handle'
const char * devRegistry::getName (SAM_DeviceId handle) {
ri = r.find(handle);
Module * m = (ri != r.end()) ? ri->second:0;
if(m) return m->getName();
return "unknown device";
}
// dump the device name<->trace handle mapping into file FP.
// FP can be stderr. Can be used by UI or trace dump functions.
void devRegistry::dump(FILE * fp){
fprintf(fp," ID DEVICE INSTANCE\n");
for( ri = r.begin(); ri != r.end(); ri++)
fprintf(fp,"0x%llx %s\n",ri->first,ri->second->getName());
}