diff options
Diffstat (limited to 'fs/xfs/xfs_types.h')
| -rw-r--r-- | fs/xfs/xfs_types.h | 84 | 
1 files changed, 44 insertions, 40 deletions
diff --git a/fs/xfs/xfs_types.h b/fs/xfs/xfs_types.h index 26d1867d815..65c6e6650b1 100644 --- a/fs/xfs/xfs_types.h +++ b/fs/xfs/xfs_types.h @@ -18,45 +18,10 @@  #ifndef __XFS_TYPES_H__  #define	__XFS_TYPES_H__ -#ifdef __KERNEL__ - -/* - * Additional type declarations for XFS - */ -typedef signed char		__int8_t; -typedef unsigned char		__uint8_t; -typedef signed short int	__int16_t; -typedef unsigned short int	__uint16_t; -typedef signed int		__int32_t; -typedef unsigned int		__uint32_t; -typedef signed long long int	__int64_t; -typedef unsigned long long int	__uint64_t; - -typedef enum { B_FALSE,B_TRUE }	boolean_t; -typedef __uint32_t		prid_t;		/* project ID */ -typedef __uint32_t		inst_t;		/* an instruction */ - -typedef __s64			xfs_off_t;	/* <file offset> type */ -typedef unsigned long long	xfs_ino_t;	/* <inode> type */ -typedef __s64			xfs_daddr_t;	/* <disk address> type */ -typedef char *			xfs_caddr_t;	/* <core address> type */ -typedef __u32			xfs_dev_t; -typedef __u32			xfs_nlink_t; - -/* __psint_t is the same size as a pointer */ -#if (BITS_PER_LONG == 32) -typedef __int32_t __psint_t; -typedef __uint32_t __psunsigned_t; -#elif (BITS_PER_LONG == 64) -typedef __int64_t __psint_t; -typedef __uint64_t __psunsigned_t; -#else -#error BITS_PER_LONG must be 32 or 64 -#endif - -#endif	/* __KERNEL__ */ +typedef __uint32_t	prid_t;		/* project ID */  typedef __uint32_t	xfs_agblock_t;	/* blockno in alloc. group */ +typedef	__uint32_t	xfs_agino_t;	/* inode # within allocation grp */  typedef	__uint32_t	xfs_extlen_t;	/* extent length in blocks */  typedef	__uint32_t	xfs_agnumber_t;	/* allocation group number */  typedef __int32_t	xfs_extnum_t;	/* # of extents in a file */ @@ -73,8 +38,6 @@ typedef	__int32_t	xfs_tid_t;	/* transaction identifier */  typedef	__uint32_t	xfs_dablk_t;	/* dir/attr block number (in file) */  typedef	__uint32_t	xfs_dahash_t;	/* dir/attr hash value */ -typedef __uint32_t	xlog_tid_t;	/* transaction ID type */ -  /*   * These types are 64 bits on disk but are either 32 or 64 bits in memory.   * Disk based types: @@ -103,6 +66,7 @@ typedef __uint64_t	xfs_fileoff_t;	/* block number in a file */  typedef __int64_t	xfs_sfiloff_t;	/* signed block number in a file */  typedef __uint64_t	xfs_filblks_t;	/* number of blocks in a file */ +  /*   * Null values for the types.   */ @@ -122,6 +86,9 @@ typedef __uint64_t	xfs_filblks_t;	/* number of blocks in a file */  #define NULLCOMMITLSN	((xfs_lsn_t)-1) +#define	NULLFSINO	((xfs_ino_t)-1) +#define	NULLAGINO	((xfs_agino_t)-1) +  /*   * Max values for extlen, extnum, aextnum.   */ @@ -130,6 +97,26 @@ typedef __uint64_t	xfs_filblks_t;	/* number of blocks in a file */  #define	MAXAEXTNUM	((xfs_aextnum_t)0x7fff)		/* signed short */  /* + * Minimum and maximum blocksize and sectorsize. + * The blocksize upper limit is pretty much arbitrary. + * The sectorsize upper limit is due to sizeof(sb_sectsize). + */ +#define XFS_MIN_BLOCKSIZE_LOG	9	/* i.e. 512 bytes */ +#define XFS_MAX_BLOCKSIZE_LOG	16	/* i.e. 65536 bytes */ +#define XFS_MIN_BLOCKSIZE	(1 << XFS_MIN_BLOCKSIZE_LOG) +#define XFS_MAX_BLOCKSIZE	(1 << XFS_MAX_BLOCKSIZE_LOG) +#define XFS_MIN_SECTORSIZE_LOG	9	/* i.e. 512 bytes */ +#define XFS_MAX_SECTORSIZE_LOG	15	/* i.e. 32768 bytes */ +#define XFS_MIN_SECTORSIZE	(1 << XFS_MIN_SECTORSIZE_LOG) +#define XFS_MAX_SECTORSIZE	(1 << XFS_MAX_SECTORSIZE_LOG) + +/* + * Inode fork identifiers. + */ +#define	XFS_DATA_FORK	0 +#define	XFS_ATTR_FORK	1 + +/*   * Min numbers of data/attr fork btree root pointers.   */  #define MINDBTPTRS	3 @@ -147,12 +134,29 @@ typedef enum {  typedef enum {  	XFS_BTNUM_BNOi, XFS_BTNUM_CNTi, XFS_BTNUM_BMAPi, XFS_BTNUM_INOi, -	XFS_BTNUM_MAX +	XFS_BTNUM_FINOi, XFS_BTNUM_MAX  } xfs_btnum_t;  struct xfs_name {  	const unsigned char	*name;  	int			len; +	int			type;  }; +/* + * uid_t and gid_t are hard-coded to 32 bits in the inode. + * Hence, an 'id' in a dquot is 32 bits.. + */ +typedef __uint32_t	xfs_dqid_t; + +/* + * Constants for bit manipulations. + */ +#define	XFS_NBBYLOG	3		/* log2(NBBY) */ +#define	XFS_WORDLOG	2		/* log2(sizeof(xfs_rtword_t)) */ +#define	XFS_NBWORDLOG	(XFS_NBBYLOG + XFS_WORDLOG) +#define	XFS_NBWORD	(1 << XFS_NBWORDLOG) +#define	XFS_WORDMASK	((1 << XFS_WORDLOG) - 1) + +  #endif	/* __XFS_TYPES_H__ */  | 
