0

コードは次のとおりです。

static inline struct list_head * d_hash(struct dentry *parent, unsigned long hash)
{
      hash += (unsigned long)parent / L1_CACHE_BYTES;
      hash = hash^(hash>>D_HASHBITS)^(hash>>D_HASHBITS*2);
      return dentry_hashtable + (hash & D_HASHMASK);
}

この機能を理解するには?
特に、「hash = hash^(hash>>D_HASHBITS)^(hash>>D_HASHBITS*2);」の行

ありがとうございました

PS: コード形式: http://lxr.oss.org.cn/source/fs/dcache.c?v=2.6.16#L885

4

1 に答える 1