diff -r 889cd4396022 -r 3b9d275193fe src/python/SConscript --- a/src/python/SConscript Wed Oct 24 17:55:04 2012 -0400 +++ b/src/python/SConscript Wed Oct 24 18:06:00 2012 -0400 @@ -70,6 +70,7 @@ SwigSource('m5.internal', 'swig/event.i') SwigSource('m5.internal', 'swig/pyobject.i') SwigSource('m5.internal', 'swig/range.i') +SwigSource('m5.internal', 'swig/serialize.i') SwigSource('m5.internal', 'swig/stats.i') SwigSource('m5.internal', 'swig/trace.i') PySource('m5.internal', 'm5/internal/__init__.py') diff -r 889cd4396022 -r 3b9d275193fe src/python/m5/SimObject.py --- a/src/python/m5/SimObject.py Wed Oct 24 17:55:04 2012 -0400 +++ b/src/python/m5/SimObject.py Wed Oct 24 18:06:00 2012 -0400 @@ -595,7 +595,7 @@ abstract = True cxx_header = "sim/sim_object.hh" - cxx_bases = [ "Drainable" ] + cxx_bases = [ "Drainable", "Serializable" ] @classmethod def export_method_swig_predecls(cls, code): @@ -603,6 +603,7 @@ %include %import "python/swig/drain.i" +%import "python/swig/serialize.i" ''') @classmethod diff -r 889cd4396022 -r 3b9d275193fe src/python/swig/event.i --- a/src/python/swig/event.i Wed Oct 24 17:55:04 2012 -0400 +++ b/src/python/swig/event.i Wed Oct 24 18:06:00 2012 -0400 @@ -39,6 +39,8 @@ #include "sim/simulate.hh" %} +%import "python/swig/serialize.i" + #pragma SWIG nowarn=350,351 %extend EventQueue { @@ -73,8 +75,6 @@ %include %include -%import "sim/serialize.hh" - %include "base/types.hh" %include "sim/eventq.hh" diff -r 889cd4396022 -r 3b9d275193fe src/python/swig/serialize.i --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/python/swig/serialize.i Wed Oct 24 18:06:00 2012 -0400 @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2012 ARM Limited + * All rights reserved + * + * The license below extends only to copyright in the software and shall + * not be construed as granting a license to any other intellectual + * property including but not limited to intellectual property relating + * to a hardware implementation of the functionality of the software + * licensed hereunder. You may use the software subject to the license + * terms below provided that you ensure that this notice is replicated + * unmodified and in its entirety in all distributions of the software, + * modified or unmodified, in source code or in binary form. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer; + * redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution; + * neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Authors: Andreas Sandberg + */ + +%module(package="m5.internal") serialize + +%{ +#include "sim/serialize.hh" +%} + +%nodefaultctor Serializable; + +class Serializable +{ + virtual const std::string name() const = 0; +};