diff --git a/ChangeLog b/ChangeLog index f4e65c76b..9df0d426d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,36 @@ 2004-01-18 Yoshinori K. Okuji + From Thomas Schwinge : + * grub/Makefile.am (AM_CPPFLAGS): New variable. + (AM_CFLAGS): Removed all cpp flags. + + * stage2/xfs.h (__int8_t): Renamed to ... + (xfs_int8_t): ... this. + (__uint8_t): Renamed to ... + (xfs_uint8_t): ... this. + (__int16_t): Renamed to ... + (xfs_int16_t): ... this. + (__uint16_t): Renamed to ... + (xfs_uint16_t): ... this. + (__int32_t): Renamed to ... + (xfs_int32_t): ... this. + (__uint32_t): Renamed to ... + (xfs_uint32_t): ... this. + (__int64_t): Renamed to ... + (xfs_int64_t): ... this. + (__uint64_t): Renamed to ... + (xfs_uint64_t): ... this. + All callers are changed.x + + From Egmont Koblinger : + * util/grub-install.in: Support an install devices in GRUB's + notation without parentheses. + + * docs/grub.texi (Installing GRUB using grub-install): Added an + example of using grub-install without parentheses. + +2004-01-18 Yoshinori K. Okuji + * util/grub-install.in: Use the first word of GRUB_SHELL when checking if the grub shell is present. This is necessary to support options to the grub shell (e.g. grub --read-only). diff --git a/THANKS b/THANKS index 68b952340..ac35ce134 100644 --- a/THANKS +++ b/THANKS @@ -32,6 +32,7 @@ Dennis Kitzman Derrik Pates Edmund GRIMLEY EVANS Edward Killips +Egmont Koblinger Eric Hanchrow Erik Schoenfelder Eugene Doudine @@ -100,6 +101,7 @@ Taketo Kabe Thierry DELHAISE Thierry Laronde Thomas Schweikle +Thomas Schwinge Tilmann Bubeck Timothy Baldwin Torsten Duwe diff --git a/docs/grub.texi b/docs/grub.texi index b16a61070..7df611067 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -620,6 +620,12 @@ If it is the first BIOS drive, this is the same as well: # @kbd{grub-install '(hd0)'} @end example +Or you can omit the parentheses: + +@example +# @kbd{grub-install hd0} +@end example + But all the above examples assume that GRUB should use images under the root directory. If you want GRUB to use images under a directory other than the root directory, you need to specify the option @@ -630,7 +636,7 @@ boot floppy with a filesystem. Here is an example: @group # @kbd{mke2fs /dev/fd0} # @kbd{mount -t ext2 /dev/fd0 /mnt} -# @kbd{grub-install --root-directory=/mnt '(fd0)'} +# @kbd{grub-install --root-directory=/mnt fd0} # @kbd{umount /mnt} @end group @end example @@ -3419,7 +3425,7 @@ you have a separate @dfn{boot} partition which is mounted on @file{/boot}: @example -@kbd{grub-install --root-directory=/boot '(hd0)'} +@kbd{grub-install --root-directory=/boot hd0} @end example @item --grub-shell=@var{file} diff --git a/grub/Makefile.am b/grub/Makefile.am index 108cc803d..f88475666 100644 --- a/grub/Makefile.am +++ b/grub/Makefile.am @@ -6,11 +6,12 @@ else SERIAL_FLAGS = -DSUPPORT_SERIAL=1 endif -AM_CFLAGS = $(GRUB_CFLAGS) -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 \ +AM_CPPFLAGS = -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 \ -DFSYS_FFS=1 -DFSYS_MINIX=1 -DSUPPORT_HERCULES=1 \ - $(SERIAL_FLAGS) \ - -fwritable-strings -I$(top_srcdir)/stage2 \ + $(SERIAL_FLAGS) -I$(top_srcdir)/stage2 \ -I$(top_srcdir)/stage1 -I$(top_srcdir)/lib +AM_CFLAGS = $(GRUB_CFLAGS) -fwritable-strings + grub_SOURCES = main.c asmstub.c grub_LDADD = ../stage2/libgrub.a ../lib/libcommon.a $(GRUB_LIBS) diff --git a/grub/Makefile.in b/grub/Makefile.in index 506dcd9c3..eef7a20fc 100644 --- a/grub/Makefile.in +++ b/grub/Makefile.in @@ -146,13 +146,14 @@ sbin_PROGRAMS = grub @SERIAL_SPEED_SIMULATION_TRUE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1 -DSIMULATE_SLOWNESS_OF_SERIAL=1 -AM_CFLAGS = $(GRUB_CFLAGS) -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 \ +AM_CPPFLAGS = -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 \ -DFSYS_FFS=1 -DFSYS_MINIX=1 -DSUPPORT_HERCULES=1 \ - $(SERIAL_FLAGS) \ - -fwritable-strings -I$(top_srcdir)/stage2 \ + $(SERIAL_FLAGS) -I$(top_srcdir)/stage2 \ -I$(top_srcdir)/stage1 -I$(top_srcdir)/lib +AM_CFLAGS = $(GRUB_CFLAGS) -fwritable-strings + grub_SOURCES = main.c asmstub.c grub_LDADD = ../stage2/libgrub.a ../lib/libcommon.a $(GRUB_LIBS) subdir = grub diff --git a/stage2/fsys_xfs.c b/stage2/fsys_xfs.c index b551c07a2..8ee31aecc 100644 --- a/stage2/fsys_xfs.c +++ b/stage2/fsys_xfs.c @@ -1,7 +1,7 @@ /* fsys_xfs.c - an implementation for the SGI XFS file system */ /* * GRUB -- GRand Unified Bootloader - * Copyright (C) 2001,2002 Free Software Foundation, Inc. + * Copyright (C) 2001,2002,2004 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -65,9 +65,9 @@ static struct xfs_info xfs; #define inode ((xfs_dinode_t *)((char *)FSYS_BUF + 8192)) #define icore (inode->di_core) -#define mask32lo(n) (((__uint32_t)1 << (n)) - 1) +#define mask32lo(n) (((xfs_uint32_t)1 << (n)) - 1) -#define XFS_INO_MASK(k) ((__uint32_t)((1ULL << (k)) - 1)) +#define XFS_INO_MASK(k) ((xfs_uint32_t)((1ULL << (k)) - 1)) #define XFS_INO_OFFSET_BITS xfs.inopblog #define XFS_INO_AGBNO_BITS xfs.agblklog #define XFS_INO_AGINO_BITS (xfs.agblklog + xfs.inopblog) @@ -97,8 +97,8 @@ ino2offset (xfs_ino_t ino) return ino & XFS_INO_MASK(XFS_INO_OFFSET_BITS); } -static inline __const__ __uint16_t -le16 (__uint16_t x) +static inline __const__ xfs_uint16_t +le16 (xfs_uint16_t x) { __asm__("xchgb %b0,%h0" \ : "=q" (x) \ @@ -106,8 +106,8 @@ le16 (__uint16_t x) return x; } -static inline __const__ __uint32_t -le32 (__uint32_t x) +static inline __const__ xfs_uint32_t +le32 (xfs_uint32_t x) { #if 0 /* 386 doesn't have bswap. */ @@ -122,12 +122,12 @@ le32 (__uint32_t x) return x; } -static inline __const__ __uint64_t -le64 (__uint64_t x) +static inline __const__ xfs_uint64_t +le64 (xfs_uint64_t x) { - __uint32_t h = x >> 32; - __uint32_t l = x & ((1ULL<<32)-1); - return (((__uint64_t)le32(l)) << 32) | ((__uint64_t)(le32(h))); + xfs_uint32_t h = x >> 32; + xfs_uint32_t l = x & ((1ULL<<32)-1); + return (((xfs_uint64_t)le32(l)) << 32) | ((xfs_uint64_t)(le32(h))); } @@ -154,7 +154,7 @@ xt_len (xfs_bmbt_rec_32_t *r) } static inline int -xfs_highbit32(__uint32_t v) +xfs_highbit32(xfs_uint32_t v) { int i; @@ -312,7 +312,7 @@ sf_ino (char *sfe, int namelen) void *p = sfe + namelen + 3; return (xfs.i8param == 0) - ? le64(*(xfs_ino_t *)p) : le32(*(__uint32_t *)p); + ? le64(*(xfs_ino_t *)p) : le32(*(xfs_uint32_t *)p); } static inline xfs_ino_t @@ -320,7 +320,7 @@ sf_parent_ino (void) { return (xfs.i8param == 0) ? le64(*(xfs_ino_t *)(&inode->di_u.di_dir2sf.hdr.parent)) - : le32(*(__uint32_t *)(&inode->di_u.di_dir2sf.hdr.parent)); + : le32(*(xfs_uint32_t *)(&inode->di_u.di_dir2sf.hdr.parent)); } static inline int diff --git a/stage2/xfs.h b/stage2/xfs.h index 6a2f8fe0e..02f8dcd1a 100644 --- a/stage2/xfs.h +++ b/stage2/xfs.h @@ -2,7 +2,7 @@ /* * 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 @@ -33,47 +33,45 @@ * 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 */ @@ -84,8 +82,8 @@ typedef __uint64_t xfs_filblks_t; /* number of blocks in a file */ 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 */ @@ -99,42 +97,42 @@ typedef struct xfs_sb 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; @@ -145,9 +143,9 @@ typedef struct xfs_sb */ 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; @@ -157,9 +155,9 @@ typedef struct xfs_btree_lblock */ 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 @@ -184,8 +182,8 @@ 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; /* @@ -206,18 +204,18 @@ typedef struct xfs_bmdr_block 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 */ @@ -253,7 +251,7 @@ typedef struct xfs_btree_lblock xfs_bmbt_block_t; /* * 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. @@ -277,8 +275,8 @@ typedef xfs_off_t xfs_dir2_off_t; 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; /* @@ -294,8 +292,8 @@ typedef struct xfs_da_blkinfo { 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 */ @@ -334,7 +332,7 @@ typedef struct xfs_dir2_data_free { * 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; @@ -345,8 +343,8 @@ typedef struct xfs_dir2_data_hdr { */ 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; @@ -356,7 +354,7 @@ typedef struct xfs_dir2_data_entry { * 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 */ @@ -378,8 +376,8 @@ typedef union { */ 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; @@ -400,8 +398,8 @@ typedef struct xfs_dir2_leaf_hdr { #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; @@ -417,14 +415,14 @@ typedef struct xfs_dir2_block_tail { /* * 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; @@ -435,7 +433,7 @@ typedef union { * 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 @@ -446,15 +444,15 @@ typedef struct { __uint8_t i[2]; } xfs_dir2_sf_off_t; * 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; @@ -476,8 +474,8 @@ typedef struct xfs_dir2_sf { * 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; /* @@ -486,16 +484,16 @@ typedef struct xfs_timestamp { */ 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 */ @@ -504,12 +502,12 @@ typedef struct xfs_dinode_core 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 diff --git a/util/grub-install.in b/util/grub-install.in index f7bff44d3..b30c7fde5 100644 --- a/util/grub-install.in +++ b/util/grub-install.in @@ -360,6 +360,9 @@ case "$install_device" in fi ;; \([hf]d[0-9]*\)) install_drive="$install_device" ;; +[hf]d[0-9]*) + # The GRUB format with no parenthesis. + install_drive="($install_device)" ;; *) echo "Format of install_device not recognized." 1>&2 usage