diff options
| author | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2003-07-14 19:03:14 +0000 |
|---|---|---|
| committer | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2003-07-14 19:03:14 +0000 |
| commit | de2b0e40ed5ae8cb6bcc058bba18852f4404bc48 (patch) | |
| tree | da68354bb2864300b34781fa6ca01a67a5aad48a | |
| parent | b1a79522c949e2108d91a2c00e0ddcbd1dfebd96 (diff) | |
| download | busybox-w32-de2b0e40ed5ae8cb6bcc058bba18852f4404bc48.tar.gz busybox-w32-de2b0e40ed5ae8cb6bcc058bba18852f4404bc48.tar.bz2 busybox-w32-de2b0e40ed5ae8cb6bcc058bba18852f4404bc48.zip | |
Remove all the llseek junk and just use regular old lseek. When DOLFS is
enabled, regular lseek is transparently promoted to lseek64 anyways, rendering
the llseek stuff pointless.
-Erik
git-svn-id: svn://busybox.net/trunk/busybox@7052 69ca8d6d-28ef-0310-b511-8ec308f3f277
| -rw-r--r-- | util-linux/fdisk.c | 116 |
1 files changed, 6 insertions, 110 deletions
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c index 11da77179..291be4b9b 100644 --- a/util-linux/fdisk.c +++ b/util-linux/fdisk.c | |||
| @@ -838,110 +838,6 @@ typedef struct { | |||
| 838 | #define SUN_SSWAP32(x) (sun_other_endian ? __swap32(x) \ | 838 | #define SUN_SSWAP32(x) (sun_other_endian ? __swap32(x) \ |
| 839 | : (uint32_t)(x)) | 839 | : (uint32_t)(x)) |
| 840 | 840 | ||
| 841 | /* | ||
| 842 | * llseek.c -- stub calling the llseek system call | ||
| 843 | * | ||
| 844 | * Copyright (C) 1994 Remy Card. This file may be redistributed | ||
| 845 | * under the terms of the GNU Public License. | ||
| 846 | */ | ||
| 847 | |||
| 848 | |||
| 849 | #ifdef __linux__ | ||
| 850 | |||
| 851 | #ifdef HAVE_LLSEEK | ||
| 852 | #include <syscall.h> | ||
| 853 | |||
| 854 | #else /* HAVE_LLSEEK */ | ||
| 855 | |||
| 856 | #if defined(__alpha__) || defined(__ia64__) | ||
| 857 | |||
| 858 | #define my_llseek lseek | ||
| 859 | |||
| 860 | #else | ||
| 861 | #include <asm/unistd.h> /* for __NR__llseek */ | ||
| 862 | |||
| 863 | static int _llseek (unsigned int, unsigned long, | ||
| 864 | unsigned long, ext2_loff_t *, unsigned int); | ||
| 865 | |||
| 866 | #ifdef __NR__llseek | ||
| 867 | |||
| 868 | static _syscall5(int,_llseek,unsigned int,f_d,unsigned long,offset_high, | ||
| 869 | unsigned long, offset_low,ext2_loff_t *,result, | ||
| 870 | unsigned int, origin) | ||
| 871 | |||
| 872 | #else | ||
| 873 | |||
| 874 | /* no __NR__llseek on compilation machine - might give it explicitly */ | ||
| 875 | static int _llseek (unsigned int f_d, unsigned long oh, | ||
| 876 | unsigned long ol, ext2_loff_t *result, | ||
| 877 | unsigned int origin) { | ||
| 878 | errno = ENOSYS; | ||
| 879 | return -1; | ||
| 880 | } | ||
| 881 | |||
| 882 | #endif | ||
| 883 | |||
| 884 | static ext2_loff_t my_llseek (unsigned int f_d, ext2_loff_t offset, | ||
| 885 | unsigned int origin) | ||
| 886 | { | ||
| 887 | ext2_loff_t result; | ||
| 888 | int retval; | ||
| 889 | |||
| 890 | retval = _llseek (f_d, ((unsigned long long) offset) >> 32, | ||
| 891 | ((unsigned long long) offset) & 0xffffffff, | ||
| 892 | &result, origin); | ||
| 893 | return (retval == -1 ? (ext2_loff_t) retval : result); | ||
| 894 | } | ||
| 895 | |||
| 896 | #endif /* __alpha__ */ | ||
| 897 | |||
| 898 | #endif /* HAVE_LLSEEK */ | ||
| 899 | |||
| 900 | static ext2_loff_t ext2_llseek (unsigned int f_d, ext2_loff_t offset, | ||
| 901 | unsigned int origin) | ||
| 902 | { | ||
| 903 | ext2_loff_t result; | ||
| 904 | static int do_compat = 0; | ||
| 905 | |||
| 906 | if (!do_compat) { | ||
| 907 | result = my_llseek (f_d, offset, origin); | ||
| 908 | if (!(result == -1 && errno == ENOSYS)) | ||
| 909 | return result; | ||
| 910 | |||
| 911 | /* | ||
| 912 | * Just in case this code runs on top of an old kernel | ||
| 913 | * which does not support the llseek system call | ||
| 914 | */ | ||
| 915 | do_compat = 1; | ||
| 916 | /* | ||
| 917 | * Now try ordinary lseek. | ||
| 918 | */ | ||
| 919 | } | ||
| 920 | |||
| 921 | if ((sizeof(off_t) >= sizeof(ext2_loff_t)) || | ||
| 922 | (offset < ((ext2_loff_t) 1 << ((sizeof(off_t)*8) -1)))) | ||
| 923 | return lseek(f_d, (off_t) offset, origin); | ||
| 924 | |||
| 925 | errno = EINVAL; | ||
| 926 | return -1; | ||
| 927 | } | ||
| 928 | |||
| 929 | #else /* !linux */ | ||
| 930 | |||
| 931 | static ext2_loff_t ext2_llseek (unsigned int f_d, ext2_loff_t offset, | ||
| 932 | unsigned int origin) | ||
| 933 | { | ||
| 934 | if ((sizeof(off_t) < sizeof(ext2_loff_t)) && | ||
| 935 | (offset >= ((ext2_loff_t) 1 << ((sizeof(off_t)*8) -1)))) { | ||
| 936 | errno = EINVAL; | ||
| 937 | return -1; | ||
| 938 | } | ||
| 939 | return lseek (f_d, (off_t) offset, origin); | ||
| 940 | } | ||
| 941 | |||
| 942 | #endif /* linux */ | ||
| 943 | |||
| 944 | |||
| 945 | #ifdef CONFIG_FEATURE_OSF_LABEL | 841 | #ifdef CONFIG_FEATURE_OSF_LABEL |
| 946 | /* | 842 | /* |
| 947 | Changes: | 843 | Changes: |
| @@ -1466,7 +1362,7 @@ xbsd_write_bootstrap (void) | |||
| 1466 | sector = get_start_sect(xbsd_part); | 1362 | sector = get_start_sect(xbsd_part); |
| 1467 | #endif | 1363 | #endif |
| 1468 | 1364 | ||
| 1469 | if (ext2_llseek (fd, (ext2_loff_t) sector * SECTOR_SIZE, SEEK_SET) == -1) | 1365 | if (lseek (fd, (ext2_loff_t) sector * SECTOR_SIZE, SEEK_SET) == -1) |
| 1470 | fdisk_fatal (unable_to_seek); | 1366 | fdisk_fatal (unable_to_seek); |
| 1471 | if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE)) | 1367 | if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE)) |
| 1472 | fdisk_fatal (unable_to_write); | 1368 | fdisk_fatal (unable_to_write); |
| @@ -1634,7 +1530,7 @@ xbsd_readlabel (struct partition *p, struct xbsd_disklabel *d) | |||
| 1634 | sector = 0; | 1530 | sector = 0; |
| 1635 | #endif | 1531 | #endif |
| 1636 | 1532 | ||
| 1637 | if (ext2_llseek (fd, (ext2_loff_t) sector * SECTOR_SIZE, SEEK_SET) == -1) | 1533 | if (lseek (fd, (ext2_loff_t) sector * SECTOR_SIZE, SEEK_SET) == -1) |
| 1638 | fdisk_fatal (unable_to_seek); | 1534 | fdisk_fatal (unable_to_seek); |
| 1639 | if (BSD_BBSIZE != read (fd, disklabelbuffer, BSD_BBSIZE)) | 1535 | if (BSD_BBSIZE != read (fd, disklabelbuffer, BSD_BBSIZE)) |
| 1640 | fdisk_fatal (unable_to_read); | 1536 | fdisk_fatal (unable_to_read); |
| @@ -1680,12 +1576,12 @@ xbsd_writelabel (struct partition *p, struct xbsd_disklabel *d) | |||
| 1680 | 1576 | ||
| 1681 | #if defined (__alpha__) && BSD_LABELSECTOR == 0 | 1577 | #if defined (__alpha__) && BSD_LABELSECTOR == 0 |
| 1682 | alpha_bootblock_checksum (disklabelbuffer); | 1578 | alpha_bootblock_checksum (disklabelbuffer); |
| 1683 | if (ext2_llseek (fd, (ext2_loff_t) 0, SEEK_SET) == -1) | 1579 | if (lseek (fd, (ext2_loff_t) 0, SEEK_SET) == -1) |
| 1684 | fdisk_fatal (unable_to_seek); | 1580 | fdisk_fatal (unable_to_seek); |
| 1685 | if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE)) | 1581 | if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE)) |
| 1686 | fdisk_fatal (unable_to_write); | 1582 | fdisk_fatal (unable_to_write); |
| 1687 | #else | 1583 | #else |
| 1688 | if (ext2_llseek (fd, (ext2_loff_t) sector * SECTOR_SIZE + BSD_LABELOFFSET, | 1584 | if (lseek (fd, (ext2_loff_t) sector * SECTOR_SIZE + BSD_LABELOFFSET, |
| 1689 | SEEK_SET) == -1) | 1585 | SEEK_SET) == -1) |
| 1690 | fdisk_fatal (unable_to_seek); | 1586 | fdisk_fatal (unable_to_seek); |
| 1691 | if (sizeof (struct xbsd_disklabel) != write (fd, d, sizeof (struct xbsd_disklabel))) | 1587 | if (sizeof (struct xbsd_disklabel) != write (fd, d, sizeof (struct xbsd_disklabel))) |
| @@ -2120,7 +2016,7 @@ sgi_write_table(void) | |||
| 2120 | */ | 2016 | */ |
| 2121 | sgiinfo*info = fill_sgiinfo(); /* fills the block appropriately */ | 2017 | sgiinfo*info = fill_sgiinfo(); /* fills the block appropriately */ |
| 2122 | int infostartblock = SGI_SSWAP32( sgilabel->directory[0].vol_file_start ); | 2018 | int infostartblock = SGI_SSWAP32( sgilabel->directory[0].vol_file_start ); |
| 2123 | if( ext2_llseek(fd, (ext2_loff_t)infostartblock* | 2019 | if( lseek(fd, (ext2_loff_t)infostartblock* |
| 2124 | SECTOR_SIZE, SEEK_SET) < 0 ) | 2020 | SECTOR_SIZE, SEEK_SET) < 0 ) |
| 2125 | fdisk_fatal(unable_to_seek); | 2021 | fdisk_fatal(unable_to_seek); |
| 2126 | if( write(fd, info, SECTOR_SIZE) != SECTOR_SIZE ) | 2022 | if( write(fd, info, SECTOR_SIZE) != SECTOR_SIZE ) |
| @@ -3517,7 +3413,7 @@ static void fdisk_fatal(enum failure why) { | |||
| 3517 | static void | 3413 | static void |
| 3518 | seek_sector(uint secno) { | 3414 | seek_sector(uint secno) { |
| 3519 | ext2_loff_t offset = (ext2_loff_t) secno * sector_size; | 3415 | ext2_loff_t offset = (ext2_loff_t) secno * sector_size; |
| 3520 | if (ext2_llseek(fd, offset, SEEK_SET) == (ext2_loff_t) -1) | 3416 | if (lseek(fd, offset, SEEK_SET) == (ext2_loff_t) -1) |
| 3521 | fdisk_fatal(unable_to_seek); | 3417 | fdisk_fatal(unable_to_seek); |
| 3522 | } | 3418 | } |
| 3523 | 3419 | ||
