I just looked through the code briefly, and one possible issue here is that
the Python 'Tick' class isn't related to the C++ Tick class.  The Python
Tick is defined in src/python/m5/params.py for use as a SimObject
parameter, while what SWIG is probably expecting is a wrapped version of
the C++ type, which is "long long".

I notice that setClockFrequency() in core.i also takes a Tick arg, and
that's called from python/m5/ticks.py like this:

        internal.core.setClockFrequency(int(tps))

In the long run, it would be good to make the Python Tick class work for
SWIG calls that want a C++ Tick; I'm not sure how to fix this though.  Any
ideas, Nate?

Steve

On Mon, Apr 23, 2012 at 12:54 AM, Sascha Bischoff
<[email protected]>wrote:

>  Hi all,****
>
> ** **
>
> I am trying to use the schedStatEvent C++ function from python. When I try
> and****
>
> call the function from python using the interface in
> src/python/swig/stats.i****
>
> I am unable to specify the Tick parameter, and gem5 complains that I have*
> ***
>
> supplied the incorrect number of arguments.****
>
> ** **
>
> I am able to specify the boolean parameters without issue, and am able to
> run the****
>
> function once at the start of the simulation by only specifying the bool
> arguments.****
>
> However, I wish to be able to schedule a repeating event from within
> python, and****
>
> must therefore be able to specify when the first event should occur and
> how often****
>
> it should repeat (Given by the two Tick parameters).****
>
> ** **
>
> I have tried specifying the Tick parameters using Param.Tick() and simply
> Tick()****
>
> but have been rather unsuccessful. I have also tried simply supplying
> integers.****
>
> ** **
>
> The error I get is below:****
>
> ** **
>
> Traceback (most recent call last):****
>
>   File "<string>", line 1, in <module>****
>
>   File "/home/sascha/Repos/gem5/src/python/m5/main.py", line 357, in main*
> ***
>
>     exec filecode in scope****
>
>   File "configs/example/fs.py", line 66, in <module>****
>
>     schedEvent(True,True,Tick(0),Tick(100))****
>
> NotImplementedError: Wrong number of arguments for overloaded function
> 'schedStatEvent'.****
>
>   Possible C/C++ prototypes are:****
>
>     Stats::schedStatEvent(bool,bool,Tick,Tick)****
>
>     Stats::schedStatEvent(bool,bool,Tick)****
>
>     Stats::schedStatEvent(bool,bool)****
>
> ** **
>
> Does anyone have any ideas as to how I can solve this?****
>
> ** **
>
> Thanks,****
>
> Sascha****
>
> -- IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium. Thank you.
>
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to