aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2008-10-30 01:54:12 -0400
committerLachlan McIlroy <lachlan@sgi.com>2008-10-30 01:54:12 -0400
commitde227dd9604934d2a6d33cd332d1be431719c93e (patch)
tree36254901d67015aa2f2621bea47f8082c31c8e55 /fs
parent561f7d17390d00444e6cd0b02b7516c91528082e (diff)
[XFS] add generic btree types
Add generic union types for btree pointers, keys and records. The generic btree pointer contains either a 32 and 64bit big endian scalar for short and long form btrees, and the key and record contain the relevant type for each possible btree. Split out from a bigger patch from Dave Chinner and simplified a little further. SGI-PV: 985583 SGI-Modid: xfs-linux-melb:xfs-kern:32178a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: Bill O'Donnell <billodo@sgi.com> Signed-off-by: David Chinner <david@fromorbit.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/xfs/xfs_btree.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/fs/xfs/xfs_btree.h b/fs/xfs/xfs_btree.h
index d30ee7498606..428e81f0e27e 100644
--- a/fs/xfs/xfs_btree.h
+++ b/fs/xfs/xfs_btree.h
@@ -80,6 +80,31 @@ typedef struct xfs_btree_block {
80} xfs_btree_block_t; 80} xfs_btree_block_t;
81 81
82/* 82/*
83 * Generic key, ptr and record wrapper structures.
84 *
85 * These are disk format structures, and are converted where necessary
86 * by the btree specific code that needs to interpret them.
87 */
88union xfs_btree_ptr {
89 __be32 s; /* short form ptr */
90 __be64 l; /* long form ptr */
91};
92
93union xfs_btree_key {
94 xfs_bmbt_key_t bmbt;
95 xfs_bmdr_key_t bmbr; /* bmbt root block */
96 xfs_alloc_key_t alloc;
97 xfs_inobt_key_t inobt;
98};
99
100union xfs_btree_rec {
101 xfs_bmbt_rec_t bmbt;
102 xfs_bmdr_rec_t bmbr; /* bmbt root block */
103 xfs_alloc_rec_t alloc;
104 xfs_inobt_rec_t inobt;
105};
106
107/*
83 * For logging record fields. 108 * For logging record fields.
84 */ 109 */
85#define XFS_BB_MAGIC 0x01 110#define XFS_BB_MAGIC 0x01