[okl4-developer] vserial_serverloop.c generates bad code for (u)int64_t variables in okl4 2.1.
Gabi Voiculescu
boy3dfx2 at yahoo.com
Tue Jan 20 08:17:40 EST 2009
Hello again.
When using okl4 2.1. vtimer on an arm based platform (armv5, armv6) when running drivers iguana example I saw an overflow in the displayed time, every 6th frame or so.
I traced this back to buld/iguana/include/interfaces/vtimer_serverloop.c where for the handle_virtual_timer_request() and handle_virtual_timer_current_time() the autogenerated code
The magpie_(un)marshal_int32 is used instead of it's 64bit counterpart. Is there an easy fix for the magpie stuff to make it generate magpie_(un)marshal_int64 instead of ..._int32?
For now I will attempt to manually fix after each new build lines 68-70 and 99-101 from:
magpie_marshal_int32((uint32_t)__return, &mr[4]); -----------> magpie_marshal_int64((uint64_t)__return, &mr[4]);
/* Return number of return MRs used */
*((L4_Word_t *)(void *)(&mr[0])) = 1 + 1; ----------> *((L4_Word_t *)(void *)(&mr[0])) = 1 + 2;
Thank you,
Gabi Voiculescu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.okl4.org/pipermail/developer/attachments/20090119/d2503434/attachment-0001.htm
More information about the Developer
mailing list