aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_log_priv.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2007-10-11 20:58:05 -0400
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>2008-02-07 02:10:31 -0500
commit03bea6fe6c38c502c815432999eacfa2eccb0a12 (patch)
tree9800a1633a53dafdceb8799155a192d65be0b111 /fs/xfs/xfs_log_priv.h
parent9909c4aa1a3e5b1f23cbc1bc2f0db025a7f75f85 (diff)
[XFS] clean up some xfs_log_priv.h macros
- the various assign lsn macros are replaced by a single inline, xlog_assign_lsn, which is equivalent to ASSIGN_ANY_LSN_HOST except for a more sane calling convention. ASSIGN_LSN_DISK is replaced by xlog_assign_lsn and a manual bytespap, and ASSIGN_LSN by the same, except we pass the cycle and block arguments explicitly instead of a log paramter. The latter two variants only had 2, respectively one user anyway. - the GET_CYCLE is replaced by a xlog_get_cycle inline with exactly the same calling conventions. - GET_CLIENT_ID is replaced by xlog_get_client_id which leaves away the unused arch argument. Instead of conditional defintions depending on host endianess we now do an unconditional swap and shift then, which generates equal code. - the unused XLOG_SET macro is removed. SGI-PV: 971186 SGI-Modid: xfs-linux-melb:xfs-kern:29819a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_log_priv.h')
-rw-r--r--fs/xfs/xfs_log_priv.h47
1 files changed, 16 insertions, 31 deletions
diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h
index 07da6a72628a..e391f58deae1 100644
--- a/fs/xfs/xfs_log_priv.h
+++ b/fs/xfs/xfs_log_priv.h
@@ -55,32 +55,21 @@ struct xfs_mount;
55 BTOBB(XLOG_MAX_ICLOGS << (XFS_SB_VERSION_HASLOGV2(&log->l_mp->m_sb) ? \ 55 BTOBB(XLOG_MAX_ICLOGS << (XFS_SB_VERSION_HASLOGV2(&log->l_mp->m_sb) ? \
56 XLOG_MAX_RECORD_BSHIFT : XLOG_BIG_RECORD_BSHIFT)) 56 XLOG_MAX_RECORD_BSHIFT : XLOG_BIG_RECORD_BSHIFT))
57 57
58/*
59 * set lsns
60 */
61 58
62#define ASSIGN_ANY_LSN_HOST(lsn,cycle,block) \ 59static inline xfs_lsn_t xlog_assign_lsn(uint cycle, uint block)
63 { \ 60{
64 (lsn) = ((xfs_lsn_t)(cycle)<<32)|(block); \ 61 return ((xfs_lsn_t)cycle << 32) | block;
65 } 62}
66#define ASSIGN_ANY_LSN_DISK(lsn,cycle,block) \
67 { \
68 INT_SET(((uint *)&(lsn))[0], ARCH_CONVERT, (cycle)); \
69 INT_SET(((uint *)&(lsn))[1], ARCH_CONVERT, (block)); \
70 }
71#define ASSIGN_LSN(lsn,log) \
72 ASSIGN_ANY_LSN_DISK(lsn,(log)->l_curr_cycle,(log)->l_curr_block);
73
74#define XLOG_SET(f,b) (((f) & (b)) == (b))
75
76#define GET_CYCLE(ptr, arch) \
77 (INT_GET(*(uint *)(ptr), arch) == XLOG_HEADER_MAGIC_NUM ? \
78 INT_GET(*((uint *)(ptr)+1), arch) : \
79 INT_GET(*(uint *)(ptr), arch) \
80 )
81 63
82#define BLK_AVG(blk1, blk2) ((blk1+blk2) >> 1) 64static inline uint xlog_get_cycle(char *ptr)
65{
66 if (INT_GET(*(uint *)ptr, ARCH_CONVERT) == XLOG_HEADER_MAGIC_NUM)
67 return INT_GET(*((uint *)ptr + 1), ARCH_CONVERT);
68 else
69 return INT_GET(*(uint *)ptr, ARCH_CONVERT);
70}
83 71
72#define BLK_AVG(blk1, blk2) ((blk1+blk2) >> 1)
84 73
85#ifdef __KERNEL__ 74#ifdef __KERNEL__
86 75
@@ -96,14 +85,10 @@ struct xfs_mount;
96 * 85 *
97 * this has endian issues, of course. 86 * this has endian issues, of course.
98 */ 87 */
99 88static inline uint xlog_get_client_id(uint i)
100#ifndef XFS_NATIVE_HOST 89{
101#define GET_CLIENT_ID(i,arch) \ 90 return INT_GET(i, ARCH_CONVERT) >> 24;
102 ((i) & 0xff) 91}
103#else
104#define GET_CLIENT_ID(i,arch) \
105 ((i) >> 24)
106#endif
107 92
108#define xlog_panic(args...) cmn_err(CE_PANIC, ## args) 93#define xlog_panic(args...) cmn_err(CE_PANIC, ## args)
109#define xlog_exit(args...) cmn_err(CE_PANIC, ## args) 94#define xlog_exit(args...) cmn_err(CE_PANIC, ## args)