[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>
This commit is contained in:
parent
561f7d1739
commit
de227dd960
|
@ -79,6 +79,31 @@ typedef struct xfs_btree_block {
|
||||||
} bb_u; /* rest */
|
} bb_u; /* rest */
|
||||||
} xfs_btree_block_t;
|
} xfs_btree_block_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Generic key, ptr and record wrapper structures.
|
||||||
|
*
|
||||||
|
* These are disk format structures, and are converted where necessary
|
||||||
|
* by the btree specific code that needs to interpret them.
|
||||||
|
*/
|
||||||
|
union xfs_btree_ptr {
|
||||||
|
__be32 s; /* short form ptr */
|
||||||
|
__be64 l; /* long form ptr */
|
||||||
|
};
|
||||||
|
|
||||||
|
union xfs_btree_key {
|
||||||
|
xfs_bmbt_key_t bmbt;
|
||||||
|
xfs_bmdr_key_t bmbr; /* bmbt root block */
|
||||||
|
xfs_alloc_key_t alloc;
|
||||||
|
xfs_inobt_key_t inobt;
|
||||||
|
};
|
||||||
|
|
||||||
|
union xfs_btree_rec {
|
||||||
|
xfs_bmbt_rec_t bmbt;
|
||||||
|
xfs_bmdr_rec_t bmbr; /* bmbt root block */
|
||||||
|
xfs_alloc_rec_t alloc;
|
||||||
|
xfs_inobt_rec_t inobt;
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For logging record fields.
|
* For logging record fields.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue