[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [patch] arca-vm-2.2.5



   On Tue, 6 Apr 1999, Stephen C. Tweedie wrote:

   -#define i (((unsigned long) inode)/(sizeof(struct inode) \
		    & ~ (sizeof(struct inode) - 1)))
   +#define i (((unsigned long) inode-PAGE_OFFSET)/(sizeof(struct inode) \
		    & ~ (sizeof(struct inode) - 1)))

 ...

   btw. shouldnt it rather be something like: 

   #define log2(x) \

Look at the code just the 'i' in question will output :-)

     mov    inode, %o0
     srlx   %o0, 3, %o4

So on sparc64 atleast, it amounts to "inode >> 3".  So:

(sizeof(struct inode) & ~ (sizeof(struct inode) - 1))

is 8 on sparc64.  The 'i' construct is just meant to get rid of the
"non significant" lower bits of the inode pointer and it does so very
nicely. :-)

Later,
David S. Miller
davem@redhat.com

--
To unsubscribe, send a message with 'unsubscribe linux-mm my@address'
in the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://humbolt.geo.uu.nl/Linux-MM/