Messages in this thread | | | Date | Wed, 7 Apr 1999 17:07:43 -0400 | From | Arvind Sankar <> | Subject | Re: [patch] arca-vm-2.2.5 |
| |
On Wed, Apr 07, 1999 at 05:59:04PM +0200, Gabriel Paubert wrote: > > > On Tue, 6 Apr 1999, David Miller wrote: > > > Date: Wed, 7 Apr 1999 00:49:18 +0200 (CEST) > > From: Ingo Molnar <mingo@chiara.csoma.elte.hu> > > > > It should be 'inode >> 8' (which is done by the log2 > > solution). Unless i'm misunderstanding something. > > > > Consider that: > > > > (((unsigned long) inode) >> (sizeof(struct inode) & ~ (sizeof(struct inode) - 1))) > > > > sort of approximates this and avoids the funny looking log2 macro. :-) > > May I disagree ? Compute this expression in the case sizeof(struct inode) > is a large power of 2. Say 0x100, the shift count becomes (0x100 & ~0xff), > or 0x100. Shifts by amounts larger than or equal to the word size are > undefined in C AFAIR (and in practice on most architectures which take > the shift count modulo some power of 2). >
typo there, I guess. the >> should be an integer division. Since the divisor is a constant power of 2, the compiler will optimize it into a shift.
-- arvind
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |