Messages in this thread | | | From | Andreas Schwab <> | Subject | Re: [KERNEL]: Avoid divide in IS_ALIGN | Date | Wed, 21 Nov 2007 14:35:07 +0100 |
| |
"linux-os (Dick Johnson)" <linux-os@analogic.com> writes:
> Executing this script............. > > cat <<EOF >/tmp/xxx.c > #include <stdio.h> > > #define IS_ALIGNED(x,a) (((x) % ((typeof(x))(a))) == 0) > #define _IS_ALIGNED(x, a) (((x) & ((typeof(x))(a) - 1)) == 0) > > int main() > { > int i; > long p = 0x12345678; > for(i=1; i< 0x11; i++) > printf("Old = %d, new = %d\n", IS_ALIGNED(p, i), _IS_ALIGNED(p, i));
Alignment is only defined for powers of two.
Andreas.
-- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." - 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/
| |