⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xfs_sb.h

📁 linux 内核源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
#define	XFS_SB_GOOD_VERSION(sbp)	xfs_sb_good_version(sbp)#ifdef __KERNEL__static inline int xfs_sb_good_version(xfs_sb_t *sbp){	return (((sbp->sb_versionnum >= XFS_SB_VERSION_1) && \		  (sbp->sb_versionnum <= XFS_SB_VERSION_3)) || \		   ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \		    !((sbp->sb_versionnum & ~XFS_SB_VERSION_OKREALBITS) || \		      ((sbp->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT) && \		       (sbp->sb_features2 & ~XFS_SB_VERSION2_OKREALBITS))) && \	  	    (sbp->sb_shared_vn <= XFS_SB_MAX_SHARED_VN)));}#elsestatic inline int xfs_sb_good_version(xfs_sb_t *sbp){	return (((sbp->sb_versionnum >= XFS_SB_VERSION_1) && \		  (sbp->sb_versionnum <= XFS_SB_VERSION_3)) || \		   ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \		    !((sbp->sb_versionnum & ~XFS_SB_VERSION_OKREALBITS) || \		      ((sbp->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT) && \		       (sbp->sb_features2 & ~XFS_SB_VERSION2_OKREALBITS))) && \		  (!(sbp->sb_versionnum & XFS_SB_VERSION_SHAREDBIT) || \		   (sbp->sb_shared_vn <= XFS_SB_MAX_SHARED_VN))));}#endif /* __KERNEL__ */#define	XFS_SB_VERSION_TONEW(v)	xfs_sb_version_tonew(v)static inline unsigned xfs_sb_version_tonew(unsigned v){	return ((((v) == XFS_SB_VERSION_1) ? \		0 : \		(((v) == XFS_SB_VERSION_2) ? \			XFS_SB_VERSION_ATTRBIT : \			(XFS_SB_VERSION_ATTRBIT | XFS_SB_VERSION_NLINKBIT))) | \		XFS_SB_VERSION_4);}#define	XFS_SB_VERSION_TOOLD(v)	xfs_sb_version_toold(v)static inline unsigned xfs_sb_version_toold(unsigned v){	return (((v) & (XFS_SB_VERSION_QUOTABIT | XFS_SB_VERSION_ALIGNBIT)) ? \		0 : \		(((v) & XFS_SB_VERSION_NLINKBIT) ? \			XFS_SB_VERSION_3 : \			(((v) & XFS_SB_VERSION_ATTRBIT) ?  \				XFS_SB_VERSION_2 : \				XFS_SB_VERSION_1)));}#define	XFS_SB_VERSION_HASATTR(sbp)	xfs_sb_version_hasattr(sbp)static inline int xfs_sb_version_hasattr(xfs_sb_t *sbp){	return ((sbp)->sb_versionnum == XFS_SB_VERSION_2) || \		 ((sbp)->sb_versionnum == XFS_SB_VERSION_3) || \		 ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \		  ((sbp)->sb_versionnum & XFS_SB_VERSION_ATTRBIT));}#define	XFS_SB_VERSION_ADDATTR(sbp)	xfs_sb_version_addattr(sbp)static inline void xfs_sb_version_addattr(xfs_sb_t *sbp){	(sbp)->sb_versionnum = (((sbp)->sb_versionnum == XFS_SB_VERSION_1) ? \		XFS_SB_VERSION_2 : \		((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) ? \			((sbp)->sb_versionnum | XFS_SB_VERSION_ATTRBIT) : \			(XFS_SB_VERSION_4 | XFS_SB_VERSION_ATTRBIT)));}#define	XFS_SB_VERSION_HASNLINK(sbp)	xfs_sb_version_hasnlink(sbp)static inline int xfs_sb_version_hasnlink(xfs_sb_t *sbp){	return ((sbp)->sb_versionnum == XFS_SB_VERSION_3) || \		 ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \		  ((sbp)->sb_versionnum & XFS_SB_VERSION_NLINKBIT));}#define	XFS_SB_VERSION_ADDNLINK(sbp)	xfs_sb_version_addnlink(sbp)static inline void xfs_sb_version_addnlink(xfs_sb_t *sbp){	(sbp)->sb_versionnum = ((sbp)->sb_versionnum <= XFS_SB_VERSION_2 ? \		XFS_SB_VERSION_3 : \		((sbp)->sb_versionnum | XFS_SB_VERSION_NLINKBIT));}#define	XFS_SB_VERSION_HASQUOTA(sbp)	xfs_sb_version_hasquota(sbp)static inline int xfs_sb_version_hasquota(xfs_sb_t *sbp){	return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \		((sbp)->sb_versionnum & XFS_SB_VERSION_QUOTABIT);}#define	XFS_SB_VERSION_ADDQUOTA(sbp)	xfs_sb_version_addquota(sbp)static inline void xfs_sb_version_addquota(xfs_sb_t *sbp){	(sbp)->sb_versionnum = \		 (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 ? \			((sbp)->sb_versionnum | XFS_SB_VERSION_QUOTABIT) : \			(XFS_SB_VERSION_TONEW((sbp)->sb_versionnum) | \			 XFS_SB_VERSION_QUOTABIT));}#define	XFS_SB_VERSION_HASALIGN(sbp)	xfs_sb_version_hasalign(sbp)static inline int xfs_sb_version_hasalign(xfs_sb_t *sbp){	return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \		((sbp)->sb_versionnum & XFS_SB_VERSION_ALIGNBIT);}#define	XFS_SB_VERSION_SUBALIGN(sbp)	xfs_sb_version_subalign(sbp)static inline void xfs_sb_version_subalign(xfs_sb_t *sbp){	(sbp)->sb_versionnum = \	 XFS_SB_VERSION_TOOLD((sbp)->sb_versionnum & ~XFS_SB_VERSION_ALIGNBIT);}#define XFS_SB_VERSION_HASDALIGN(sbp)	xfs_sb_version_hasdalign(sbp)static inline int xfs_sb_version_hasdalign(xfs_sb_t *sbp){	return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \		((sbp)->sb_versionnum & XFS_SB_VERSION_DALIGNBIT);}#define XFS_SB_VERSION_ADDDALIGN(sbp)	xfs_sb_version_adddalign(sbp)static inline int xfs_sb_version_adddalign(xfs_sb_t *sbp){	return (sbp)->sb_versionnum = \		((sbp)->sb_versionnum | XFS_SB_VERSION_DALIGNBIT);}#define XFS_SB_VERSION_HASSHARED(sbp)	xfs_sb_version_hasshared(sbp)static inline int xfs_sb_version_hasshared(xfs_sb_t *sbp){	return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \		((sbp)->sb_versionnum & XFS_SB_VERSION_SHAREDBIT);}#define XFS_SB_VERSION_ADDSHARED(sbp)	xfs_sb_version_addshared(sbp)static inline int xfs_sb_version_addshared(xfs_sb_t *sbp){	return (sbp)->sb_versionnum = \		((sbp)->sb_versionnum | XFS_SB_VERSION_SHAREDBIT);}#define XFS_SB_VERSION_SUBSHARED(sbp)	xfs_sb_version_subshared(sbp)static inline int xfs_sb_version_subshared(xfs_sb_t *sbp){	return (sbp)->sb_versionnum = \		((sbp)->sb_versionnum & ~XFS_SB_VERSION_SHAREDBIT);}#define XFS_SB_VERSION_HASDIRV2(sbp)	xfs_sb_version_hasdirv2(sbp)static inline int xfs_sb_version_hasdirv2(xfs_sb_t *sbp){	return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \		((sbp)->sb_versionnum & XFS_SB_VERSION_DIRV2BIT);}#define XFS_SB_VERSION_HASLOGV2(sbp)   xfs_sb_version_haslogv2(sbp)static inline int xfs_sb_version_haslogv2(xfs_sb_t *sbp){	return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \		((sbp)->sb_versionnum & XFS_SB_VERSION_LOGV2BIT);}#define XFS_SB_VERSION_HASEXTFLGBIT(sbp)	xfs_sb_version_hasextflgbit(sbp)static inline int xfs_sb_version_hasextflgbit(xfs_sb_t *sbp){	return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \		((sbp)->sb_versionnum & XFS_SB_VERSION_EXTFLGBIT);}#define XFS_SB_VERSION_ADDEXTFLGBIT(sbp)	xfs_sb_version_addextflgbit(sbp)static inline int xfs_sb_version_addextflgbit(xfs_sb_t *sbp){	return (sbp)->sb_versionnum = \		((sbp)->sb_versionnum | XFS_SB_VERSION_EXTFLGBIT);}#define XFS_SB_VERSION_SUBEXTFLGBIT(sbp)	xfs_sb_version_subextflgbit(sbp)static inline int xfs_sb_version_subextflgbit(xfs_sb_t *sbp){	return (sbp)->sb_versionnum = \		((sbp)->sb_versionnum & ~XFS_SB_VERSION_EXTFLGBIT);}#define XFS_SB_VERSION_HASSECTOR(sbp)   xfs_sb_version_hassector(sbp)static inline int xfs_sb_version_hassector(xfs_sb_t *sbp){	return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \		((sbp)->sb_versionnum & XFS_SB_VERSION_SECTORBIT);}#define XFS_SB_VERSION_HASMOREBITS(sbp)	xfs_sb_version_hasmorebits(sbp)static inline int xfs_sb_version_hasmorebits(xfs_sb_t *sbp){	return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \		((sbp)->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT);}/* * sb_features2 bit version macros. * * For example, for a bit defined as XFS_SB_VERSION2_FUNBIT, has a macro: * * SB_VERSION_HASFUNBIT(xfs_sb_t *sbp) *	((XFS_SB_VERSION_HASMOREBITS(sbp) && *	 ((sbp)->sb_features2 & XFS_SB_VERSION2_FUNBIT) */static inline int xfs_sb_version_haslazysbcount(xfs_sb_t *sbp){	return (XFS_SB_VERSION_HASMOREBITS(sbp) &&	\		((sbp)->sb_features2 & XFS_SB_VERSION2_LAZYSBCOUNTBIT));}#define XFS_SB_VERSION_HASATTR2(sbp)	xfs_sb_version_hasattr2(sbp)static inline int xfs_sb_version_hasattr2(xfs_sb_t *sbp){	return (XFS_SB_VERSION_HASMOREBITS(sbp)) &&	\		((sbp)->sb_features2 & XFS_SB_VERSION2_ATTR2BIT);}#define XFS_SB_VERSION_ADDATTR2(sbp)	xfs_sb_version_addattr2(sbp)static inline void xfs_sb_version_addattr2(xfs_sb_t *sbp){	((sbp)->sb_versionnum =	\		((sbp)->sb_versionnum | XFS_SB_VERSION_MOREBITSBIT),	\	((sbp)->sb_features2 =	\		((sbp)->sb_features2 | XFS_SB_VERSION2_ATTR2BIT)));}/* * end of superblock version macros */#define XFS_SB_DADDR		((xfs_daddr_t)0) /* daddr in filesystem/ag */#define	XFS_SB_BLOCK(mp)	XFS_HDR_BLOCK(mp, XFS_SB_DADDR)#define XFS_BUF_TO_SBP(bp)	((xfs_dsb_t *)XFS_BUF_PTR(bp))#define	XFS_HDR_BLOCK(mp,d)	((xfs_agblock_t)XFS_BB_TO_FSBT(mp,d))#define	XFS_DADDR_TO_FSB(mp,d)	XFS_AGB_TO_FSB(mp, \			XFS_DADDR_TO_AGNO(mp,d), XFS_DADDR_TO_AGBNO(mp,d))#define	XFS_FSB_TO_DADDR(mp,fsbno)	XFS_AGB_TO_DADDR(mp, \			XFS_FSB_TO_AGNO(mp,fsbno), XFS_FSB_TO_AGBNO(mp,fsbno))/* * File system sector to basic block conversions. */#define XFS_FSS_TO_BB(mp,sec)	((sec) << (mp)->m_sectbb_log)/* * File system block to basic block conversions. */#define	XFS_FSB_TO_BB(mp,fsbno)	((fsbno) << (mp)->m_blkbb_log)#define	XFS_BB_TO_FSB(mp,bb)	\	(((bb) + (XFS_FSB_TO_BB(mp,1) - 1)) >> (mp)->m_blkbb_log)#define	XFS_BB_TO_FSBT(mp,bb)	((bb) >> (mp)->m_blkbb_log)#define	XFS_BB_FSB_OFFSET(mp,bb) ((bb) & ((mp)->m_bsize - 1))/* * File system block to byte conversions. */#define XFS_FSB_TO_B(mp,fsbno)	((xfs_fsize_t)(fsbno) << (mp)->m_sb.sb_blocklog)#define XFS_B_TO_FSB(mp,b)	\	((((__uint64_t)(b)) + (mp)->m_blockmask) >> (mp)->m_sb.sb_blocklog)#define XFS_B_TO_FSBT(mp,b)	(((__uint64_t)(b)) >> (mp)->m_sb.sb_blocklog)#define XFS_B_FSB_OFFSET(mp,b)	((b) & (mp)->m_blockmask)#endif	/* __XFS_SB_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -