summaryrefslogtreecommitdiff
path: root/util-linux/fdisk.c
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-03-30 09:08:58 +0000
committerEric Andersen <andersen@codepoet.org>2004-03-30 09:08:58 +0000
commit1236631700ba5e8f00d20c848cc425257c21f531 (patch)
tree5ae21af9774c93bca57613c8520f4593cbde89ef /util-linux/fdisk.c
parent75eb90f28882ca26cdb0af190ae9986720b26467 (diff)
downloadbusybox-w32-1236631700ba5e8f00d20c848cc425257c21f531.tar.gz
busybox-w32-1236631700ba5e8f00d20c848cc425257c21f531.tar.bz2
busybox-w32-1236631700ba5e8f00d20c848cc425257c21f531.zip
The fdisk llseek junk was redundant, since both uClibc and glibc
automatically promote lseek and friends to their 64 bit counterparts when CONFIG_LFS is enabled, since it enables __USE_FILE_OFFSET64
Diffstat (limited to 'util-linux/fdisk.c')
-rw-r--r--util-linux/fdisk.c79
1 files changed, 7 insertions, 72 deletions
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c
index f35aeb9f3..e9ef5cee3 100644
--- a/util-linux/fdisk.c
+++ b/util-linux/fdisk.c
@@ -93,7 +93,7 @@
93#endif 93#endif
94 94
95 95
96#if defined(CONFIG_LFS) || defined(FDISK_SUPPORT_LARGE_DISKS) || defined(__alpha__) || defined(__ia64__) || defined(__s390x__) 96#if defined(CONFIG_LFS) || defined(__alpha__) || defined(__ia64__) || defined(__s390x__)
97typedef long long fdisk_loff_t; 97typedef long long fdisk_loff_t;
98#else 98#else
99typedef long fdisk_loff_t; 99typedef long fdisk_loff_t;
@@ -846,71 +846,6 @@ typedef struct {
846#define SUN_SSWAP32(x) (sun_other_endian ? __swap32(x) \ 846#define SUN_SSWAP32(x) (sun_other_endian ? __swap32(x) \
847 : (uint32_t)(x)) 847 : (uint32_t)(x))
848 848
849#if defined(CONFIG_LFS) || defined(FDISK_SUPPORT_LARGE_DISKS)
850/*
851 * llseek.c -- stub calling the llseek system call
852 *
853 * Copyright (C) 1994 Remy Card. This file may be redistributed
854 * under the terms of the GNU Public License.
855 */
856
857
858#if defined(__alpha__) || defined(__ia64__) || defined(__s390x__)
859
860#define my_llseek lseek
861
862#else
863
864#include <syscall.h>
865
866static fdisk_loff_t my_llseek (unsigned int f_d, fdisk_loff_t offset,
867 unsigned int origin)
868{
869 fdisk_loff_t result;
870 int retval;
871
872 retval = syscall(__NR__llseek, f_d, (unsigned long)(((unsigned long long) offset) >> 32),
873 (unsigned long)(((unsigned long long) offset) & 0xffffffff),
874 &result, origin);
875 return (retval == -1 ? (fdisk_loff_t) retval : result);
876}
877
878#endif /* __alpha__ */
879
880
881static fdisk_loff_t fdisk_llseek (unsigned int f_d, fdisk_loff_t offset,
882 unsigned int origin)
883{
884 fdisk_loff_t result;
885 static int do_compat = 0;
886
887 if (!do_compat) {
888 result = my_llseek (f_d, offset, origin);
889 if (!(result == -1 && errno == ENOSYS))
890 return result;
891
892 /*
893 * Just in case this code runs on top of an old kernel
894 * which does not support the llseek system call
895 */
896 do_compat = 1;
897 /*
898 * Now try ordinary lseek.
899 */
900 }
901
902 if ((sizeof(off_t) >= sizeof(fdisk_loff_t)) ||
903 (offset < ((fdisk_loff_t) 1 << ((sizeof(off_t)*8) -1))))
904 return lseek(f_d, (off_t) offset, origin);
905
906 errno = EINVAL;
907 return -1;
908}
909#else
910# define fdisk_llseek lseek
911#endif /* FDISK_SUPPORT_LARGE_DISKS */
912
913
914 849
915#ifdef CONFIG_FEATURE_OSF_LABEL 850#ifdef CONFIG_FEATURE_OSF_LABEL
916/* 851/*
@@ -1437,7 +1372,7 @@ xbsd_write_bootstrap (void)
1437 sector = get_start_sect(xbsd_part); 1372 sector = get_start_sect(xbsd_part);
1438#endif 1373#endif
1439 1374
1440 if (fdisk_llseek (fd, (fdisk_loff_t) sector * SECTOR_SIZE, SEEK_SET) == -1) 1375 if (lseek (fd, (fdisk_loff_t) sector * SECTOR_SIZE, SEEK_SET) == -1)
1441 fdisk_fatal (unable_to_seek); 1376 fdisk_fatal (unable_to_seek);
1442 if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE)) 1377 if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE))
1443 fdisk_fatal (unable_to_write); 1378 fdisk_fatal (unable_to_write);
@@ -1605,7 +1540,7 @@ xbsd_readlabel (struct partition *p, struct xbsd_disklabel *d)
1605 sector = 0; 1540 sector = 0;
1606#endif 1541#endif
1607 1542
1608 if (fdisk_llseek (fd, (fdisk_loff_t) sector * SECTOR_SIZE, SEEK_SET) == -1) 1543 if (lseek (fd, (fdisk_loff_t) sector * SECTOR_SIZE, SEEK_SET) == -1)
1609 fdisk_fatal (unable_to_seek); 1544 fdisk_fatal (unable_to_seek);
1610 if (BSD_BBSIZE != read (fd, disklabelbuffer, BSD_BBSIZE)) 1545 if (BSD_BBSIZE != read (fd, disklabelbuffer, BSD_BBSIZE))
1611 fdisk_fatal (unable_to_read); 1546 fdisk_fatal (unable_to_read);
@@ -1651,12 +1586,12 @@ xbsd_writelabel (struct partition *p, struct xbsd_disklabel *d)
1651 1586
1652#if defined (__alpha__) && BSD_LABELSECTOR == 0 1587#if defined (__alpha__) && BSD_LABELSECTOR == 0
1653 alpha_bootblock_checksum (disklabelbuffer); 1588 alpha_bootblock_checksum (disklabelbuffer);
1654 if (fdisk_llseek (fd, (fdisk_loff_t) 0, SEEK_SET) == -1) 1589 if (lseek (fd, (fdisk_loff_t) 0, SEEK_SET) == -1)
1655 fdisk_fatal (unable_to_seek); 1590 fdisk_fatal (unable_to_seek);
1656 if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE)) 1591 if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE))
1657 fdisk_fatal (unable_to_write); 1592 fdisk_fatal (unable_to_write);
1658#else 1593#else
1659 if (fdisk_llseek (fd, (fdisk_loff_t) sector * SECTOR_SIZE + BSD_LABELOFFSET, 1594 if (lseek (fd, (fdisk_loff_t) sector * SECTOR_SIZE + BSD_LABELOFFSET,
1660 SEEK_SET) == -1) 1595 SEEK_SET) == -1)
1661 fdisk_fatal (unable_to_seek); 1596 fdisk_fatal (unable_to_seek);
1662 if (sizeof (struct xbsd_disklabel) != write (fd, d, sizeof (struct xbsd_disklabel))) 1597 if (sizeof (struct xbsd_disklabel) != write (fd, d, sizeof (struct xbsd_disklabel)))
@@ -2083,7 +2018,7 @@ sgi_write_table(void) {
2083 */ 2018 */
2084 sgiinfo *info = fill_sgiinfo(); 2019 sgiinfo *info = fill_sgiinfo();
2085 int infostartblock = SGI_SSWAP32(sgilabel->directory[0].vol_file_start); 2020 int infostartblock = SGI_SSWAP32(sgilabel->directory[0].vol_file_start);
2086 if (fdisk_llseek(fd, (long long)infostartblock* 2021 if (lseek(fd, (long long)infostartblock*
2087 SECTOR_SIZE, SEEK_SET) < 0) 2022 SECTOR_SIZE, SEEK_SET) < 0)
2088 fdisk_fatal(unable_to_seek); 2023 fdisk_fatal(unable_to_seek);
2089 if (write(fd, info, SECTOR_SIZE) != SECTOR_SIZE) 2024 if (write(fd, info, SECTOR_SIZE) != SECTOR_SIZE)
@@ -3467,7 +3402,7 @@ static void fdisk_fatal(enum failure why) {
3467static void 3402static void
3468seek_sector(uint secno) { 3403seek_sector(uint secno) {
3469 fdisk_loff_t offset = (fdisk_loff_t) secno * sector_size; 3404 fdisk_loff_t offset = (fdisk_loff_t) secno * sector_size;
3470 if (fdisk_llseek(fd, offset, SEEK_SET) == (fdisk_loff_t) -1) 3405 if (lseek(fd, offset, SEEK_SET) == (fdisk_loff_t) -1)
3471 fdisk_fatal(unable_to_seek); 3406 fdisk_fatal(unable_to_seek);
3472} 3407}
3473 3408