Messages in this thread | | | From | "Ulrich Windl" <> | Date | Wed, 21 Sep 2005 10:13:20 +0200 | Subject | Re: [PATCH] NTP shift_right cleanup (v. A3) |
| |
On 21 Sep 2005 at 15:24, Nick Piggin wrote:
> john stultz wrote: > > > > >+/* Required to safely shift negative values */ > >+#define shift_right(x, s) ({ \ > >+ __typeof__(x) __x = (x); \ > >+ __typeof__(s) __s = (s); \ > >+ __x < 0 ? -(-__x >> __s) : __x >> __s; \ > >+}) > >+ > > > > I'd hate to be the one to make you do another version of this ;) > > However, how about having something more descriptive than shift_right? > signed_shift_right / shift_right_signed, maybe?
Hi,
I'm against "signed shift right", because the reason for the macro is exaclty that CPUs do a "signed" shift right. John does a "signum(arg) * right_shift(abs(arg), number_of_positions)". So maybe it's the signed_unsigned_shift_right(), susr() to be cryptic ;-)
I'm only surprised that there are many places where such a routine is needed, and still it's missing in sime bitops.h #include.
Regards, Ulrich
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |