[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 */
|
||||
} 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.
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue