On Nov 19, 2010, at 11:35 AM, Jeroen DR wrote: > So one possibility I can think of is that the port attribute is assigned only > on the Python-side cc_params proxy object and not "forwarded" if you will to > the underlying C++ struct because it does not map to an existing C++ field. I > am not familiar enough with SWIG and any Python/C++ proxy objects it has > going on to know whether this is the case though. > > I also know that the Ports seem to be created on the C++ side; or at least in > e.g. Cache they are. I also know about the connectPorts call that is exported > to Python from C++ in pyobject.cc, and the MemObject::getPort() method it > uses. The Cache::getPort() implementation basically seems to do a hardcoded > check for Python's attribute names. Ports are always connected after the > corresponding C++ objects are created (since Python's call to connectPorts in > PortRef.ccConnect requires them), so this seems to be where Python's wheels > hit the C++ ground. Yes, that is correct. The ports aren't in the Params struct and python calls the c++ connectPorts() call which calls getPort on each object to get the correct port and connects them together. As far as the Python underpinnings to make that happen Steve or Nate would need to comment.
Ali _______________________________________________ m5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
