diff -Nur mac-fdisk-0.1.orig/bitfield.c mac-fdisk-0.1/bitfield.c --- mac-fdisk-0.1.orig/bitfield.c 1997-01-10 07:30:51.000000000 +0900 +++ mac-fdisk-0.1/bitfield.c 2006-09-02 22:22:06.301788000 +0900 @@ -67,13 +67,12 @@ // // Routines // -unsigned long -bitfield_set(unsigned long *bf, int base, int length, unsigned long value) +unsigned int +bitfield_set(unsigned int *bf, int base, int length, unsigned int value) { - unsigned long t; - unsigned long m; + unsigned int t; + unsigned int m; int s; - int i; // compute shift & mask, coerce value to correct number of bits, // zap the old bits and stuff the new value @@ -86,12 +85,11 @@ } -unsigned long -bitfield_get(unsigned long bf, int base, int length) +unsigned int +bitfield_get(unsigned int bf, int base, int length) { - unsigned long m; + unsigned int m; int s; - int i; // compute shift & mask // return the correct number of bits (shifted to low end) diff -Nur mac-fdisk-0.1.orig/bitfield.h mac-fdisk-0.1/bitfield.h --- mac-fdisk-0.1.orig/bitfield.h 1996-12-18 09:44:16.000000000 +0900 +++ mac-fdisk-0.1/bitfield.h 2006-09-02 22:22:06.301788000 +0900 @@ -63,5 +63,5 @@ // // Forward declarations // -unsigned long bitfield_set(unsigned long *bf, int base, int length, unsigned long value); -unsigned long bitfield_get(unsigned long bf, int base, int length); +unsigned int bitfield_set(unsigned int *bf, int base, int length, unsigned int value); +unsigned int bitfield_get(unsigned int bf, int base, int length); diff -Nur mac-fdisk-0.1.orig/dpme.h mac-fdisk-0.1/dpme.h --- mac-fdisk-0.1.orig/dpme.h 2006-09-02 22:18:56.014216000 +0900 +++ mac-fdisk-0.1/dpme.h 2006-09-02 22:22:06.305788000 +0900 @@ -61,7 +61,7 @@ // typedef unsigned char u8; typedef unsigned short u16; -typedef unsigned long u32; +typedef unsigned int u32; // Physical block zero of the disk has this format @@ -113,10 +113,10 @@ #endif u32 dpme_boot_block ; u32 dpme_boot_bytes ; - u8 *dpme_load_addr ; - u8 *dpme_load_addr_2 ; - u8 *dpme_goto_addr ; - u8 *dpme_goto_addr_2 ; + u32 dpme_load_addr ; + u32 dpme_load_addr_2 ; + u32 dpme_goto_addr ; + u32 dpme_goto_addr_2 ; u32 dpme_checksum ; char dpme_process_id[16] ; u32 dpme_boot_args[32] ; diff -Nur mac-fdisk-0.1.orig/dump.c mac-fdisk-0.1/dump.c --- mac-fdisk-0.1.orig/dump.c 2006-09-02 22:18:56.138216000 +0900 +++ mac-fdisk-0.1/dump.c 2006-09-02 22:22:06.305788000 +0900 @@ -61,16 +61,16 @@ // Global Constants // NAMES plist[] = { - "Drvr", "Apple_Driver", - "Dr43", "Apple_Driver43", - "Free", "Apple_Free", - " HFS", "Apple_HFS", - " MFS", "Apple_MFS", - "PDOS", "Apple_PRODOS", - "junk", "Apple_Scratch", - "unix", "Apple_UNIX_SVR2", - " map", "Apple_partition_map", - 0, 0 + {"Drvr"}, {"Apple_Driver"}, + {"Dr43"}, {"Apple_Driver43"}, + {"Free"}, {"Apple_Free"}, + {" HFS"}, {"Apple_HFS"}, + {" MFS"}, {"Apple_MFS"}, + {"PDOS"}, {"Apple_PRODOS"}, + {"junk"}, {"Apple_Scratch"}, + {"unix"}, {"Apple_UNIX_SVR2"}, + {" map"}, {"Apple_partition_map"}, + {0}, {0} }; const char * kStringEmpty = ""; @@ -162,10 +162,10 @@ } #ifdef __mc68000__ printf("%*s type name " - "%*s %-*s ( size ) system\n", strlen(map->name)+1, "#", j, "length", j, "base"); + "%*s %-*s ( size ) system\n", (int)strlen(map->name)+1, "#", j, "length", j, "base"); #else printf("%*s type name " - "%*s %-*s ( size ) system\n", strlen(map->name)+1, "#", j, "length", j, "base"); + "%*s %-*s ( size ) system\n", (int)strlen(map->name)+1, "#", j, "length", j, "base"); #endif /* Grok devfs names. (courtesy Colin Walters)*/ @@ -199,7 +199,6 @@ partition_map_header *map; int j; DPME *p; - BZB *bp; char *s; #ifdef __mc68000__ int aflag = 1; @@ -222,13 +221,13 @@ } } #ifdef __mc68000__ - printf("%s%-2d %.4s %-12.12s ", dev, entry->disk_address, s, p->dpme_name); + printf("%s%-2d %.4s %-12.12s ", dev, (int)entry->disk_address, s, p->dpme_name); #else - printf("%s%-4d %.4s %-18.32s ", dev, entry->disk_address, s, p->dpme_name); + printf("%s%-4d %.4s %-18.32s ", dev, (int)entry->disk_address, s, p->dpme_name); #endif } else { printf("%s%-4d %20.32s %-18.32s ", dev, - entry->disk_address, p->dpme_type, p->dpme_name); + (int)entry->disk_address, p->dpme_type, p->dpme_name); } if (pflag) { @@ -312,7 +311,6 @@ int i; int fd; DPME * data; - long t; data = (DPME *) malloc(PBLOCK_SIZE); if (data == NULL) { @@ -380,7 +378,7 @@ printf("Header:\n"); printf("fd=%d (%s)\n", map->fd, (map->regular_file)?"file":"device"); printf("map %d blocks out of %d, media %u blocks\n", - map->blocks_in_map, map->maximum_in_map, map->media_size); + map->blocks_in_map, map->maximum_in_map, (unsigned int)map->media_size); printf("Map is%s writeable", (map->writeable)?kStringEmpty:kStringNot); printf(", but%s changed\n", (map->changed)?kStringEmpty:kStringNot); printf("\n"); @@ -424,7 +422,7 @@ for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) { p = entry->data; printf("%2d: %20.32s ", - entry->disk_address, p->dpme_type); + (int)entry->disk_address, p->dpme_type); printf("%7u @ %-7u ", p->dpme_pblocks, p->dpme_pblock_start); printf("%c%c%c%c%c%c%c%c%c%c ", (dpme_valid_get(p))?'V':'v', @@ -447,7 +445,7 @@ "goto_address checksum processor\n"); for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) { p = entry->data; - printf("%2d: ", entry->disk_address); + printf("%2d: ", (int)entry->disk_address); printf("%7u ", p->dpme_boot_block); printf("%7u ", p->dpme_boot_bytes); printf("%8x ", p->dpme_load_addr); @@ -464,7 +462,7 @@ */ for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) { p = entry->data; - printf("%2d: ", entry->disk_address); + printf("%2d: ", (int)entry->disk_address); bp = (BZB *) (p->dpme_bzb); j = -1; diff -Nur mac-fdisk-0.1.orig/errors.c mac-fdisk-0.1/errors.c --- mac-fdisk-0.1.orig/errors.c 2006-09-02 22:18:56.138216000 +0900 +++ mac-fdisk-0.1/errors.c 2006-09-02 22:22:06.305788000 +0900 @@ -30,6 +30,7 @@ #include #include +#include #include "errors.h" #include "pdisk.h" @@ -113,7 +114,7 @@ va_end(ap); #ifdef __linux__ - if (value > 0) { + if (value > 0 && value < errno) { fprintf(stderr, " (%s)\n", strerror(value)); } else { fprintf(stderr, "\n"); @@ -142,7 +143,7 @@ va_end(ap); #ifdef __linux__ - if (value > 0) { + if (value > 0 && value < errno) { fprintf(stderr, " (%s)\n", strerror(value)); } else { fprintf(stderr, "\n"); diff -Nur mac-fdisk-0.1.orig/fdisk.c mac-fdisk-0.1/fdisk.c --- mac-fdisk-0.1.orig/fdisk.c 2006-09-02 22:18:56.142216000 +0900 +++ mac-fdisk-0.1/fdisk.c 2006-09-02 22:22:06.305788000 +0900 @@ -71,12 +71,65 @@ #include -typedef unsigned short kdev_t; /* BAD hack; kdev_t is not exported */ - #include "kernel-defs.h" #include "fdisk.h" +/* ----------- */ +#define _PPC64_TYPES_H +#define BITS_PER_LONG 64 + +typedef __signed__ char __s8; +typedef signed char s8; +typedef unsigned char u8; +typedef unsigned char __u8; + +typedef __signed__ short __s16; +typedef signed short s16; +/*typedef unsigned short __u16;*/ +typedef unsigned short u16; + +typedef __signed__ int __s32; +typedef signed int s32; +/*typedef unsigned int __u32;*/ +typedef unsigned int u32; + +typedef __signed__ long __s64; +typedef signed long s64; +typedef unsigned long __u64; +typedef unsigned long u64; + +typedef struct { + __u32 u[4]; +} __attribute((aligned(16))) __vector128; + +typedef __vector128 vector128; + +typedef u32 dma_addr_t; +typedef u64 dma64_addr_t; + +typedef struct { + unsigned long entry; + unsigned long toc; + unsigned long env; +} func_descr_t; + +typedef unsigned int umode_t; + +#define BITS_TO_LONGS(bits) \ + (((bits)+BITS_PER_LONG-1)/BITS_PER_LONG) +#define DECLARE_BITMAP(name,bits) \ + unsigned long name[BITS_TO_LONGS(bits)] +#define CLEAR_BITMAP(name,bits) \ + memset(name, 0, BITS_TO_LONGS(bits)*sizeof(unsigned long)) + +/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x030n/0x031n */ +#define HDIO_GETGEO 0x0301 /* get device geometry */ + +#define BLKRRPART _IO(0x12,95) /* re-read partition table */ + +/* ---------- */ + #define hex_val(c) ({ \ char _c = (c); \ isdigit(_c) ? _c - '0' : \ @@ -1416,7 +1469,7 @@ } } -void main(int argc, char **argv) +int main(int argc, char **argv) { if (argc > 3) fatal(usage); diff -Nur mac-fdisk-0.1.orig/fdisklabel.c mac-fdisk-0.1/fdisklabel.c --- mac-fdisk-0.1.orig/fdisklabel.c 2006-09-02 22:18:56.142216000 +0900 +++ mac-fdisk-0.1/fdisklabel.c 2006-09-02 22:22:06.309788000 +0900 @@ -35,6 +35,7 @@ SUCH DAMAGE. */ +#include #include #include #include @@ -47,6 +48,8 @@ #include #include +#include + #include "kernel-defs.h" #include "fdisk.h" @@ -263,8 +266,8 @@ fprintf(f, "type: %s\n", bsd_dktypenames[lp->d_type]); else fprintf(f, "type: %d\n", lp->d_type); - fprintf(f, "disk: %.*s\n", sizeof(lp->d_typename), lp->d_typename); - fprintf(f, "label: %.*s\n", sizeof(lp->d_packname), lp->d_packname); + fprintf(f, "disk: %.*s\n", (int)sizeof(lp->d_typename), lp->d_typename); + fprintf(f, "label: %.*s\n", (int)sizeof(lp->d_packname), lp->d_packname); fprintf(f, "flags:"); if (lp->d_flags & BSD_D_REMOVABLE) fprintf(f, " removable"); @@ -273,17 +276,17 @@ if (lp->d_flags & BSD_D_BADSECT) fprintf(f, " badsect"); fprintf(f, "\n"); - fprintf(f, "bytes/sector: %d\n", lp->d_secsize); - fprintf(f, "sectors/track: %d\n", lp->d_nsectors); - fprintf(f, "tracks/cylinder: %d\n", lp->d_ntracks); - fprintf(f, "sectors/cylinder: %d\n", lp->d_secpercyl); - fprintf(f, "cylinders: %d\n", lp->d_ncylinders); + fprintf(f, "bytes/sector: %d\n", (int)lp->d_secsize); + fprintf(f, "sectors/track: %d\n", (int)lp->d_nsectors); + fprintf(f, "tracks/cylinder: %d\n", (int)lp->d_ntracks); + fprintf(f, "sectors/cylinder: %d\n", (int)lp->d_secpercyl); + fprintf(f, "cylinders: %d\n", (int)lp->d_ncylinders); fprintf(f, "rpm: %d\n", lp->d_rpm); fprintf(f, "interleave: %d\n", lp->d_interleave); fprintf(f, "trackskew: %d\n", lp->d_trackskew); fprintf(f, "cylinderskew: %d\n", lp->d_cylskew); - fprintf(f, "headswitch: %d\t\t# milliseconds\n", lp->d_headswitch); - fprintf(f, "track-to-track seek: %d\t# milliseconds\n", lp->d_trkseek); + fprintf(f, "headswitch: %d\t\t# milliseconds\n", (int)lp->d_headswitch); + fprintf(f, "track-to-track seek: %d\t# milliseconds\n", (int)lp->d_trkseek); fprintf(f, "drivedata: "); for (i = NDDATA - 1; i >= 0; i--) if (lp->d_drivedata[i]) @@ -291,7 +294,7 @@ if (i < 0) i = 0; for (j = 0; j <= i; j++) - fprintf(f, "%d ", lp->d_drivedata[j]); + fprintf(f, "%d ", (int)lp->d_drivedata[j]); } fprintf (f, "\n%d partitions:\n", lp->d_npartitions); fprintf (f, "# size offset fstype [fsize bsize cpg]\n"); @@ -299,7 +302,7 @@ for (i = 0; i < lp->d_npartitions; i++, pp++) { if (pp->p_size) { fprintf(f, " %c: %8d %8d ", 'a' + i, - pp->p_size, pp->p_offset); + (int)pp->p_size, (int)pp->p_offset); if ((unsigned) pp->p_fstype < BSD_FSMAXTYPES) fprintf(f, "%8.8s", bsd_fstypes[pp->p_fstype].name); else @@ -308,12 +311,12 @@ { case BSD_FS_UNUSED: fprintf(f, " %5d %5d %5.5s ", - pp->p_fsize, pp->p_fsize * pp->p_frag, ""); + (int)pp->p_fsize, (int)pp->p_fsize * pp->p_frag, ""); break; case BSD_FS_BSDFFS: fprintf(f, " %5d %5d %5d ", - pp->p_fsize, pp->p_fsize * pp->p_frag, + (int)pp->p_fsize, (int)pp->p_fsize * pp->p_frag, pp->p_cpg); break; @@ -323,21 +326,21 @@ } fprintf(f, "\t# (Cyl. %4d", #if 0 - pp->p_offset / lp->d_secpercyl); /* differs from Linux fdisk */ + (int)(pp->p_offset / lp->d_secpercyl)); /* differs from Linux fdisk */ #else - pp->p_offset / lp->d_secpercyl + 1); + (int)(pp->p_offset / lp->d_secpercyl + 1)); #endif if (pp->p_offset % lp->d_secpercyl) putc('*', f); else putc(' ', f); fprintf(f, "- %d", - (pp->p_offset + + (int)((pp->p_offset + pp->p_size + lp->d_secpercyl - 1) / #if 0 - lp->d_secpercyl - 1); /* differs from Linux fdisk */ + lp->d_secpercyl - 1)); /* differs from Linux fdisk */ #else - lp->d_secpercyl); + lp->d_secpercyl)); #endif if (pp->p_size % lp->d_secpercyl) putc('*', f); diff -Nur mac-fdisk-0.1.orig/io.c mac-fdisk-0.1/io.c --- mac-fdisk-0.1.orig/io.c 2006-09-02 22:18:56.142216000 +0900 +++ mac-fdisk-0.1/io.c 2006-09-02 22:22:06.309788000 +0900 @@ -33,8 +33,10 @@ #else #ifdef __GLIBC__ #include +#include #endif #endif +#include #include #include #include @@ -466,7 +468,7 @@ long t; if (rflag) { - printf("Can't write block %u to file", num); + printf("Can't write block %u to file", (unsigned int)num); return 0; } #ifndef __linux__ diff -Nur mac-fdisk-0.1.orig/partition_map.c mac-fdisk-0.1/partition_map.c --- mac-fdisk-0.1.orig/partition_map.c 2006-09-02 22:18:56.142216000 +0900 +++ mac-fdisk-0.1/partition_map.c 2006-09-02 22:22:06.309788000 +0900 @@ -105,7 +105,6 @@ int fd; partition_map_header * map; int writeable; - unsigned long length; #ifdef __linux__ struct stat info; #endif @@ -402,9 +401,7 @@ { int fd; partition_map_header * map; - unsigned long length; DPME *data; - int ok; unsigned long number; #ifdef __linux__ struct stat info; @@ -433,13 +430,13 @@ map->maximum_in_map = -1; number = compute_device_size(fd); - printf("size of 'device' is %u blocks: ", number); + printf("size of 'device' is %u blocks: ", (unsigned int)number); flush_to_newline(0); get_number_argument("what should be the size? ", (long *)&number, number); if (number < 4) { number = 4; } - printf("new size of 'device' is %u blocks\n", number); + printf("new size of 'device' is %u blocks\n", (unsigned int)number); map->media_size = number; #ifdef __linux__ diff -Nur mac-fdisk-0.1.orig/pdisk.c mac-fdisk-0.1/pdisk.c --- mac-fdisk-0.1.orig/pdisk.c 2006-09-02 22:18:56.142216000 +0900 +++ mac-fdisk-0.1/pdisk.c 2006-09-02 22:22:06.309788000 +0900 @@ -437,7 +437,6 @@ { long base; long length; - long mult; char *name; char *type_name; @@ -599,7 +598,6 @@ void do_reorder(partition_map_header *map) { - partition_map * cur; long old_index; long index;