summaryrefslogtreecommitdiff
path: root/util-linux/fdisk.c
diff options
context:
space:
mode:
authorEric Andersen2004-02-06 05:26:58 +0000
committerEric Andersen2004-02-06 05:26:58 +0000
commit7495b0d4b1959b1391c460f24c285b46417730ea (patch)
tree5a3aa06b7a2a42a24073643c9aa148e5f7a66922 /util-linux/fdisk.c
parent68474f3b36902ecd903a2d26c06a3d18f3f4bdc5 (diff)
downloadbusybox-7495b0d4b1959b1391c460f24c285b46417730ea.zip
busybox-7495b0d4b1959b1391c460f24c285b46417730ea.tar.gz
Eliminate use of a kernel scsi header file.
Prevent potentially misaligned accesses while indexing a pointer to the partition table, which would be a bad thing on i.e. arm.
Diffstat (limited to 'util-linux/fdisk.c')
-rw-r--r--util-linux/fdisk.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c
index 8913803..2374960 100644
--- a/util-linux/fdisk.c
+++ b/util-linux/fdisk.c
@@ -26,12 +26,7 @@
#include <setjmp.h>
#include <assert.h> /* assert */
#include <getopt.h>
-
#include <endian.h>
-#define u_char unsigned char
-#include <scsi/scsi.h> /* SCSI_IOCTL_GET_IDLUN */
-#undef u_char
-
#include <sys/ioctl.h>
#include <sys/param.h>
#include <sys/sysmacros.h> /* major */
@@ -93,6 +88,10 @@
#define cround(n) (display_in_cyl_units ? ((n)/units_per_sector)+1 : (n))
#define scround(x) (((x)+units_per_sector-1)/units_per_sector)
+#ifdef CONFIG_FEATURE_SUN_LABEL
+#define SCSI_IOCTL_GET_IDLUN 0x5382
+#endif
+
#if defined(CONFIG_LFS) || defined(FDISK_SUPPORT_LARGE_DISKS) || defined(__alpha__) || defined(__ia64__) || defined(__s390x__)
typedef long long fdisk_loff_t;
@@ -203,7 +202,7 @@ struct partition {
unsigned char end_cyl; /* end cylinder */
unsigned char start4[4]; /* starting sector counting from 0 */
unsigned char size4[4]; /* nr of sectors in partition */
-};
+} __attribute__((__packed__));
enum failure {
ioctl_error, unable_to_open, unable_to_read, unable_to_seek,