/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
- * Copyright (C) 2001 Free Software Foundation, Inc.
+ * Copyright (C) 2001,2004 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of version 2 of the GNU General Public License as
* http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
*/
-#ifndef _BITS_TYPES_H
-typedef signed char __int8_t;
-typedef unsigned char __uint8_t;
-typedef short __int16_t;
-typedef unsigned short __uint16_t;
-typedef int __int32_t;
-typedef unsigned int __uint32_t;
-typedef long long __int64_t;
-typedef unsigned long long __uint64_t;
-#endif
+typedef signed char xfs_int8_t;
+typedef unsigned char xfs_uint8_t;
+typedef short xfs_int16_t;
+typedef unsigned short xfs_uint16_t;
+typedef int xfs_int32_t;
+typedef unsigned int xfs_uint32_t;
+typedef long long xfs_int64_t;
+typedef unsigned long long xfs_uint64_t;
-typedef __uint64_t xfs_ino_t;
-typedef __uint32_t xfs_agino_t;
-typedef __int64_t xfs_daddr_t;
-typedef __int64_t xfs_off_t;
-typedef __uint8_t uuid_t[16];
+typedef xfs_uint64_t xfs_ino_t;
+typedef xfs_uint32_t xfs_agino_t;
+typedef xfs_int64_t xfs_daddr_t;
+typedef xfs_int64_t xfs_off_t;
+typedef xfs_uint8_t uuid_t[16];
/* those are from xfs_types.h */
-typedef __uint32_t xfs_agblock_t; /* blockno in alloc. group */
-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 */
-typedef __int16_t xfs_aextnum_t; /* # extents in an attribute fork */
-typedef __int64_t xfs_fsize_t; /* bytes in a file */
+typedef xfs_uint32_t xfs_agblock_t; /* blockno in alloc. group */
+typedef xfs_uint32_t xfs_extlen_t; /* extent length in blocks */
+typedef xfs_uint32_t xfs_agnumber_t; /* allocation group number */
+typedef xfs_int32_t xfs_extnum_t; /* # of extents in a file */
+typedef xfs_int16_t xfs_aextnum_t; /* # extents in an attribute fork */
+typedef xfs_int64_t xfs_fsize_t; /* bytes in a file */
-typedef __uint32_t xfs_dablk_t; /* dir/attr block number (in file) */
-typedef __uint32_t xfs_dahash_t; /* dir/attr hash value */
+typedef xfs_uint32_t xfs_dablk_t; /* dir/attr block number (in file) */
+typedef xfs_uint32_t xfs_dahash_t; /* dir/attr hash value */
/*
* Disk based types:
*/
-typedef __uint64_t xfs_dfsbno_t; /* blockno in filesystem (agno|agbno) */
-typedef __uint64_t xfs_drfsbno_t; /* blockno in filesystem (raw) */
-typedef __uint64_t xfs_drtbno_t; /* extent (block) in realtime area */
-typedef __uint64_t xfs_dfiloff_t; /* block number in a file */
+typedef xfs_uint64_t xfs_dfsbno_t; /* blockno in filesystem (agno|agbno) */
+typedef xfs_uint64_t xfs_drfsbno_t; /* blockno in filesystem (raw) */
+typedef xfs_uint64_t xfs_drtbno_t; /* extent (block) in realtime area */
+typedef xfs_uint64_t xfs_dfiloff_t; /* block number in a file */
-typedef __uint64_t xfs_fsblock_t; /* blockno in filesystem (agno|agbno) */
-typedef __uint64_t xfs_fileoff_t; /* block number in a file */
-typedef __uint64_t xfs_filblks_t; /* number of blocks in a file */
+typedef xfs_uint64_t xfs_fsblock_t; /* blockno in filesystem (agno|agbno) */
+typedef xfs_uint64_t xfs_fileoff_t; /* block number in a file */
+typedef xfs_uint64_t xfs_filblks_t; /* number of blocks in a file */
/* those are from xfs_sb.h */
typedef struct xfs_sb
{
- __uint32_t sb_magicnum; /* magic number == XFS_SB_MAGIC */
- __uint32_t sb_blocksize; /* logical block size, bytes */
+ xfs_uint32_t sb_magicnum; /* magic number == XFS_SB_MAGIC */
+ xfs_uint32_t sb_blocksize; /* logical block size, bytes */
xfs_drfsbno_t sb_dblocks; /* number of data blocks */
xfs_drfsbno_t sb_rblocks; /* number of realtime blocks */
xfs_drtbno_t sb_rextents; /* number of realtime extents */
xfs_agnumber_t sb_agcount; /* number of allocation groups */
xfs_extlen_t sb_rbmblocks; /* number of rt bitmap blocks */
xfs_extlen_t sb_logblocks; /* number of log blocks */
- __uint16_t sb_versionnum; /* header version == XFS_SB_VERSION */
- __uint16_t sb_sectsize; /* volume sector size, bytes */
- __uint16_t sb_inodesize; /* inode size, bytes */
- __uint16_t sb_inopblock; /* inodes per block */
+ xfs_uint16_t sb_versionnum; /* header version == XFS_SB_VERSION */
+ xfs_uint16_t sb_sectsize; /* volume sector size, bytes */
+ xfs_uint16_t sb_inodesize; /* inode size, bytes */
+ xfs_uint16_t sb_inopblock; /* inodes per block */
char sb_fname[12]; /* file system name */
- __uint8_t sb_blocklog; /* log2 of sb_blocksize */
- __uint8_t sb_sectlog; /* log2 of sb_sectsize */
- __uint8_t sb_inodelog; /* log2 of sb_inodesize */
- __uint8_t sb_inopblog; /* log2 of sb_inopblock */
- __uint8_t sb_agblklog; /* log2 of sb_agblocks (rounded up) */
- __uint8_t sb_rextslog; /* log2 of sb_rextents */
- __uint8_t sb_inprogress; /* mkfs is in progress, don't mount */
- __uint8_t sb_imax_pct; /* max % of fs for inode space */
+ xfs_uint8_t sb_blocklog; /* log2 of sb_blocksize */
+ xfs_uint8_t sb_sectlog; /* log2 of sb_sectsize */
+ xfs_uint8_t sb_inodelog; /* log2 of sb_inodesize */
+ xfs_uint8_t sb_inopblog; /* log2 of sb_inopblock */
+ xfs_uint8_t sb_agblklog; /* log2 of sb_agblocks (rounded up) */
+ xfs_uint8_t sb_rextslog; /* log2 of sb_rextents */
+ xfs_uint8_t sb_inprogress; /* mkfs is in progress, don't mount */
+ xfs_uint8_t sb_imax_pct; /* max % of fs for inode space */
/* statistics */
/*
* These fields must remain contiguous. If you really
* want to change their layout, make sure you fix the
* code in xfs_trans_apply_sb_deltas().
*/
- __uint64_t sb_icount; /* allocated inodes */
- __uint64_t sb_ifree; /* free inodes */
- __uint64_t sb_fdblocks; /* free data blocks */
- __uint64_t sb_frextents; /* free realtime extents */
+ xfs_uint64_t sb_icount; /* allocated inodes */
+ xfs_uint64_t sb_ifree; /* free inodes */
+ xfs_uint64_t sb_fdblocks; /* free data blocks */
+ xfs_uint64_t sb_frextents; /* free realtime extents */
/*
* End contiguous fields.
*/
xfs_ino_t sb_uquotino; /* user quota inode */
xfs_ino_t sb_gquotino; /* group quota inode */
- __uint16_t sb_qflags; /* quota flags */
- __uint8_t sb_flags; /* misc. flags */
- __uint8_t sb_shared_vn; /* shared version number */
+ xfs_uint16_t sb_qflags; /* quota flags */
+ xfs_uint8_t sb_flags; /* misc. flags */
+ xfs_uint8_t sb_shared_vn; /* shared version number */
xfs_extlen_t sb_inoalignmt; /* inode chunk alignment, fsblocks */
- __uint32_t sb_unit; /* stripe or raid unit */
- __uint32_t sb_width; /* stripe or raid width */
- __uint8_t sb_dirblklog; /* log2 of dir block size (fsbs) */
- __uint8_t sb_dummy[7]; /* padding */
+ xfs_uint32_t sb_unit; /* stripe or raid unit */
+ xfs_uint32_t sb_width; /* stripe or raid width */
+ xfs_uint8_t sb_dirblklog; /* log2 of dir block size (fsbs) */
+ xfs_uint8_t sb_dummy[7]; /* padding */
} xfs_sb_t;
*/
typedef struct xfs_btree_lblock
{
- __uint32_t bb_magic; /* magic number for block type */
- __uint16_t bb_level; /* 0 is a leaf */
- __uint16_t bb_numrecs; /* current # of data records */
+ xfs_uint32_t bb_magic; /* magic number for block type */
+ xfs_uint16_t bb_level; /* 0 is a leaf */
+ xfs_uint16_t bb_numrecs; /* current # of data records */
xfs_dfsbno_t bb_leftsib; /* left sibling block or NULLDFSBNO */
xfs_dfsbno_t bb_rightsib; /* right sibling block or NULLDFSBNO */
} xfs_btree_lblock_t;
*/
typedef struct xfs_btree_hdr
{
- __uint32_t bb_magic; /* magic number for block type */
- __uint16_t bb_level; /* 0 is a leaf */
- __uint16_t bb_numrecs; /* current # of data records */
+ xfs_uint32_t bb_magic; /* magic number for block type */
+ xfs_uint16_t bb_level; /* 0 is a leaf */
+ xfs_uint16_t bb_numrecs; /* current # of data records */
} xfs_btree_hdr_t;
typedef struct xfs_btree_block
*/
typedef struct xfs_bmdr_block
{
- __uint16_t bb_level; /* 0 is a leaf */
- __uint16_t bb_numrecs; /* current # of data records */
+ xfs_uint16_t bb_level; /* 0 is a leaf */
+ xfs_uint16_t bb_numrecs; /* current # of data records */
} xfs_bmdr_block_t;
/*
typedef struct xfs_bmbt_rec_32
{
- __uint32_t l0, l1, l2, l3;
+ xfs_uint32_t l0, l1, l2, l3;
} xfs_bmbt_rec_32_t;
typedef struct xfs_bmbt_rec_64
{
- __uint64_t l0, l1;
+ xfs_uint64_t l0, l1;
} xfs_bmbt_rec_64_t;
#if BMBT_USE_64
-typedef __uint64_t xfs_bmbt_rec_base_t; /* use this for casts */
+typedef xfs_uint64_t xfs_bmbt_rec_base_t; /* use this for casts */
typedef xfs_bmbt_rec_64_t xfs_bmbt_rec_t, xfs_bmdr_rec_t;
#else /* !BMBT_USE_64 */
-typedef __uint32_t xfs_bmbt_rec_base_t; /* use this for casts */
+typedef xfs_uint32_t xfs_bmbt_rec_base_t; /* use this for casts */
typedef xfs_bmbt_rec_32_t xfs_bmbt_rec_t, xfs_bmdr_rec_t;
#endif /* BMBT_USE_64 */
/*
* Byte offset in data block and shortform entry.
*/
-typedef __uint16_t xfs_dir2_data_off_t;
+typedef xfs_uint16_t xfs_dir2_data_off_t;
/*
* Byte offset in a directory.
typedef struct xfs_da_blkinfo {
xfs_dablk_t forw; /* previous block in list */
xfs_dablk_t back; /* following block in list */
- __uint16_t magic; /* validity check on block */
- __uint16_t pad; /* unused */
+ xfs_uint16_t magic; /* validity check on block */
+ xfs_uint16_t pad; /* unused */
} xfs_da_blkinfo_t;
/*
typedef struct xfs_da_intnode {
struct xfs_da_node_hdr { /* constant-structure header block */
xfs_da_blkinfo_t info; /* block type, links, etc. */
- __uint16_t count; /* count of active entries */
- __uint16_t level; /* level above leaves (leaf == 0) */
+ xfs_uint16_t count; /* count of active entries */
+ xfs_uint16_t level; /* level above leaves (leaf == 0) */
} hdr;
struct xfs_da_node_entry {
xfs_dahash_t hashval; /* hash value for this descendant */
* The code knows that XFS_DIR2_DATA_FD_COUNT is 3.
*/
typedef struct xfs_dir2_data_hdr {
- __uint32_t magic; /* XFS_DIR2_DATA_MAGIC */
+ xfs_uint32_t magic; /* XFS_DIR2_DATA_MAGIC */
/* or XFS_DIR2_BLOCK_MAGIC */
xfs_dir2_data_free_t bestfree[XFS_DIR2_DATA_FD_COUNT];
} xfs_dir2_data_hdr_t;
*/
typedef struct xfs_dir2_data_entry {
xfs_ino_t inumber; /* inode number */
- __uint8_t namelen; /* name length */
- __uint8_t name[1]; /* name bytes, no null */
+ xfs_uint8_t namelen; /* name length */
+ xfs_uint8_t name[1]; /* name bytes, no null */
/* variable offset */
xfs_dir2_data_off_t tag; /* starting offset of us */
} xfs_dir2_data_entry_t;
* Tag appears as the last 2 bytes.
*/
typedef struct xfs_dir2_data_unused {
- __uint16_t freetag; /* XFS_DIR2_DATA_FREE_TAG */
+ xfs_uint16_t freetag; /* XFS_DIR2_DATA_FREE_TAG */
xfs_dir2_data_off_t length; /* total free length */
/* variable offset */
xfs_dir2_data_off_t tag; /* starting offset of us */
*/
typedef struct xfs_dir2_leaf_hdr {
xfs_da_blkinfo_t info; /* header for da routines */
- __uint16_t count; /* count of entries */
- __uint16_t stale; /* count of stale entries */
+ xfs_uint16_t count; /* count of entries */
+ xfs_uint16_t stale; /* count of stale entries */
} xfs_dir2_leaf_hdr_t;
#define XFS_DIR2_BLOCK_MAGIC 0x58443242 /* XD2B: for one block dirs */
typedef struct xfs_dir2_block_tail {
- __uint32_t count; /* count of leaf entries */
- __uint32_t stale; /* count of stale lf entries */
+ xfs_uint32_t count; /* count of leaf entries */
+ xfs_uint32_t stale; /* count of stale lf entries */
} xfs_dir2_block_tail_t;
/*
* Inode number stored as 8 8-bit values.
*/
-typedef struct { __uint8_t i[8]; } xfs_dir2_ino8_t;
+typedef struct { xfs_uint8_t i[8]; } xfs_dir2_ino8_t;
/*
* Inode number stored as 4 8-bit values.
* Works a lot of the time, when all the inode numbers in a directory
* fit in 32 bits.
*/
-typedef struct { __uint8_t i[4]; } xfs_dir2_ino4_t;
+typedef struct { xfs_uint8_t i[4]; } xfs_dir2_ino4_t;
typedef union {
xfs_dir2_ino8_t i8;
* Normalized offset (in a data block) of the entry, really xfs_dir2_data_off_t.
* Only need 16 bits, this is the byte offset into the single block form.
*/
-typedef struct { __uint8_t i[2]; } xfs_dir2_sf_off_t;
+typedef struct { xfs_uint8_t i[2]; } xfs_dir2_sf_off_t;
/*
* The parent directory has a dedicated field, and the self-pointer must
* alignment for the inode number fields.
*/
typedef struct xfs_dir2_sf_hdr {
- __uint8_t count; /* count of entries */
- __uint8_t i8count; /* count of 8-byte inode #s */
+ xfs_uint8_t count; /* count of entries */
+ xfs_uint8_t i8count; /* count of 8-byte inode #s */
xfs_dir2_inou_t parent; /* parent dir inode number */
} xfs_dir2_sf_hdr_t;
typedef struct xfs_dir2_sf_entry {
- __uint8_t namelen; /* actual name length */
+ xfs_uint8_t namelen; /* actual name length */
xfs_dir2_sf_off_t offset; /* saved offset */
- __uint8_t name[1]; /* name, variable size */
+ xfs_uint8_t name[1]; /* name, variable size */
xfs_dir2_inou_t inumber; /* inode number, var. offset */
} xfs_dir2_sf_entry_t;
* because we only need the core part in the in-core inode.
*/
typedef struct xfs_timestamp {
- __int32_t t_sec; /* timestamp seconds */
- __int32_t t_nsec; /* timestamp nanoseconds */
+ xfs_int32_t t_sec; /* timestamp seconds */
+ xfs_int32_t t_nsec; /* timestamp nanoseconds */
} xfs_timestamp_t;
/*
*/
typedef struct xfs_dinode_core
{
- __uint16_t di_magic; /* inode magic # = XFS_DINODE_MAGIC */
- __uint16_t di_mode; /* mode and type of file */
- __int8_t di_version; /* inode version */
- __int8_t di_format; /* format of di_c data */
- __uint16_t di_onlink; /* old number of links to file */
- __uint32_t di_uid; /* owner's user id */
- __uint32_t di_gid; /* owner's group id */
- __uint32_t di_nlink; /* number of links to file */
- __uint16_t di_projid; /* owner's project id */
- __uint8_t di_pad[10]; /* unused, zeroed space */
+ xfs_uint16_t di_magic; /* inode magic # = XFS_DINODE_MAGIC */
+ xfs_uint16_t di_mode; /* mode and type of file */
+ xfs_int8_t di_version; /* inode version */
+ xfs_int8_t di_format; /* format of di_c data */
+ xfs_uint16_t di_onlink; /* old number of links to file */
+ xfs_uint32_t di_uid; /* owner's user id */
+ xfs_uint32_t di_gid; /* owner's group id */
+ xfs_uint32_t di_nlink; /* number of links to file */
+ xfs_uint16_t di_projid; /* owner's project id */
+ xfs_uint8_t di_pad[10]; /* unused, zeroed space */
xfs_timestamp_t di_atime; /* time last accessed */
xfs_timestamp_t di_mtime; /* time last modified */
xfs_timestamp_t di_ctime; /* time created/inode modified */
xfs_extlen_t di_extsize; /* basic/minimum extent size for file */
xfs_extnum_t di_nextents; /* number of extents in data fork */
xfs_aextnum_t di_anextents; /* number of extents in attribute fork*/
- __uint8_t di_forkoff; /* attr fork offs, <<3 for 64b align */
- __int8_t di_aformat; /* format of attr fork's data */
- __uint32_t di_dmevmask; /* DMIG event mask */
- __uint16_t di_dmstate; /* DMIG state info */
- __uint16_t di_flags; /* random flags, XFS_DIFLAG_... */
- __uint32_t di_gen; /* generation number */
+ xfs_uint8_t di_forkoff; /* attr fork offs, <<3 for 64b align */
+ xfs_int8_t di_aformat; /* format of attr fork's data */
+ xfs_uint32_t di_dmevmask; /* DMIG event mask */
+ xfs_uint16_t di_dmstate; /* DMIG state info */
+ xfs_uint16_t di_flags; /* random flags, XFS_DIFLAG_... */
+ xfs_uint32_t di_gen; /* generation number */
} xfs_dinode_core_t;
typedef struct xfs_dinode