diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2005-08-03 06:21:23 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-08-28 20:53:36 -0400 |
commit | ce21795275ab469b97384faa36462350af17eca0 (patch) | |
tree | a2f8be762b20849f37b02f1cbc2bfc9519771cde /include/asm-ppc64/abs_addr.h | |
parent | 56e97b71bf55edb69dc8e9715553972ce50b1564 (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.h | 21 |
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 | ||
47 | static inline unsigned long chunk_offset(unsigned long addr) | 47 | static inline unsigned long phys_to_abs(unsigned long pa) |
48 | { | 48 | { |
49 | return addr & MSCHUNKS_OFFSET_MASK; | 49 | unsigned long chunk; |
50 | } | ||
51 | 50 | ||
52 | static 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 | ||
66 | static inline unsigned long | 59 | static inline unsigned long |
67 | physRpn_to_absRpn(unsigned long rpn) | 60 | physRpn_to_absRpn(unsigned long rpn) |