aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-ppc64/abs_addr.h
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2005-08-03 06:21:23 -0400
committerPaul Mackerras <paulus@samba.org>2005-08-28 20:53:36 -0400
commitce21795275ab469b97384faa36462350af17eca0 (patch)
treea2f8be762b20849f37b02f1cbc2bfc9519771cde /include/asm-ppc64/abs_addr.h
parent56e97b71bf55edb69dc8e9715553972ce50b1564 (diff)
[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: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include/asm-ppc64/abs_addr.h')
-rw-r--r--include/asm-ppc64/abs_addr.h21
1 files changed, 7 insertions, 14 deletions
diff --git a/include/asm-ppc64/abs_addr.h b/include/asm-ppc64/abs_addr.h
index 05414a9bfdd1..025527742fef 100644
--- a/include/asm-ppc64/abs_addr.h
+++ b/include/asm-ppc64/abs_addr.h
@@ -44,24 +44,17 @@ static inline unsigned long addr_to_chunk(unsigned long addr)
44 return addr >> MSCHUNKS_CHUNK_SHIFT; 44 return addr >> MSCHUNKS_CHUNK_SHIFT;
45} 45}
46 46
47static inline unsigned long chunk_offset(unsigned long addr) 47static inline unsigned long phys_to_abs(unsigned long pa)
48{ 48{
49 return addr & MSCHUNKS_OFFSET_MASK; 49 unsigned long chunk;
50}
51 50
52static inline unsigned long abs_chunk(unsigned long pchunk) 51 chunk = addr_to_chunk(pa);
53{
54 if (pchunk >= mschunks_map.num_chunks)
55 return pchunk;
56 52
57 return mschunks_map.mapping[pchunk]; 53 if (chunk < mschunks_map.num_chunks)
58} 54 chunk = mschunks_map.mapping[chunk];
59 55
60/* A macro so it can take pointers or unsigned long. */ 56 return chunk_to_addr(chunk) + (pa & MSCHUNKS_OFFSET_MASK);
61#define phys_to_abs(pa) \ 57}
62 ({ unsigned long _pa = (unsigned long)(pa); \
63 chunk_to_addr(abs_chunk(addr_to_chunk(_pa))) + chunk_offset(_pa); \
64 })
65 58
66static inline unsigned long 59static inline unsigned long
67physRpn_to_absRpn(unsigned long rpn) 60physRpn_to_absRpn(unsigned long rpn)