|
|
| version 1.164, 2007/08/02 16:05:27 | version 1.165, 2007/08/02 16:07:02 |
|---|---|
| Line 1914 xfs_bmbt_get_state( | Line 1914 xfs_bmbt_get_state( |
| ext_flag); | ext_flag); |
| } | } |
| #ifndef XFS_NATIVE_HOST | |
| /* Endian flipping versions of the bmbt extraction functions */ | /* Endian flipping versions of the bmbt extraction functions */ |
| void | void |
| xfs_bmbt_disk_get_all( | xfs_bmbt_disk_get_all( |
| xfs_bmbt_rec_t *r, | xfs_bmbt_rec_t *r, |
| xfs_bmbt_irec_t *s) | xfs_bmbt_irec_t *s) |
| { | { |
| __uint64_t l0, l1; | __xfs_bmbt_get_all(be64_to_cpu(r->l0), be64_to_cpu(r->l1), s); |
| l0 = INT_GET(r->l0, ARCH_CONVERT); | |
| l1 = INT_GET(r->l1, ARCH_CONVERT); | |
| __xfs_bmbt_get_all(l0, l1, s); | |
| } | } |
| /* | /* |
| Line 1936 xfs_filblks_t | Line 1930 xfs_filblks_t |
| xfs_bmbt_disk_get_blockcount( | xfs_bmbt_disk_get_blockcount( |
| xfs_bmbt_rec_t *r) | xfs_bmbt_rec_t *r) |
| { | { |
| return (xfs_filblks_t)(INT_GET(r->l1, ARCH_CONVERT) & XFS_MASK64LO(21)); | return (xfs_filblks_t)(be64_to_cpu(r->l1) & XFS_MASK64LO(21)); |
| } | } |
| /* | /* |
| Line 1946 xfs_fileoff_t | Line 1940 xfs_fileoff_t |
| xfs_bmbt_disk_get_startoff( | xfs_bmbt_disk_get_startoff( |
| xfs_bmbt_rec_t *r) | xfs_bmbt_rec_t *r) |
| { | { |
| return ((xfs_fileoff_t)INT_GET(r->l0, ARCH_CONVERT) & | return ((xfs_fileoff_t)be64_to_cpu(r->l0) & |
| XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN)) >> 9; | XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN)) >> 9; |
| } | } |
| #endif /* XFS_NATIVE_HOST */ | |
| /* | /* |
| * Increment cursor by one record at the level. | * Increment cursor by one record at the level. |
| Line 2348 xfs_bmbt_set_all( | Line 2340 xfs_bmbt_set_all( |
| } | } |
| #ifndef XFS_NATIVE_HOST | |
| /* | /* |
| * Set all the fields in a disk format bmap extent record from the arguments. | * Set all the fields in a disk format bmap extent record from the arguments. |
| */ | */ |
| Line 2369 xfs_bmbt_disk_set_allf( | Line 2360 xfs_bmbt_disk_set_allf( |
| #if XFS_BIG_BLKNOS | #if XFS_BIG_BLKNOS |
| ASSERT((startblock & XFS_MASK64HI(64-BMBT_STARTBLOCK_BITLEN)) == 0); | ASSERT((startblock & XFS_MASK64HI(64-BMBT_STARTBLOCK_BITLEN)) == 0); |
| INT_SET(r->l0, ARCH_CONVERT, | r->l0 = cpu_to_be64( |
| ((xfs_bmbt_rec_base_t)extent_flag << 63) | | ((xfs_bmbt_rec_base_t)extent_flag << 63) | |
| ((xfs_bmbt_rec_base_t)startoff << 9) | | ((xfs_bmbt_rec_base_t)startoff << 9) | |
| ((xfs_bmbt_rec_base_t)startblock >> 43)); | ((xfs_bmbt_rec_base_t)startblock >> 43)); |
| INT_SET(r->l1, ARCH_CONVERT, | r->l1 = cpu_to_be64( |
| ((xfs_bmbt_rec_base_t)startblock << 21) | | ((xfs_bmbt_rec_base_t)startblock << 21) | |
| ((xfs_bmbt_rec_base_t)blockcount & | ((xfs_bmbt_rec_base_t)blockcount & |
| (xfs_bmbt_rec_base_t)XFS_MASK64LO(21))); | (xfs_bmbt_rec_base_t)XFS_MASK64LO(21))); |
| #else /* !XFS_BIG_BLKNOS */ | #else /* !XFS_BIG_BLKNOS */ |
| if (ISNULLSTARTBLOCK(b)) { | if (ISNULLSTARTBLOCK(b)) { |
| INT_SET(r->l0, ARCH_CONVERT, | r->l0 = cpu_to_be64( |
| ((xfs_bmbt_rec_base_t)extent_flag << 63) | | ((xfs_bmbt_rec_base_t)extent_flag << 63) | |
| ((xfs_bmbt_rec_base_t)startoff << 9) | | ((xfs_bmbt_rec_base_t)startoff << 9) | |
| (xfs_bmbt_rec_base_t)XFS_MASK64LO(9)); | (xfs_bmbt_rec_base_t)XFS_MASK64LO(9)); |
| INT_SET(r->l1, ARCH_CONVERT, XFS_MASK64HI(11) | | r->l1 = cpu_to_be64(XFS_MASK64HI(11) | |
| ((xfs_bmbt_rec_base_t)startblock << 21) | | ((xfs_bmbt_rec_base_t)startblock << 21) | |
| ((xfs_bmbt_rec_base_t)blockcount & | ((xfs_bmbt_rec_base_t)blockcount & |
| (xfs_bmbt_rec_base_t)XFS_MASK64LO(21))); | (xfs_bmbt_rec_base_t)XFS_MASK64LO(21))); |
| } else { | } else { |
| INT_SET(r->l0, ARCH_CONVERT, | r->l0 = cpu_to_be64( |
| ((xfs_bmbt_rec_base_t)extent_flag << 63) | | ((xfs_bmbt_rec_base_t)extent_flag << 63) | |
| ((xfs_bmbt_rec_base_t)startoff << 9)); | ((xfs_bmbt_rec_base_t)startoff << 9)); |
| INT_SET(r->l1, ARCH_CONVERT, | r->l1 = cpu_to_be64( |
| ((xfs_bmbt_rec_base_t)startblock << 21) | | ((xfs_bmbt_rec_base_t)startblock << 21) | |
| ((xfs_bmbt_rec_base_t)blockcount & | ((xfs_bmbt_rec_base_t)blockcount & |
| (xfs_bmbt_rec_base_t)XFS_MASK64LO(21))); | (xfs_bmbt_rec_base_t)XFS_MASK64LO(21))); |
| Line 2410 xfs_bmbt_disk_set_all( | Line 2401 xfs_bmbt_disk_set_all( |
| xfs_bmbt_disk_set_allf(r, s->br_startoff, s->br_startblock, | xfs_bmbt_disk_set_allf(r, s->br_startoff, s->br_startblock, |
| s->br_blockcount, s->br_state); | s->br_blockcount, s->br_state); |
| } | } |
| #endif /* XFS_NATIVE_HOST */ | |
| /* | /* |
| * Set the blockcount field in a bmap extent record. | * Set the blockcount field in a bmap extent record. |