diff options
author | Adam Weinberger <adamw@FreeBSD.org> | 2014-07-29 15:00:12 +0000 |
---|---|---|
committer | Adam Weinberger <adamw@FreeBSD.org> | 2014-07-29 15:00:12 +0000 |
commit | 7792c21583f7131ad63a9cb6e25b7ef38652d3a7 (patch) | |
tree | 35ae86a1ec3a303f6ac7c0146111c635eff41fb4 /sysutils/linuxfdisk/files/patch-FreeBSD | |
parent | - Switch databases/libmemcache to USES=libtool, drop .la files (diff) |
Rename sysutils/ patch-xy patches to reflect the files they modify.
Notes
Notes:
svn path=/head/; revision=363335
Diffstat (limited to 'sysutils/linuxfdisk/files/patch-FreeBSD')
-rw-r--r-- | sysutils/linuxfdisk/files/patch-FreeBSD | 1131 |
1 files changed, 1131 insertions, 0 deletions
diff --git a/sysutils/linuxfdisk/files/patch-FreeBSD b/sysutils/linuxfdisk/files/patch-FreeBSD new file mode 100644 index 000000000000..2d0152aa64ee --- /dev/null +++ b/sysutils/linuxfdisk/files/patch-FreeBSD @@ -0,0 +1,1131 @@ +diff -rNu cfdisk.c cfdisk.c +--- cfdisk.c Tue Nov 26 18:44:33 2002 ++++ cfdisk.c Fri Jun 20 19:47:15 2003 +@@ -76,25 +76,14 @@ + #include <string.h> + #include <sys/stat.h> + #include <sys/ioctl.h> +-#include <linux/types.h> + + #include "nls.h" +-#include "xstrncpy.h" + #include "common.h" + +-#if defined(__GNUC__) || defined(HAS_LONG_LONG) +-typedef long long ext2_loff_t; +-#else +-typedef long ext2_loff_t; +-#endif +- +-extern ext2_loff_t ext2_llseek(unsigned int fd, ext2_loff_t offset, +- unsigned int origin); +- + #define VERSION UTIL_LINUX_VERSION + +-#define DEFAULT_DEVICE "/dev/hda" +-#define ALTERNATE_DEVICE "/dev/sda" ++#define DEFAULT_DEVICE "/dev/ad0" ++#define ALTERNATE_DEVICE "/dev/da0" + + /* With K=1024 we have `binary' megabytes, gigabytes, etc. + Some misguided hackers like that. +@@ -324,7 +313,8 @@ + int logical = 0; + int logical_sectors[MAXIMUM_PARTS]; + +-__sighandler_t old_SIGINT, old_SIGTERM; ++void (*old_SIGINT)(int); ++void (*old_SIGTERM)(int); + + int arrow_cursor = FALSE; + int display_units = MEGABYTES; +@@ -571,7 +561,7 @@ + + static void + read_sector(char *buffer, int sect_num) { +- if (ext2_llseek(fd, ((ext2_loff_t) sect_num)*SECTOR_SIZE, SEEK_SET) < 0) ++ if (lseek(fd, ((off_t) sect_num)*SECTOR_SIZE, SEEK_SET) < 0) + fatal(_("Cannot seek on disk drive"), 2); + if (read(fd, buffer, SECTOR_SIZE) != SECTOR_SIZE) + fatal(_("Cannot read disk drive"), 2); +@@ -579,7 +569,7 @@ + + static void + write_sector(char *buffer, int sect_num) { +- if (ext2_llseek(fd, ((ext2_loff_t) sect_num)*SECTOR_SIZE, SEEK_SET) < 0) ++ if (lseek(fd, ((off_t) sect_num)*SECTOR_SIZE, SEEK_SET) < 0) + fatal(_("Cannot seek on disk drive"), 2); + if (write(fd, buffer, SECTOR_SIZE) != SECTOR_SIZE) + fatal(_("Cannot write disk drive"), 2); +@@ -603,11 +593,11 @@ + #define DOS_OSTYPE_SZ 8 + #define DOS_LABEL_SZ 11 + #define DOS_FSTYPE_SZ 8 +- ext2_loff_t offset; ++ off_t offset; + +- offset = ((ext2_loff_t) p_info[i].first_sector + p_info[i].offset) ++ offset = ((off_t) p_info[i].first_sector + p_info[i].offset) + * SECTOR_SIZE; +- if (ext2_llseek(fd, offset, SEEK_SET) == offset ++ if (lseek(fd, offset, SEEK_SET) == offset + && read(fd, §or, sizeof(sector)) == sizeof(sector)) { + dos_copy_to_info(p_info[i].ostype, OSTYPESZ, + sector+DOS_OSTYPE_OFFSET, DOS_OSTYPE_SZ); +@@ -664,12 +654,12 @@ + } xfsb; + + char *label; +- ext2_loff_t offset; ++ off_t offset; + int j; + +- offset = ((ext2_loff_t) p_info[i].first_sector + p_info[i].offset) ++ offset = ((off_t) p_info[i].first_sector + p_info[i].offset) + * SECTOR_SIZE + 1024; +- if (ext2_llseek(fd, offset, SEEK_SET) == offset ++ if (lseek(fd, offset, SEEK_SET) == offset + && read(fd, &e2fsb, sizeof(e2fsb)) == sizeof(e2fsb) + && e2fsb.s_magic[0] + (e2fsb.s_magic[1]<<8) == EXT2_SUPER_MAGIC) { + label = e2fsb.s_volume_name; +@@ -684,9 +674,9 @@ + return; + } + +- offset = ((ext2_loff_t) p_info[i].first_sector + p_info[i].offset) ++ offset = ((off_t) p_info[i].first_sector + p_info[i].offset) + * SECTOR_SIZE + 0; +- if (ext2_llseek(fd, offset, SEEK_SET) == offset ++ if (lseek(fd, offset, SEEK_SET) == offset + && read(fd, &xfsb, sizeof(xfsb)) == sizeof(xfsb) + && !strcmp(xfsb.s_magic, XFS_SUPER_MAGIC)) { + label = xfsb.s_fname; +@@ -698,9 +688,9 @@ + } + + /* reiserfs? */ +- offset = ((ext2_loff_t) p_info[i].first_sector + p_info[i].offset) ++ offset = ((off_t) p_info[i].first_sector + p_info[i].offset) + * SECTOR_SIZE + REISERFS_DISK_OFFSET_IN_BYTES; +- if (ext2_llseek(fd, offset, SEEK_SET) == offset ++ if (lseek(fd, offset, SEEK_SET) == offset + && read(fd, &reiserfsb, 1024) == 1024 + && is_reiserfs_magic_string(&reiserfsb)) { + strncpy(p_info[i].fstype, "reiserfs", FSTYPESZ); +@@ -1140,7 +1130,7 @@ + print_warning(_("Menu item too long. Menu may look odd.")); + #endif + if (lenName >= sizeof(buff)) { /* truncate ridiculously long string */ +- xstrncpy(buff, mi, sizeof(buff)); ++ strlcpy(buff, mi, sizeof(buff)); + } else { + snprintf(buff, sizeof(buff), + (menuType & MENU_BUTTON) ? "[%*s%-*s]" : "%*s%-*s", +@@ -1605,17 +1595,7 @@ + opentype = O_RDWR; + opened = TRUE; + +- /* Blocks are visible in more than one way: +- e.g. as block on /dev/hda and as block on /dev/hda3 +- By a bug in the Linux buffer cache, we will see the old +- contents of /dev/hda when the change was made to /dev/hda3. +- In order to avoid this, discard all blocks on /dev/hda. +- Note that partition table blocks do not live in /dev/hdaN, +- so this only plays a role if we want to show volume labels. */ +- ioctl(fd, BLKFLSBUF); /* ignore errors */ +- /* e.g. Permission Denied */ +- +- if (ioctl(fd, BLKGETSIZE, &actual_size)) ++ if (sys_bsd_getsectors(fd, &actual_size)) + fatal(_("Cannot get disk size"), 3); + + read_sector(buffer.c.b, 0); +@@ -1824,7 +1804,7 @@ + if (is_bdev) { + sync(); + sleep(2); +- if (!ioctl(fd,BLKRRPART)) ++ if (!sys_bsd_ptsync(fd)) + changed = TRUE; + sync(); + sleep(4); +@@ -2850,9 +2830,11 @@ + int c; + int i, len; + ++#if 0 + setlocale(LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); ++#endif + + while ((c = getopt(argc, argv, "ac:gh:s:vzP:")) != -1) + switch (c) { +diff -rNu common.h common.h +--- common.h Thu May 9 02:50:35 2002 ++++ common.h Fri Jun 20 19:25:55 2003 +@@ -1,11 +1,10 @@ + /* common stuff for fdisk, cfdisk, sfdisk */ + +-/* including <linux/fs.h> fails */ +-#include <sys/ioctl.h> +-#define BLKRRPART _IO(0x12,95) /* re-read partition table */ +-#define BLKGETSIZE _IO(0x12,96) /* return device size */ +-#define BLKFLSBUF _IO(0x12,97) /* flush buffer cache */ +-#define BLKSSZGET _IO(0x12,104) /* get block device sector size */ ++#include <sys/types.h> ++typedef u_int16_t __u16; ++typedef u_int32_t __u32; ++typedef int16_t __s16; ++typedef u_int8_t __u8; + + /* including <linux/hdreg.h> also fails */ + struct hd_geometry { +@@ -15,9 +14,6 @@ + unsigned long start; + }; + +-#define HDIO_GETGEO 0x0301 /* get device geometry */ +- +- + struct systypes { + unsigned char type; + char *name; +@@ -26,3 +22,8 @@ + extern struct systypes i386_sys_types[]; + + extern char *partname(char *dev, int pno, int lth); ++ ++unsigned int sys_bsd_sectorsize(int fd); ++int sys_bsd_getsectors(int fd, unsigned long* s); ++int sys_bsd_ptsync(int fd); ++int sys_bsd_getgeometry(int, struct hd_geometry*); +diff -rNu fdisk.c fdisk.c +--- fdisk.c Sat Nov 23 18:05:24 2002 ++++ fdisk.c Fri Jun 20 19:25:55 2003 +@@ -37,11 +37,6 @@ + #include "fdisksgilabel.h" + #include "fdiskaixlabel.h" + +-#include "../defines.h" +-#ifdef HAVE_blkpg_h +-#include <linux/blkpg.h> +-#endif +- + static void delete_partition(int i); + + #define hex_val(c) ({ \ +@@ -198,8 +193,8 @@ + " fdisk -l [-b SSZ] [-u] DISK List partition table(s)\n" + " fdisk -s PARTITION Give partition size(s) in blocks\n" + " fdisk -v Give fdisk version\n" +-"Here DISK is something like /dev/hdb or /dev/sda\n" +-"and PARTITION is something like /dev/hda7\n" ++"Here DISK is something like /dev/ad1 or /dev/da0\n" ++"and PARTITION is something like /dev/ad0s7\n" + "-u: give Start and End in sector (instead of cylinder) units\n" + "-b 2048: (for certain MO disks) use 2048-byte sectors\n"); + break; +@@ -207,10 +202,8 @@ + /* msg in cases where fdisk used to probe */ + message = _( + "Usage: fdisk [-l] [-b SSZ] [-u] device\n" +-"E.g.: fdisk /dev/hda (for the first IDE disk)\n" +-" or: fdisk /dev/sdc (for the third SCSI disk)\n" +-" or: fdisk /dev/eda (for the first PS/2 ESDI drive)\n" +-" or: fdisk /dev/rd/c0d0 or: fdisk /dev/ida/c0d0 (for RAID devices)\n" ++"E.g.: fdisk /dev/ad0 (for the first IDE disk)\n" ++" or: fdisk /dev/da0 (for the third SCSI disk)\n" + " ...\n"); + break; + case unable_to_open: +@@ -231,7 +224,7 @@ + break; + case ioctl_error: + snprintf(error, sizeof(error), +- _("BLKGETSIZE ioctl failed on %s\n"), ++ _("DIOCGDINFO ioctl failed on %s\n"), + disk_device); + break; + case out_of_memory: +@@ -248,8 +241,8 @@ + + static void + seek_sector(int fd, uint secno) { +- ext2_loff_t offset = (ext2_loff_t) secno * sector_size; +- if (ext2_llseek(fd, offset, SEEK_SET) == (ext2_loff_t) -1) ++ off_t offset = (off_t) secno * sector_size; ++ if (lseek(fd, offset, SEEK_SET) == (off_t) -1) + fatal(unable_to_seek); + } + +@@ -725,53 +718,23 @@ + get_boot(create_empty_dos); + } + +-#include <sys/utsname.h> +-#define MAKE_VERSION(p,q,r) (65536*(p) + 256*(q) + (r)) +- +-static int +-linux_version_code(void) { +- static int kernel_version = 0; +- struct utsname my_utsname; +- int p, q, r; +- +- if (!kernel_version && uname(&my_utsname) == 0) { +- p = atoi(strtok(my_utsname.release, ".")); +- q = atoi(strtok(NULL, ".")); +- r = atoi(strtok(NULL, ".")); +- kernel_version = MAKE_VERSION(p,q,r); +- } +- return kernel_version; +-} +- + static void + get_sectorsize(int fd) { +-#if defined(BLKSSZGET) +- if (!user_set_sector_size && +- linux_version_code() >= MAKE_VERSION(2,3,3)) { +- int arg; +- if (ioctl(fd, BLKSSZGET, &arg) == 0) +- sector_size = arg; +- if (sector_size != DEFAULT_SECTOR_SIZE) +- printf(_("Note: sector size is %d (not %d)\n"), +- sector_size, DEFAULT_SECTOR_SIZE); +- } +-#else +- /* maybe the user specified it; and otherwise we still +- have the DEFAULT_SECTOR_SIZE default */ +-#endif ++ unsigned int r = sys_bsd_sectorsize(fd); ++ if (r) ++ sector_size = r; ++ if (sector_size != DEFAULT_SECTOR_SIZE) ++ printf(_("Note: sector size is %d (not %d)\n"), ++ sector_size, DEFAULT_SECTOR_SIZE); + } + + static void + get_kernel_geometry(int fd) { +-#ifdef HDIO_GETGEO +- struct hd_geometry geometry; +- +- if (!ioctl(fd, HDIO_GETGEO, &geometry)) { +- kern_heads = geometry.heads; +- kern_sectors = geometry.sectors; +- /* never use geometry.cylinders - it is truncated */ ++ struct hd_geometry h; ++ if (!sys_bsd_getgeometry(fd, &h)) { ++ kern_heads = h.heads; ++ kern_sectors = h.sectors; + } +-#endif + } + + static void +@@ -813,7 +776,7 @@ + + get_sectorsize(fd); + sec_fac = sector_size / 512; +- guess_device_type(fd); ++ //guess_device_type(fd); + heads = cylinders = sectors = 0; + kern_heads = kern_sectors = 0; + pt_heads = pt_sectors = 0; +@@ -828,8 +791,11 @@ + pt_sectors ? pt_sectors : + kern_sectors ? kern_sectors : 63; + +- if (ioctl(fd, BLKGETSIZE, &longsectors)) +- longsectors = 0; ++ ;{ ++ unsigned long r; ++ if (sys_bsd_getsectors(fd, &r) == 0) ++ longsectors = r; ++ } + + sector_offset = 1; + if (dos_compatible_flag) +@@ -1404,7 +1370,7 @@ + * Jan. 1990 (version 1.2.1 by Gordon W. Ross Aug. 1990; Modified by S. + * Lubkin Oct. 1991). */ + +-static void long2chs(ulong ls, uint *c, uint *h, uint *s) { ++static void long2chs(unsigned long ls, uint *c, uint *h, uint *s) { + int spc = heads * sectors; + + *c = ls / spc; +@@ -2102,16 +2068,8 @@ + printf(_("Calling ioctl() to re-read partition table.\n")); + sync(); + sleep(2); +- if ((i = ioctl(fd, BLKRRPART)) != 0) { ++ if ((i = sys_bsd_ptsync(fd)) != 0) { + error = errno; +- } else { +- /* some kernel versions (1.2.x) seem to have trouble +- rereading the partition table, but if asked to do it +- twice, the second time works. - biro@yggdrasil.com */ +- sync(); +- sleep(2); +- if ((i = ioctl(fd, BLKRRPART)) != 0) +- error = errno; + } + + if (i) { +@@ -2403,9 +2361,11 @@ + int j, c; + int optl = 0, opts = 0; + ++#if 0 + setlocale(LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); ++#endif + + /* + * Calls: +@@ -2455,7 +2415,7 @@ + break; + case 'V': + case 'v': +- printf("fdisk v" UTIL_LINUX_VERSION "\n"); ++ printf("fdisk v" "2.11z" "-freebsd-portbld" "\n"); + exit(0); + default: + fatal(usage); +@@ -2504,7 +2464,7 @@ + disk_device = argv[j]; + if ((fd = open(disk_device, type_open)) < 0) + fatal(unable_to_open); +- if (ioctl(fd, BLKGETSIZE, &size)) ++ if (sys_bsd_getsectors(fd, &size)) + fatal(ioctl_error); + close(fd); + if (opts == 1) +diff -rNu fdiskaixlabel.c fdiskaixlabel.c +--- fdiskaixlabel.c Tue Apr 18 15:21:28 2000 ++++ fdiskaixlabel.c Fri Jun 20 19:25:55 2003 +@@ -8,7 +8,7 @@ + #include <string.h> /* strstr */ + #include <unistd.h> /* write */ + +-#include <endian.h> ++#include <sys/endian.h> + + #include "common.h" + #include "fdisk.h" +diff -rNu fdiskaixlabel.h fdiskaixlabel.h +--- fdiskaixlabel.h Sun Feb 20 18:50:51 2000 ++++ fdiskaixlabel.h Fri Jun 20 19:25:55 2003 +@@ -1,4 +1,3 @@ +-#include <linux/types.h> /* for __u32 etc */ + /* + * Copyright (C) Andreas Neuper, Sep 1998. + * This file may be redistributed under +diff -rNu fdiskbsdlabel.c fdiskbsdlabel.c +--- fdiskbsdlabel.c Thu Oct 31 15:43:42 2002 ++++ fdiskbsdlabel.c Fri Jun 20 19:25:55 2003 +@@ -566,7 +566,7 @@ + sector = get_start_sect(xbsd_part); + #endif + +- if (ext2_llseek (fd, (ext2_loff_t) sector * SECTOR_SIZE, SEEK_SET) == -1) ++ if (lseek (fd, (off_t) sector * SECTOR_SIZE, SEEK_SET) == -1) + fatal (unable_to_seek); + if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE)) + fatal (unable_to_write); +@@ -735,7 +735,7 @@ + sector = 0; + #endif + +- if (ext2_llseek (fd, (ext2_loff_t) sector * SECTOR_SIZE, SEEK_SET) == -1) ++ if (lseek (fd, (off_t) sector * SECTOR_SIZE, SEEK_SET) == -1) + fatal (unable_to_seek); + if (BSD_BBSIZE != read (fd, disklabelbuffer, BSD_BBSIZE)) + fatal (unable_to_read); +@@ -781,12 +781,12 @@ + + #if defined (__alpha__) && BSD_LABELSECTOR == 0 + alpha_bootblock_checksum (disklabelbuffer); +- if (ext2_llseek (fd, (ext2_loff_t) 0, SEEK_SET) == -1) ++ if (lseek (fd, (off_t) 0, SEEK_SET) == -1) + fatal (unable_to_seek); + if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE)) + fatal (unable_to_write); + #else +- if (ext2_llseek (fd, (ext2_loff_t) sector * SECTOR_SIZE + BSD_LABELOFFSET, ++ if (lseek (fd, (off_t) sector * SECTOR_SIZE + BSD_LABELOFFSET, + SEEK_SET) == -1) + fatal (unable_to_seek); + if (sizeof (struct xbsd_disklabel) != write (fd, d, sizeof (struct xbsd_disklabel))) +@@ -847,9 +847,11 @@ + + #if defined (__alpha__) + ++/* + #if !defined(__GLIBC__) + typedef unsigned long long u_int64_t; + #endif ++*/ + + void + alpha_bootblock_checksum (char *boot) +diff -rNu fdiskbsdlabel.h fdiskbsdlabel.h +--- fdiskbsdlabel.h Thu Oct 31 15:45:34 2002 ++++ fdiskbsdlabel.h Fri Jun 20 19:25:55 2003 +@@ -31,8 +31,6 @@ + * SUCH DAMAGE. + */ + +-#include <linux/types.h> /* for __u32, __u16, __u8, __s16 */ +- + #ifndef BSD_DISKMAGIC + #define BSD_DISKMAGIC ((__u32) 0x82564557) + #endif +diff -rNu fdisksgilabel.c fdisksgilabel.c +--- fdisksgilabel.c Thu May 9 02:51:31 2002 ++++ fdisksgilabel.c Fri Jun 20 19:25:55 2003 +@@ -17,9 +17,8 @@ + #include <sys/stat.h> /* stat */ + #include <assert.h> /* assert */ + +-#include <endian.h> ++#include <sys/endian.h> + #include "nls.h" +-#include <linux/major.h> /* FLOPPY_MAJOR */ + + #include "common.h" + #include "fdisk.h" +@@ -382,7 +381,7 @@ + */ + sgiinfo*info = fill_sgiinfo(); /* fills the block appropriately */ + int infostartblock = SSWAP32( sgilabel->directory[0].vol_file_start ); +- if( ext2_llseek(fd, (ext2_loff_t)infostartblock* ++ if( lseek(fd, (off_t)infostartblock* + SECTOR_SIZE, SEEK_SET) < 0 ) + fatal(unable_to_seek); + if( write(fd, info, SECTOR_SIZE) != SECTOR_SIZE ) +@@ -735,11 +734,7 @@ + + other_endian = (BYTE_ORDER == LITTLE_ENDIAN); + +-#ifdef HDIO_REQ +- if (!ioctl(fd, HDIO_REQ, &geometry)) +-#else +- if (!ioctl(fd, HDIO_GETGEO, &geometry)) +-#endif ++ if (!sys_bsd_getgeometry(fd, &geometry)) + { + heads = geometry.heads; + sectors = geometry.sectors; +diff -rNu fdisksgilabel.h fdisksgilabel.h +--- fdisksgilabel.h Tue Feb 20 12:26:53 2001 ++++ fdisksgilabel.h Fri Jun 20 19:25:55 2003 +@@ -1,4 +1,3 @@ +-#include <linux/types.h> /* for __u32 etc */ + /* + * Copyright (C) Andreas Neuper, Sep 1998. + * This file may be modified and redistributed under +diff -rNu fdisksunlabel.c fdisksunlabel.c +--- fdisksunlabel.c Fri Nov 1 03:55:25 2002 ++++ fdisksunlabel.c Fri Jun 20 19:25:55 2003 +@@ -16,18 +16,18 @@ + #include <unistd.h> /* write */ + #include <sys/ioctl.h> /* ioctl */ + #include <sys/stat.h> /* stat */ +-#include <sys/sysmacros.h> /* major */ ++//#include <sys/sysmacros.h> /* major */ + + #include "nls.h" + +-#include <endian.h> +-#include "../defines.h" /* for HAVE_scsi_h */ ++#include <sys/endian.h> ++//#include "../defines.h" /* for HAVE_scsi_h */ + #ifdef HAVE_scsi_h + #define u_char unsigned char + #include <scsi/scsi.h> /* SCSI_IOCTL_GET_IDLUN */ + #undef u_char + #endif +-#include <linux/major.h> /* FLOPPY_MAJOR */ ++//#include <linux/major.h> /* FLOPPY_MAJOR */ + + #include "common.h" + #include "fdisk.h" +@@ -71,6 +71,7 @@ + return SSWAP32(p.num_sectors); + } + ++#if 0 + #ifndef IDE0_MAJOR + #define IDE0_MAJOR 3 + #endif +@@ -97,6 +98,7 @@ + floppy = 0; + } + } ++#endif + + static void + set_sun_partition(int i, uint start, uint stop, int sysid) { +@@ -296,11 +298,7 @@ + } + } + if (!p || floppy) { +-#ifdef HDIO_REQ +- if (!ioctl(fd, HDIO_REQ, &geometry)) { +-#else +- if (!ioctl(fd, HDIO_GETGEO, &geometry)) { +-#endif ++ if (!sys_bsd_getgeometry(fd, &geometry)) { + heads = geometry.heads; + sectors = geometry.sectors; + cylinders = geometry.cylinders; +diff -rNu fdisksunlabel.h fdisksunlabel.h +--- fdisksunlabel.h Tue Oct 3 00:42:10 2000 ++++ fdisksunlabel.h Fri Jun 20 19:25:55 2003 +@@ -1,4 +1,3 @@ +-#include <linux/types.h> /* for __u16, __u32 */ + + typedef struct { + unsigned char info[128]; /* Informative text string */ +diff -rNu nls.h nls.h +--- nls.h Thu Jan 1 03:00:00 1970 ++++ nls.h Fri Jun 20 19:25:55 2003 +@@ -0,0 +1,2 @@ ++#define _(x) (x) ++#define N_(x) (x) +diff -rNu partname.c partname.c +--- partname.c Sun Jul 7 15:16:43 2002 ++++ partname.c Fri Jun 20 19:25:55 2003 +@@ -21,14 +21,16 @@ + p = ""; + + if (isdigit(dev[w-1])) +- p = "p"; ++ p = "s"; + ++#if 0 + /* devfs kludge - note: fdisk partition names are not supposed + to equal kernel names, so there is no reason to do this */ + if (strcmp (dev + w - 4, "disc") == 0) { + w -= 4; + p = "part"; + } ++#endif + + wp = strlen(p); + +diff -rNu sfdisk.8 sfdisk.8 +--- sfdisk.8 Fri Jun 20 20:37:34 2003 ++++ sfdisk.8 Fri Jun 20 20:43:24 2003 +@@ -9,9 +9,9 @@ + .SH NAME + sfdisk \- Partition table manipulator for Linux + .SH SYNOPSIS +-.BR sfdisk " [options] device" ++.BR sfdisk-linux " [options] device" + .br +-.BR "sfdisk \-s " [partition] ++.BR "sfdisk-linux \-s " [partition] + .SH DESCRIPTION + .B sfdisk + has four (main) uses: list the size of a partition, list the partitions +@@ -19,7 +19,7 @@ + repartition a device. + + .SS "List Sizes" +-.BI "sfdisk \-s " partition ++.BI "sfdisk-linux \-s " partition + gives the size of + .I partition + in blocks. This may be useful in connection with programs like +@@ -27,16 +27,16 @@ + or so. Here + .I partition + is usually something like +-.I /dev/hda1 ++.I /dev/ad0s1 + or +-.IR /dev/sdb12 , ++.IR /dev/da2s12 , + but may also be an entire disk, like +-.IR /dev/xda . ++.IR /dev/amrd0 . + .br + .RS + .nf + .if t .ft CW +-% sfdisk \-s /dev/hda9 ++% sfdisk-linux \-s /dev/ad0s9 + 81599 + % + .if t .ft R +@@ -49,12 +49,12 @@ + .RS + .nf + .if t .ft CW +-% sfdisk \-s +-/dev/hda: 208896 +-/dev/hdb: 1025136 +-/dev/hdc: 1031063 +-/dev/sda: 8877895 +-/dev/sdb: 1758927 ++% sfdisk-linux \-s ++/dev/ad0: 208896 ++/dev/ad1: 1025136 ++/dev/ad2: 1031063 ++/dev/da0: 8877895 ++/dev/da1: 1758927 + total: 12901917 blocks + % + .if t .ft R +@@ -70,16 +70,16 @@ + .br + .nf + .if t .ft CW +-% sfdisk \-l /dev/hdc ++% sfdisk-linux \-l /dev/ad2 + +-Disk /dev/hdc: 16 heads, 63 sectors, 2045 cylinders ++Disk /dev/ad2: 16 heads, 63 sectors, 2045 cylinders + Units = cylinders of 516096 bytes, blocks of 1024 bytes, counting from 0 + + Device Boot Start End #cyls #blocks Id System +-/dev/hdc1 0+ 406 407\- 205096+ 83 Linux native +-/dev/hdc2 407 813 407 205128 83 Linux native +-/dev/hdc3 814 2044 1231 620424 83 Linux native +-/dev/hdc4 0 \- 0 0 0 Empty ++/dev/ad2s1 0+ 406 407\- 205096+ 83 Linux native ++/dev/ad2s2 407 813 407 205128 83 Linux native ++/dev/ad2s3 814 2044 1231 620424 83 Linux native ++/dev/ad2s4 0 \- 0 0 0 Empty + % + .if t .ft R + .fi +@@ -89,17 +89,17 @@ + + .SS "Check partitions" + The third type of invocation: +-.BI "sfdisk \-V " device ++.BI "sfdisk-linux \-V " device + will apply various consistency checks to the partition tables on + .IR device . + It prints `OK' or complains. The \-V option can be used together + with \-l. In a shell script one might use +-.BI "sfdisk \-V \-q " device ++.BI "sfdisk-linux \-V \-q " device + which only returns a status. + + .SS "Create partitions" + The fourth type of invocation: +-.BI "sfdisk " device ++.BI "sfdisk-linux " device + will cause + .B sfdisk + to read the specification for the desired partitioning of +@@ -119,7 +119,7 @@ + .RS + .nf + .if t .ft CW +-% sfdisk /dev/hdd \-O hdd-partition-sectors.save ++% sfdisk-linux /dev/ad3 \-O ad3-partition-sectors.save + \&... + % + .if t .ft R +@@ -132,7 +132,7 @@ + .RS + .nf + .if t .ft CW +-% sfdisk /dev/hdd \-I hdd-partition-sectors.save ++% sfdisk-linux /dev/ad3 \-I ad3-partition-sectors.save + % + .if t .ft R + .fi +@@ -176,8 +176,8 @@ + .br + .nf + .if t .ft CW +- % sfdisk -d /dev/hda > hda.out +- % sfdisk /dev/hda < hda.out ++ % sfdisk-linux -d /dev/ad0 > ad0.out ++ % sfdisk-linux /dev/ad0 < ad0.out + .if t .ft R + .fi + will correct the bad last extended partition that the OS/2 +@@ -194,14 +194,14 @@ + .br + .nf + .if t .ft CW +- % sfdisk /dev/hdb \-N5 ++ % sfdisk-linux /dev/ad1 \-N5 + ,,,* + % + .if t .ft R + .fi +-will make the fifth partition on /dev/hdb bootable (`active') ++will make the fifth partition on /dev/ad1 bootable (`active') + and change nothing else. (Probably this fifth partition +-is called /dev/hdb5, but you are free to call it something else, ++is called /dev/ad1s5, but you are free to call it something else, + like `/my_equipment/disks/2/5' or so). + .TP + .BI \-A "number" +@@ -216,13 +216,13 @@ + .br + .nf + .if t .ft CW +- % sfdisk --print-id /dev/hdb 5 ++ % sfdisk-linux --print-id /dev/ad1 5 + 6 +- % sfdisk --change-id /dev/hdb 5 83 ++ % sfdisk-linux --change-id /dev/ad1 5 83 + OK + .if t .ft R + .fi +-first reports that /dev/hdb5 has Id 6, and then changes that into 83. ++first reports that /dev/ad1s5 has Id 6, and then changes that into 83. + .TP + .BR \-uS " or " \-uB " or " \-uC " or " \-uM + Accept or report in units of sectors (blocks, cylinders, megabytes, +@@ -420,7 +420,7 @@ + .RS + .nf + .if t .ft CW +-sfdisk /dev/hdc << EOF ++sfdisk-linux /dev/ad2 << EOF + 0,407 + ,407 + ; +@@ -429,7 +429,7 @@ + .if t .ft R + .fi + .RE +-will partition /dev/hdc just as indicated above. ++will partition /dev/ad2 just as indicated above. + + With the \-x option, the number of input lines must be a multiple of 4: + you have to list the two empty partitions that you never want +@@ -456,9 +456,9 @@ + .B dd + to zero the first 512 bytes of that partition before using DOS FORMAT to + format the partition. For example, if you were using sfdisk to make a DOS +-partition table entry for /dev/hda1, then (after exiting sfdisk and ++partition table entry for /dev/ad0s1, then (after exiting sfdisk and + rebooting Linux so that the partition table information is valid) you +-would use the command "dd if=/dev/zero of=/dev/hda1 bs=512 count=1" to zero ++would use the command "dd if=/dev/zero of=/dev/ad0s1 bs=512 count=1" to zero + the first 512 bytes of the partition. + .B BE EXTREMELY CAREFUL + if you use the +@@ -508,7 +508,7 @@ + + .SH BUGS + A corresponding interactive +-.B cfdisk ++.B cfdisk-linux + (with curses interface) is still lacking. + .LP + There are too many options. +@@ -519,7 +519,7 @@ + A. E. Brouwer (aeb@cwi.nl) + + .SH "SEE ALSO" +-.BR cfdisk (8), ++.BR cfdisk-linux (8), ++.BR fdisk-linux (8), + .BR fdisk (8), +-.BR mkfs (8), +-.BR parted (8) ++.BR newfs (8) +diff -rNu cfdisk.8 cfdisk.8 +--- cfdisk.8 Sun Jul 7 15:28:27 2002 ++++ cfdisk.8 Fri Jun 20 20:57:52 2003 +@@ -15,7 +15,7 @@ + .SH NAME + cfdisk \- Curses based disk partition table manipulator for Linux + .SH SYNOPSIS +-.BI "cfdisk [ \-agvz ] [ \-c " cylinders " ] [ \-h " heads " ]" ++.BI "cfdisk-linux [ \-agvz ] [ \-c " cylinders " ] [ \-h " heads " ]" + .BI "[ \-s " sectors-per-track " ] [ -P " opt " ] [ " device " ]" + .SH DESCRIPTION + .B cfdisk +@@ -26,12 +26,10 @@ + .sp + .nf + .RS +-/dev/hda [default] +-/dev/hdb +-/dev/sda +-/dev/sdb +-/dev/sdc +-/dev/sdd ++/dev/ad0 [default] ++/dev/ad1 ++/dev/da0 ++/dev/da1 + .RE + .fi + +@@ -132,9 +130,9 @@ + .B dd + to zero the first 512 bytes of that partition before using DOS FORMAT to + format the partition. For example, if you were using cfdisk to make a DOS +-partition table entry for /dev/hda1, then (after exiting fdisk or cfdisk ++partition table entry for /dev/ad0s1, then (after exiting fdisk or cfdisk + and rebooting Linux so that the partition table information is valid) you +-would use the command "dd if=/dev/zero of=/dev/hda1 bs=512 count=1" to zero ++would use the command "dd if=/dev/zero of=/dev/ad0s1 bs=512 count=1" to zero + the first 512 bytes of the partition. Note: + + .B BE EXTREMELY CAREFUL +@@ -418,10 +416,10 @@ + 0: No errors; 1: Invocation error; 2: I/O error; + 3: cannot get geometry; 4: bad partition table on disk. + .SH "SEE ALSO" ++.BR fdisk-linux (8), ++.BR newfs (8), + .BR fdisk (8), +-.BR mkfs (8), +-.BR parted (8), +-.BR sfdisk (8) ++.BR sfdisk-linux (8) + .SH BUGS + The current version does not support multiple disks. + .SH AUTHOR +diff -rNu fdisk.8 fdisk.8 +--- fdisk.8 Tue Aug 6 17:33:33 2002 ++++ fdisk.8 Fri Jun 20 21:01:24 2003 +@@ -5,14 +5,14 @@ + .SH NAME + fdisk \- Partition table manipulator for Linux + .SH SYNOPSIS +-.BI "fdisk [\-u] [\-b " sectorsize ] ++.BI "fdisk-linux [\-u] [\-b " sectorsize ] + .BI "[\-C " cyls "] [\-H " heads "] [\-S " sects "] " device + .sp +-.BI "fdisk \-l [\-u] [" "device ..." ] ++.BI "fdisk-linux \-l [\-u] [" "device ..." ] + .sp +-.BI "fdisk \-s " "partition ..." ++.BI "fdisk-linux \-s " "partition ..." + .sp +-.BI "fdisk \-v ++.BI "fdisk-linux \-v + .SH DESCRIPTION + Hard disks can be divided into one or more logical disks called + .IR partitions . +@@ -48,26 +48,22 @@ + .br + .nf + .RS +-/dev/hda +-/dev/hdb +-/dev/sda +-/dev/sdb ++/dev/ad0 ++/dev/ad1 ++/dev/da0 ++/dev/da1 + .RE + .fi +-(/dev/hd[a-h] for IDE disks, /dev/sd[a-p] for SCSI disks, +-/dev/ed[a-d] for ESDI disks, /dev/xd[ab] for XT disks). ++(/dev/adN for IDE disks, /dev/daN for SCSI disks, N=0,1,2...) + A device name refers to the entire disk. + + The + .I partition + is a + .I device +-name followed by a partition number. For example, +-.B /dev/hda1 ++name followed by 's' and a partition number. For example, ++.B /dev/ad0s1 + is the first partition on the first IDE hard disk in the system. +-IDE disks can have up to 63 partitions, SCSI disks up to 15. +-See also +-.IR /usr/src/linux/Documentation/devices.txt . + + A BSD/SUN type disklabel can describe 8 partitions, + the third of which should be a `whole disk' partition. +@@ -132,7 +128,7 @@ + Partitions beginning in cylinder 1 cannot begin on a cylinder boundary, but + this is unlikely to cause difficulty unless you have OS/2 on your machine. + +-A sync() and a BLKRRPART ioctl() (reread partition table from disk) ++A sync() and a sys_bsd_ptsync() (reread partition table from disk) + are performed before exiting when the partition table has been updated. + Long ago it used to be necessary to reboot after the use of fdisk. + I do not think this is the case anymore - indeed, rebooting too quickly +@@ -242,7 +238,7 @@ + .\" Andreas Neuper (ANeuper@GUUG.de) + .\" and many others. + .SH "SEE ALSO" +-.BR cfdisk (8), +-.BR mkfs (8), +-.BR parted (8), +-.BR sfdisk (8) ++.BR cfdisk_linux (8), ++.BR newfs (8), ++.BR fdisk (8), ++.BR sfdisk_linux (8) +diff -rNu sfdisk.c sfdisk.c +--- sfdisk.c Tue Jan 28 20:18:03 2003 ++++ sfdisk.c Tue Jun 24 01:10:28 2003 +@@ -42,11 +42,9 @@ + #include <errno.h> /* ERANGE */ + #include <string.h> /* index() */ + #include <ctype.h> +-#include <getopt.h> ++#include "getopt.h" + #include <sys/ioctl.h> + #include <sys/stat.h> +-#include <sys/utsname.h> +-#include <linux/unistd.h> /* _syscall */ + #include "nls.h" + #include "common.h" + +@@ -130,23 +128,14 @@ + * + * Note: we use 512-byte sectors here, irrespective of the hardware ss. + */ +-#if !defined (__alpha__) && !defined (__ia64__) && !defined (__x86_64__) && !defined (__s390x__) +-static +-_syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo, +- loff_t *, res, uint, wh); +-#endif + + static int + sseek(char *dev, unsigned int fd, unsigned long s) { +- loff_t in, out; +- in = ((loff_t) s << 9); ++ off_t in, out; ++ in = ((off_t) s << 9); + out = 1; + +-#if !defined (__alpha__) && !defined (__ia64__) && !defined (__x86_64__) && !defined (__s390x__) +- if (_llseek (fd, in>>32, in & 0xffffffff, &out, SEEK_SET) != 0) { +-#else + if ((out = lseek(fd, in, SEEK_SET)) != in) { +-#endif + perror("llseek"); + error(_("seek error on %s - cannot seek to %lu\n"), dev, s); + return 0; +@@ -399,12 +388,13 @@ + long size; + struct geometry R; + +- if (ioctl(fd, BLKGETSIZE, &size)) { ++ if (sys_bsd_getsectors(fd, (unsigned long*) &size)) { + size = 0; + if (!silent) + printf(_("Disk %s: cannot get size\n"), dev); + } +- if (ioctl(fd, HDIO_GETGEO, &g)) { ++ g.start = 0; /* XXX ?????????? */ ++ if (sys_bsd_getgeometry(fd, &g)) { + g.heads = g.sectors = g.cylinders = g.start = 0; + if (!silent) + printf(_("Disk %s: cannot get geometry\n"), dev); +@@ -721,8 +711,8 @@ + /* tell the kernel to reread the partition tables */ + static int + reread_ioctl(int fd) { +- if(ioctl(fd, BLKRRPART)) { +- perror("BLKRRPART"); ++ if(sys_bsd_ptsync(fd)) { ++ perror("sys_bsd_ptsync"); + return -1; + } + return 0; +@@ -1428,22 +1418,6 @@ + z->partno = pno; + } + +-#define MAKE_VERSION(p,q,r) (65536*(p) + 256*(q) + (r)) +- +-static int +-linux_version_code(void) { +- struct utsname my_utsname; +- int p, q, r; +- +- if (uname(&my_utsname) == 0) { +- p = atoi(strtok(my_utsname.release, ".")); +- q = atoi(strtok(NULL, ".")); +- r = atoi(strtok(NULL, ".")); +- return MAKE_VERSION(p,q,r); +- } +- return 0; +-} +- + static int + msdos_partition(char *dev, int fd, unsigned long start, struct disk_desc *z) { + int i; +@@ -1452,7 +1426,10 @@ + struct sector *s; + struct part_desc *partitions = &(z->partitions[0]); + int pno = z->partno; +- int bsd_later = (linux_version_code() >= MAKE_VERSION(2,3,40)); ++ /* Under FreeBSD, "bsd later" is always true because BSD partitions ++ * in MBR or MBREXT partitions doesn't be listed immediately. ++ */ ++ int bsd_later = 1; + + if (!(s = get_sector(dev, fd, start))) + return 0; +@@ -1501,6 +1478,8 @@ + } + extended_partition(dev, fd, &partitions[i], z); + } ++#if 0 ++/* FreeBSD port: don't count partitions as they won't be list as slices */ + if (!bsd_later && is_bsd(partitions[i].p.sys_type)) { + if (!partitions[i].size) { + printf(_("strange..., a BSD partition of size 0?\n")); +@@ -1508,8 +1487,11 @@ + } + bsd_partition(dev, fd, &partitions[i], z); + } ++#endif + } + ++#if 0 ++/* FreeBSD port: don't count partitions as they won't be list as slices */ + if (bsd_later) { + for (i=0; i<4; i++) { + if (is_bsd(partitions[i].p.sys_type)) { +@@ -1521,6 +1503,7 @@ + } + } + } ++#endif + + return 1; + } +@@ -2413,9 +2396,11 @@ + char *activatearg = 0; + char *unhidearg = 0; + ++#if 0 + setlocale(LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); ++#endif + + if (argc < 1) + fatal(_("no command?\n")); +@@ -2668,10 +2653,10 @@ + if (fd < 0) + return; + +- if(ioctl(fd, BLKGETSIZE, &size)) { ++ if(sys_bsd_getsectors(fd, (unsigned long*) &size)) { + if(!silent) { + perror(dev); +- fatal(_("BLKGETSIZE ioctl failed for %s\n"), dev); ++ fatal(_("sys_bsd_getsectors() failed for %s\n"), dev); + } + return; + } |