Fix some compiler warnings emitted by gcc-4.8.0
[oweals/busybox.git] / util-linux / mkfs_vfat.c
index ff3e4165a3f1d1e6d003a3799dfadcb81ba22295..7d81ed06d8326940cdd2d2da519a04ecad215909 100644 (file)
@@ -5,8 +5,24 @@
  *
  * Busybox'ed (2009) by Vladimir Dronnikov <dronnikov@gmail.com>
  *
- * Licensed under GPLv2, see file LICENSE in this tarball for details.
+ * Licensed under GPLv2, see file LICENSE in this source tree.
  */
+
+//usage:#define mkfs_vfat_trivial_usage
+//usage:       "[-v] [-n LABEL] BLOCKDEV [KBYTES]"
+/* Accepted but ignored:
+       "[-c] [-C] [-I] [-l bad-block-file] [-b backup-boot-sector] "
+       "[-m boot-msg-file] [-i volume-id] "
+       "[-s sectors-per-cluster] [-S logical-sector-size] [-f number-of-FATs] "
+       "[-h hidden-sectors] [-F fat-size] [-r root-dir-entries] [-R reserved-sectors] "
+*/
+//usage:#define mkfs_vfat_full_usage "\n\n"
+//usage:       "Make a FAT32 filesystem\n"
+/* //usage:  "\n       -c      Check device for bad blocks" */
+//usage:     "\n       -v      Verbose"
+/* //usage:  "\n       -I      Allow to use entire disk device (e.g. /dev/hda)" */
+//usage:     "\n       -n LBL  Volume label"
+
 #include "libbb.h"
 
 #include <linux/hdreg.h> /* HDIO_GETGEO */
@@ -28,7 +44,7 @@
 
 #define ATTR_VOLUME     8
 
-#define        NUM_FATS        2
+#define NUM_FATS        2
 
 /* FAT32 filesystem looks like this:
  * sector -nn...-1: "hidden" sectors, all sectors before this partition
@@ -98,8 +114,9 @@ struct msdos_volume_info { /* (offsets are relative to start of boot sector) */
 } PACKED;                         /* 05a end. Total size 26 (0x1a) bytes */
 
 struct msdos_boot_sector {
-       char     boot_jump[3];       /* 000 short or near jump instruction */
-       char     system_id[8];       /* 003 name - can be used to special case partition manager volumes */
+       /* We use strcpy to fill both, and gcc-4.4.x complains if they are separate */
+       char     boot_jump_and_sys_id[3+8]; /* 000 short or near jump instruction */
+       /*char   system_id[8];*/     /* 003 name - can be used to special case partition manager volumes */
        uint16_t bytes_per_sect;     /* 00b bytes per logical sector */
        uint8_t  sect_per_clust;     /* 00d sectors/cluster */
        uint16_t reserved_sect;      /* 00e reserved sectors (sector offset of 1st FAT relative to volume start) */
@@ -244,8 +261,7 @@ int mkfs_vfat_main(int argc UNUSED_PARAM, char **argv)
        volume_id = time(NULL);
 
        dev = xopen(device_name, O_RDWR);
-       if (fstat(dev, &st) < 0)
-               bb_simple_perror_msg_and_die(device_name);
+       xfstat(dev, &st, device_name);
 
        //
        // Get image size and sector size
@@ -457,7 +473,7 @@ int mkfs_vfat_main(int argc UNUSED_PARAM, char **argv)
                struct msdos_boot_sector *boot_blk = (void*)buf;
                struct fat32_fsinfo *info = (void*)(buf + bytes_per_sect);
 
-               strcpy(boot_blk->boot_jump, "\xeb\x58\x90" "mkdosfs"); // system_id[8] included :)
+               strcpy(boot_blk->boot_jump_and_sys_id, "\xeb\x58\x90" "mkdosfs");
                STORE_LE(boot_blk->bytes_per_sect, bytes_per_sect);
                STORE_LE(boot_blk->sect_per_clust, sect_per_clust);
                // cast in needed on big endian to suppress a warning