Re: do_div64 generic

Bernardo Innocenti (
Tue, 15 Jul 2003 08:23:00 +0200

On Tuesday 15 July 2003 07:38, Andrew Morton wrote:

> > Here's a patch that takes care of all architectures.
> AFAICT, we can just rework posix-timers.c to use the standard do_div() and
> be done with it, can we not? ie: no div_long_long_rem(), no
> div_ll_X_l_rem(). Just do_div().

We could, and it would be easy and almost as efficient in all places
where div_long_long_rem() is being used:

value->tv_sec = div_long_long_rem(nsec, NSEC_PER_SEC, &value->tv_nsec);


value->tv_nsec = do_div(nsec, NSEC_PER_SEC);
value->tv_sec = nsec;

George, do you agree? May I go on and post a patch killing
div_long_long_rem() everywhere?

> Please use `static inline', not `extern inline', btw.

Oops. Fixed. I had just copied it over from asm-i386/div64.h.

Is it worth posting a big patch to replace all remaining
occurrences of 'extern inline' all over the kernel?

I'd also like to point out that __inline__ is often being
used inconsistently. We should be using __inline__ rather
than inline in public headers needed by glibc for apps
compiled with -ansi. Since it's so ugly, it shouldn't
be used in other places.

  // Bernardo Innocenti - Develer S.r.l., R&D dept.

Please don't send Word attachments -

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to More majordomo info at Please read the FAQ at