Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb82557f authored by Eric Sandeen's avatar Eric Sandeen Committed by Lachlan McIlroy
Browse files

[XFS] Remove macro-to-function indirections in the mask code

parent c9fb86a9
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -231,7 +231,7 @@ typedef struct xfs_perag
#define	XFS_FSB_TO_AGNO(mp,fsbno)	\
#define	XFS_FSB_TO_AGNO(mp,fsbno)	\
	((xfs_agnumber_t)((fsbno) >> (mp)->m_sb.sb_agblklog))
	((xfs_agnumber_t)((fsbno) >> (mp)->m_sb.sb_agblklog))
#define	XFS_FSB_TO_AGBNO(mp,fsbno)	\
#define	XFS_FSB_TO_AGBNO(mp,fsbno)	\
	((xfs_agblock_t)((fsbno) & XFS_MASK32LO((mp)->m_sb.sb_agblklog)))
	((xfs_agblock_t)((fsbno) & xfs_mask32lo((mp)->m_sb.sb_agblklog)))
#define	XFS_AGB_TO_DADDR(mp,agno,agbno)	\
#define	XFS_AGB_TO_DADDR(mp,agno,agbno)	\
	((xfs_daddr_t)XFS_FSB_TO_BB(mp, \
	((xfs_daddr_t)XFS_FSB_TO_BB(mp, \
		(xfs_fsblock_t)(agno) * (mp)->m_sb.sb_agblocks + (agbno)))
		(xfs_fsblock_t)(agno) * (mp)->m_sb.sb_agblocks + (agbno)))
+1 −9
Original line number Original line Diff line number Diff line
@@ -23,24 +23,16 @@
 */
 */


/*
/*
 * masks with n high/low bits set, 32-bit values & 64-bit values
 * masks with n high/low bits set, 64-bit values
 */
 */
#define	XFS_MASK32HI(n)		xfs_mask32hi(n)
static inline __uint32_t xfs_mask32hi(int n)
{
	return (__uint32_t)-1 << (32 - (n));
}
#define	XFS_MASK64HI(n)		xfs_mask64hi(n)
static inline __uint64_t xfs_mask64hi(int n)
static inline __uint64_t xfs_mask64hi(int n)
{
{
	return (__uint64_t)-1 << (64 - (n));
	return (__uint64_t)-1 << (64 - (n));
}
}
#define	XFS_MASK32LO(n)		xfs_mask32lo(n)
static inline __uint32_t xfs_mask32lo(int n)
static inline __uint32_t xfs_mask32lo(int n)
{
{
	return ((__uint32_t)1 << (n)) - 1;
	return ((__uint32_t)1 << (n)) - 1;
}
}
#define	XFS_MASK64LO(n)		xfs_mask64lo(n)
static inline __uint64_t xfs_mask64lo(int n)
static inline __uint64_t xfs_mask64lo(int n)
{
{
	return ((__uint64_t)1 << (n)) - 1;
	return ((__uint64_t)1 << (n)) - 1;
+42 −42
Original line number Original line Diff line number Diff line
@@ -110,16 +110,16 @@ __xfs_bmbt_get_all(


	ext_flag = (int)(l0 >> (64 - BMBT_EXNTFLAG_BITLEN));
	ext_flag = (int)(l0 >> (64 - BMBT_EXNTFLAG_BITLEN));
	s->br_startoff = ((xfs_fileoff_t)l0 &
	s->br_startoff = ((xfs_fileoff_t)l0 &
			   XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN)) >> 9;
			   xfs_mask64lo(64 - BMBT_EXNTFLAG_BITLEN)) >> 9;
#if XFS_BIG_BLKNOS
#if XFS_BIG_BLKNOS
	s->br_startblock = (((xfs_fsblock_t)l0 & XFS_MASK64LO(9)) << 43) |
	s->br_startblock = (((xfs_fsblock_t)l0 & xfs_mask64lo(9)) << 43) |
			   (((xfs_fsblock_t)l1) >> 21);
			   (((xfs_fsblock_t)l1) >> 21);
#else
#else
#ifdef DEBUG
#ifdef DEBUG
	{
	{
		xfs_dfsbno_t	b;
		xfs_dfsbno_t	b;


		b = (((xfs_dfsbno_t)l0 & XFS_MASK64LO(9)) << 43) |
		b = (((xfs_dfsbno_t)l0 & xfs_mask64lo(9)) << 43) |
		    (((xfs_dfsbno_t)l1) >> 21);
		    (((xfs_dfsbno_t)l1) >> 21);
		ASSERT((b >> 32) == 0 || ISNULLDSTARTBLOCK(b));
		ASSERT((b >> 32) == 0 || ISNULLDSTARTBLOCK(b));
		s->br_startblock = (xfs_fsblock_t)b;
		s->br_startblock = (xfs_fsblock_t)b;
@@ -128,7 +128,7 @@ __xfs_bmbt_get_all(
	s->br_startblock = (xfs_fsblock_t)(((xfs_dfsbno_t)l1) >> 21);
	s->br_startblock = (xfs_fsblock_t)(((xfs_dfsbno_t)l1) >> 21);
#endif	/* DEBUG */
#endif	/* DEBUG */
#endif	/* XFS_BIG_BLKNOS */
#endif	/* XFS_BIG_BLKNOS */
	s->br_blockcount = (xfs_filblks_t)(l1 & XFS_MASK64LO(21));
	s->br_blockcount = (xfs_filblks_t)(l1 & xfs_mask64lo(21));
	/* This is xfs_extent_state() in-line */
	/* This is xfs_extent_state() in-line */
	if (ext_flag) {
	if (ext_flag) {
		ASSERT(s->br_blockcount != 0);	/* saved for DMIG */
		ASSERT(s->br_blockcount != 0);	/* saved for DMIG */
@@ -153,7 +153,7 @@ xfs_filblks_t
xfs_bmbt_get_blockcount(
xfs_bmbt_get_blockcount(
	xfs_bmbt_rec_host_t	*r)
	xfs_bmbt_rec_host_t	*r)
{
{
	return (xfs_filblks_t)(r->l1 & XFS_MASK64LO(21));
	return (xfs_filblks_t)(r->l1 & xfs_mask64lo(21));
}
}


/*
/*
@@ -164,13 +164,13 @@ xfs_bmbt_get_startblock(
	xfs_bmbt_rec_host_t	*r)
	xfs_bmbt_rec_host_t	*r)
{
{
#if XFS_BIG_BLKNOS
#if XFS_BIG_BLKNOS
	return (((xfs_fsblock_t)r->l0 & XFS_MASK64LO(9)) << 43) |
	return (((xfs_fsblock_t)r->l0 & xfs_mask64lo(9)) << 43) |
	       (((xfs_fsblock_t)r->l1) >> 21);
	       (((xfs_fsblock_t)r->l1) >> 21);
#else
#else
#ifdef DEBUG
#ifdef DEBUG
	xfs_dfsbno_t	b;
	xfs_dfsbno_t	b;


	b = (((xfs_dfsbno_t)r->l0 & XFS_MASK64LO(9)) << 43) |
	b = (((xfs_dfsbno_t)r->l0 & xfs_mask64lo(9)) << 43) |
	    (((xfs_dfsbno_t)r->l1) >> 21);
	    (((xfs_dfsbno_t)r->l1) >> 21);
	ASSERT((b >> 32) == 0 || ISNULLDSTARTBLOCK(b));
	ASSERT((b >> 32) == 0 || ISNULLDSTARTBLOCK(b));
	return (xfs_fsblock_t)b;
	return (xfs_fsblock_t)b;
@@ -188,7 +188,7 @@ xfs_bmbt_get_startoff(
	xfs_bmbt_rec_host_t	*r)
	xfs_bmbt_rec_host_t	*r)
{
{
	return ((xfs_fileoff_t)r->l0 &
	return ((xfs_fileoff_t)r->l0 &
		 XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN)) >> 9;
		 xfs_mask64lo(64 - BMBT_EXNTFLAG_BITLEN)) >> 9;
}
}


xfs_exntst_t
xfs_exntst_t
@@ -219,7 +219,7 @@ 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)(be64_to_cpu(r->l1) & XFS_MASK64LO(21));
	return (xfs_filblks_t)(be64_to_cpu(r->l1) & xfs_mask64lo(21));
}
}


/*
/*
@@ -230,7 +230,7 @@ xfs_bmbt_disk_get_startoff(
	xfs_bmbt_rec_t	*r)
	xfs_bmbt_rec_t	*r)
{
{
	return ((xfs_fileoff_t)be64_to_cpu(r->l0) &
	return ((xfs_fileoff_t)be64_to_cpu(r->l0) &
		 XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN)) >> 9;
		 xfs_mask64lo(64 - BMBT_EXNTFLAG_BITLEN)) >> 9;
}
}




@@ -248,33 +248,33 @@ xfs_bmbt_set_allf(
	int		extent_flag = (state == XFS_EXT_NORM) ? 0 : 1;
	int		extent_flag = (state == XFS_EXT_NORM) ? 0 : 1;


	ASSERT(state == XFS_EXT_NORM || state == XFS_EXT_UNWRITTEN);
	ASSERT(state == XFS_EXT_NORM || state == XFS_EXT_UNWRITTEN);
	ASSERT((startoff & XFS_MASK64HI(64-BMBT_STARTOFF_BITLEN)) == 0);
	ASSERT((startoff & xfs_mask64hi(64-BMBT_STARTOFF_BITLEN)) == 0);
	ASSERT((blockcount & XFS_MASK64HI(64-BMBT_BLOCKCOUNT_BITLEN)) == 0);
	ASSERT((blockcount & xfs_mask64hi(64-BMBT_BLOCKCOUNT_BITLEN)) == 0);


#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);


	r->l0 = ((xfs_bmbt_rec_base_t)extent_flag << 63) |
	r->l0 = ((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);
	r->l1 = ((xfs_bmbt_rec_base_t)startblock << 21) |
	r->l1 = ((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(startblock)) {
	if (ISNULLSTARTBLOCK(startblock)) {
		r->l0 = ((xfs_bmbt_rec_base_t)extent_flag << 63) |
		r->l0 = ((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);
		r->l1 = XFS_MASK64HI(11) |
		r->l1 = 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 {
		r->l0 = ((xfs_bmbt_rec_base_t)extent_flag << 63) |
		r->l0 = ((xfs_bmbt_rec_base_t)extent_flag << 63) |
			((xfs_bmbt_rec_base_t)startoff << 9);
			((xfs_bmbt_rec_base_t)startoff << 9);
		r->l1 = ((xfs_bmbt_rec_base_t)startblock << 21) |
		r->l1 = ((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));
	}
	}
#endif	/* XFS_BIG_BLKNOS */
#endif	/* XFS_BIG_BLKNOS */
}
}
@@ -306,11 +306,11 @@ xfs_bmbt_disk_set_allf(
	int			extent_flag = (state == XFS_EXT_NORM) ? 0 : 1;
	int			extent_flag = (state == XFS_EXT_NORM) ? 0 : 1;


	ASSERT(state == XFS_EXT_NORM || state == XFS_EXT_UNWRITTEN);
	ASSERT(state == XFS_EXT_NORM || state == XFS_EXT_UNWRITTEN);
	ASSERT((startoff & XFS_MASK64HI(64-BMBT_STARTOFF_BITLEN)) == 0);
	ASSERT((startoff & xfs_mask64hi(64-BMBT_STARTOFF_BITLEN)) == 0);
	ASSERT((blockcount & XFS_MASK64HI(64-BMBT_BLOCKCOUNT_BITLEN)) == 0);
	ASSERT((blockcount & xfs_mask64hi(64-BMBT_BLOCKCOUNT_BITLEN)) == 0);


#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);


	r->l0 = cpu_to_be64(
	r->l0 = cpu_to_be64(
		((xfs_bmbt_rec_base_t)extent_flag << 63) |
		((xfs_bmbt_rec_base_t)extent_flag << 63) |
@@ -319,17 +319,17 @@ xfs_bmbt_disk_set_allf(
	r->l1 = cpu_to_be64(
	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(startblock)) {
	if (ISNULLSTARTBLOCK(startblock)) {
		r->l0 = cpu_to_be64(
		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));
		r->l1 = cpu_to_be64(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 {
		r->l0 = cpu_to_be64(
		r->l0 = cpu_to_be64(
			((xfs_bmbt_rec_base_t)extent_flag << 63) |
			((xfs_bmbt_rec_base_t)extent_flag << 63) |
@@ -337,7 +337,7 @@ xfs_bmbt_disk_set_allf(
		r->l1 = cpu_to_be64(
		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)));
	}
	}
#endif	/* XFS_BIG_BLKNOS */
#endif	/* XFS_BIG_BLKNOS */
}
}
@@ -362,9 +362,9 @@ xfs_bmbt_set_blockcount(
	xfs_bmbt_rec_host_t *r,
	xfs_bmbt_rec_host_t *r,
	xfs_filblks_t	v)
	xfs_filblks_t	v)
{
{
	ASSERT((v & XFS_MASK64HI(43)) == 0);
	ASSERT((v & xfs_mask64hi(43)) == 0);
	r->l1 = (r->l1 & (xfs_bmbt_rec_base_t)XFS_MASK64HI(43)) |
	r->l1 = (r->l1 & (xfs_bmbt_rec_base_t)xfs_mask64hi(43)) |
		  (xfs_bmbt_rec_base_t)(v & XFS_MASK64LO(21));
		  (xfs_bmbt_rec_base_t)(v & xfs_mask64lo(21));
}
}


/*
/*
@@ -376,21 +376,21 @@ xfs_bmbt_set_startblock(
	xfs_fsblock_t	v)
	xfs_fsblock_t	v)
{
{
#if XFS_BIG_BLKNOS
#if XFS_BIG_BLKNOS
	ASSERT((v & XFS_MASK64HI(12)) == 0);
	ASSERT((v & xfs_mask64hi(12)) == 0);
	r->l0 = (r->l0 & (xfs_bmbt_rec_base_t)XFS_MASK64HI(55)) |
	r->l0 = (r->l0 & (xfs_bmbt_rec_base_t)xfs_mask64hi(55)) |
		  (xfs_bmbt_rec_base_t)(v >> 43);
		  (xfs_bmbt_rec_base_t)(v >> 43);
	r->l1 = (r->l1 & (xfs_bmbt_rec_base_t)XFS_MASK64LO(21)) |
	r->l1 = (r->l1 & (xfs_bmbt_rec_base_t)xfs_mask64lo(21)) |
		  (xfs_bmbt_rec_base_t)(v << 21);
		  (xfs_bmbt_rec_base_t)(v << 21);
#else	/* !XFS_BIG_BLKNOS */
#else	/* !XFS_BIG_BLKNOS */
	if (ISNULLSTARTBLOCK(v)) {
	if (ISNULLSTARTBLOCK(v)) {
		r->l0 |= (xfs_bmbt_rec_base_t)XFS_MASK64LO(9);
		r->l0 |= (xfs_bmbt_rec_base_t)xfs_mask64lo(9);
		r->l1 = (xfs_bmbt_rec_base_t)XFS_MASK64HI(11) |
		r->l1 = (xfs_bmbt_rec_base_t)xfs_mask64hi(11) |
			  ((xfs_bmbt_rec_base_t)v << 21) |
			  ((xfs_bmbt_rec_base_t)v << 21) |
			  (r->l1 & (xfs_bmbt_rec_base_t)XFS_MASK64LO(21));
			  (r->l1 & (xfs_bmbt_rec_base_t)xfs_mask64lo(21));
	} else {
	} else {
		r->l0 &= ~(xfs_bmbt_rec_base_t)XFS_MASK64LO(9);
		r->l0 &= ~(xfs_bmbt_rec_base_t)xfs_mask64lo(9);
		r->l1 = ((xfs_bmbt_rec_base_t)v << 21) |
		r->l1 = ((xfs_bmbt_rec_base_t)v << 21) |
			  (r->l1 & (xfs_bmbt_rec_base_t)XFS_MASK64LO(21));
			  (r->l1 & (xfs_bmbt_rec_base_t)xfs_mask64lo(21));
	}
	}
#endif	/* XFS_BIG_BLKNOS */
#endif	/* XFS_BIG_BLKNOS */
}
}
@@ -403,10 +403,10 @@ xfs_bmbt_set_startoff(
	xfs_bmbt_rec_host_t *r,
	xfs_bmbt_rec_host_t *r,
	xfs_fileoff_t	v)
	xfs_fileoff_t	v)
{
{
	ASSERT((v & XFS_MASK64HI(9)) == 0);
	ASSERT((v & xfs_mask64hi(9)) == 0);
	r->l0 = (r->l0 & (xfs_bmbt_rec_base_t) XFS_MASK64HI(1)) |
	r->l0 = (r->l0 & (xfs_bmbt_rec_base_t) xfs_mask64hi(1)) |
		((xfs_bmbt_rec_base_t)v << 9) |
		((xfs_bmbt_rec_base_t)v << 9) |
		  (r->l0 & (xfs_bmbt_rec_base_t)XFS_MASK64LO(9));
		  (r->l0 & (xfs_bmbt_rec_base_t)xfs_mask64lo(9));
}
}


/*
/*
@@ -419,9 +419,9 @@ xfs_bmbt_set_state(
{
{
	ASSERT(v == XFS_EXT_NORM || v == XFS_EXT_UNWRITTEN);
	ASSERT(v == XFS_EXT_NORM || v == XFS_EXT_UNWRITTEN);
	if (v == XFS_EXT_NORM)
	if (v == XFS_EXT_NORM)
		r->l0 &= XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN);
		r->l0 &= xfs_mask64lo(64 - BMBT_EXNTFLAG_BITLEN);
	else
	else
		r->l0 |= XFS_MASK64HI(BMBT_EXNTFLAG_BITLEN);
		r->l0 |= xfs_mask64hi(BMBT_EXNTFLAG_BITLEN);
}
}


/*
/*