30a31
> from m5.util import fatal
32a34,57
>
> _the_instance = None
>
> def __new__(cls, **kwargs):
> if Root._the_instance:
> fatal("Attempt to allocate multiple instances of Root.")
> return None
>
> # first call: allocate the unique instance
> #
> # If SimObject ever implements __new__, we may want to pass
> # kwargs here, but for now this goes straight to
> # object.__new__ which prints an ugly warning if you pass it
> # args. Seems like a bad design but that's the way it is.
> Root._the_instance = SimObject.__new__(cls)
> return Root._the_instance
>
> @classmethod
> def getInstance(cls):
> return Root._the_instance
>
> def path(self):
> return 'root'
>