34c34,38
< import proxy
---
> try:
> import pydot
> except:
> pydot = False
>
36c40
< from util import *
---
> from m5.util import *
38,60d41
< # These utility functions have to come first because they're
< # referenced in params.py... otherwise they won't be defined when we
< # import params below, and the recursive import of this file from
< # params.py will not find these names.
< def isSimObject(value):
< return isinstance(value, SimObject)
<
< def isSimObjectClass(value):
< return issubclass(value, SimObject)
<
< def isSimObjectSequence(value):
< if not isinstance(value, (list, tuple)) or len(value) == 0:
< return False
<
< for val in value:
< if not isNullPointer(val) and not isSimObject(val):
< return False
<
< return True
<
< def isSimObjectOrSequence(value):
< return isSimObject(value) or isSimObjectSequence(value)
<
64c45
< from params import *
---
> from m5.params import *
67,68c48
< from params import ParamDesc, VectorParamDesc, isNullPointer, SimObjVector
< from proxy import *
---
> from m5.params import ParamDesc, VectorParamDesc, isNullPointer, SimObjVector
70,74c50,51
< noDot = False
< try:
< import pydot
< except:
< noDot = True
---
> from m5.proxy import *
> from m5.proxy import isproxy
144c121
< assert name not in allClasses
---
> assert name not in allClasses, "SimObject %s already present" % name
681c658
< if value != None and proxy.isproxy(value):
---
> if value != None and isproxy(value):
752,753c729,730
< m5.fatal("%s.%s without default or user set value",
< self.path(), param)
---
> fatal("%s.%s without default or user set value",
> self.path(), param)
888a866,893
> def isSimObject(value):
> return isinstance(value, SimObject)
>
> def isSimObjectClass(value):
> return issubclass(value, SimObject)
>
> def isSimObjectSequence(value):
> if not isinstance(value, (list, tuple)) or len(value) == 0:
> return False
>
> for val in value:
> if not isNullPointer(val) and not isSimObject(val):
> return False
>
> return True
>
> def isSimObjectOrSequence(value):
> return isSimObject(value) or isSimObjectSequence(value)
>
> baseClasses = allClasses.copy()
> baseInstances = instanceDict.copy()
>
> def clear():
> global allClasses, instanceDict
>
> allClasses = baseClasses.copy()
> instanceDict = baseInstances.copy()
>