On Mon, Jun 26, 2000 at 09:22:44AM -0500, Cory Papenfuss wrote:
> I've (sorta) figured it out. The int must first be cast as a long long
> or the multiplication will overflow, but when I tried putting a division in a
> rt-space function to return miliseconds since boot, I get
>
> ./init.o: unresolved symbol __divdi3
>
> when I try to load up my init.o module. Is the access of the longlong division
> forbidden within rt-space?
Long long division requires a function call to a function that is
part of libgcc. Do to 'executive decision' in the kernel, i.e.,
it's been that way forever, libgcc is not linked with the kernel.
(Libgcc _is_ linked with the kernel for most non-i386 architectures,
however.) You have the option of making a difference 'executive
decision', and link your module with libgcc.
dave...
>
> BTW, getlrtime that produced that error is little more than
>
> unsigned long int getlrtime(void){
> return((unsigned long)((long long)gethrtime() / 1000000LL)
> }
>
> -Cory
> On Mon, 26 Jun 2000, Michael Barabanov wrote:
>
> > Cory Papenfuss ([EMAIL PROTECTED]) wrote:
> > > Hey all... I've got something that's been bugging me for awhile on this
> > > project. I really only need millisecond resolution (since I'm logging data to
> > > disk), but the hrtime_t doesn't like to be divided by 10000000 (NS_PER_MS), as
> > > it's a funky type. Any way I can get around that and get a millisecond
> > > timestamp?
> >
> > What do you mean it doesn't like to be divided? hrtime_t is just
> > an alias for long long.
> >
> > > On a related note, I've got a user-space app that can send new
> > > pthread_make_period_np periods (again in [ms]). Problem is that if I try to
> > > send a time greater than 2147 ms, the machine craps out. I suspect it's a
> > > rollover on my
> > >
> > > looptime = <some_int_from_fifo> * 1000000;
> > > pthread_make_periodic_np(thread[0], genesis+OFFSET, looptime);
> > >
> > >
> > > What's a good way to do arithmetic on these hrtime_t creatures?
> >
> > looptime = <some_int_from_fifo> * (long long) 1000000;
> >
> > Michael.
> >
>
>
> -- [rtl] ---
> To unsubscribe:
> echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> ---
> For more information on Real-Time Linux see:
> http://www.rtlinux.org/rtlinux/
>
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
---
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/