Root.py (4486:aaeb03a8a6e1) Root.py (7525:722f2ad014a7)
1# Copyright (c) 2005-2007 The Regents of The University of Michigan
2# All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are
6# met: redistributions of source code must retain the above copyright
7# notice, this list of conditions and the following disclaimer;
8# redistributions in binary form must reproduce the above copyright

--- 14 unchanged lines hidden (view full) ---

23# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26#
27# Authors: Nathan Binkert
28
29from m5.SimObject import SimObject
30from m5.params import *
1# Copyright (c) 2005-2007 The Regents of The University of Michigan
2# All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are
6# met: redistributions of source code must retain the above copyright
7# notice, this list of conditions and the following disclaimer;
8# redistributions in binary form must reproduce the above copyright

--- 14 unchanged lines hidden (view full) ---

23# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26#
27# Authors: Nathan Binkert
28
29from m5.SimObject import SimObject
30from m5.params import *
31from m5.util import fatal
31
32class Root(SimObject):
32
33class Root(SimObject):
34
35 _the_instance = None
36
37 def __new__(cls, **kwargs):
38 if Root._the_instance:
39 fatal("Attempt to allocate multiple instances of Root.")
40 return None
41
42 # first call: allocate the unique instance
43 #
44 # If SimObject ever implements __new__, we may want to pass
45 # kwargs here, but for now this goes straight to
46 # object.__new__ which prints an ugly warning if you pass it
47 # args. Seems like a bad design but that's the way it is.
48 Root._the_instance = SimObject.__new__(cls)
49 return Root._the_instance
50
51 @classmethod
52 def getInstance(cls):
53 return Root._the_instance
54
55 def path(self):
56 return 'root'
57
33 type = 'Root'
34 dummy = Param.Int(0, "We don't support objects without params")
58 type = 'Root'
59 dummy = Param.Int(0, "We don't support objects without params")