提交 ce217952 编写于 作者: M Michael Ellerman 提交者: Paul Mackerras

[PATCH] ppc64: Consolidate some macros

The only caller of chunk_offset() and abs_chunk() is phys_to_abs(), so
fold the former two into the latter.
Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
Signed-off-by: NPaul Mackerras <paulus@samba.org>
上级 56e97b71
......@@ -44,24 +44,17 @@ static inline unsigned long addr_to_chunk(unsigned long addr)
return addr >> MSCHUNKS_CHUNK_SHIFT;
}
static inline unsigned long chunk_offset(unsigned long addr)
static inline unsigned long phys_to_abs(unsigned long pa)
{
return addr & MSCHUNKS_OFFSET_MASK;
}
unsigned long chunk;
static inline unsigned long abs_chunk(unsigned long pchunk)
{
if (pchunk >= mschunks_map.num_chunks)
return pchunk;
chunk = addr_to_chunk(pa);
return mschunks_map.mapping[pchunk];
}
if (chunk < mschunks_map.num_chunks)
chunk = mschunks_map.mapping[chunk];
/* A macro so it can take pointers or unsigned long. */
#define phys_to_abs(pa) \
({ unsigned long _pa = (unsigned long)(pa); \
chunk_to_addr(abs_chunk(addr_to_chunk(_pa))) + chunk_offset(_pa); \
})
return chunk_to_addr(chunk) + (pa & MSCHUNKS_OFFSET_MASK);
}
static inline unsigned long
physRpn_to_absRpn(unsigned long rpn)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册