summaryrefslogtreecommitdiff
path: root/src/python/m5/proxy.py
diff options
context:
space:
mode:
authorAli Saidi <Ali.Saidi@ARM.com>2011-07-10 12:56:08 -0500
committerAli Saidi <Ali.Saidi@ARM.com>2011-07-10 12:56:08 -0500
commit9751a1d3e78cbbcd17835ab967f036945ee2cec2 (patch)
treee670aaee81a41e463bab3d5d3eb057d328d9bafc /src/python/m5/proxy.py
parent83f91db2ccbdf5af0ec984b1f94c83b8a4fbdc1e (diff)
downloadgem5-9751a1d3e78cbbcd17835ab967f036945ee2cec2.tar.xz
Config: Add support for a Self.all proxy object
Diffstat (limited to 'src/python/m5/proxy.py')
-rw-r--r--src/python/m5/proxy.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/python/m5/proxy.py b/src/python/m5/proxy.py
index e539f14ee..a29265892 100644
--- a/src/python/m5/proxy.py
+++ b/src/python/m5/proxy.py
@@ -184,6 +184,13 @@ class AnyProxy(BaseProxy):
def path(self):
return 'any'
+class AllProxy(BaseProxy):
+ def find(self, obj):
+ return obj.find_all(self._pdesc.ptype)
+
+ def path(self):
+ return 'all'
+
def isproxy(obj):
if isinstance(obj, (BaseProxy, params.EthernetAddr)):
return True
@@ -201,6 +208,10 @@ class ProxyFactory(object):
def __getattr__(self, attr):
if attr == 'any':
return AnyProxy(self.search_self, self.search_up)
+ elif attr == 'all':
+ if self.search_up:
+ assert("Parant.all is not supported")
+ return AllProxy(self.search_self, self.search_up)
else:
return AttrProxy(self.search_self, self.search_up, attr)