]> err.no Git - util-linux/commitdiff
partx: integrate support for mac and sun partitions, based on kpartx.
authorDavidlohr Bueso <dave@gnu.org>
Thu, 7 Oct 2010 14:48:28 +0000 (10:48 -0400)
committerKarel Zak <kzak@redhat.com>
Fri, 8 Oct 2010 08:56:28 +0000 (10:56 +0200)
[kzak@redhat.com: - remove unnecessary members from struct slice,
                  - fix gcc warnings]

Signed-off-by: Davidlohr Bueso <dave@gnu.org>
Signed-off-by: Karel Zak <kzak@redhat.com>
partx/Makefile.am
partx/mac.c
partx/partx.c
partx/partx.h
partx/sun.c

index 36163aa9a85a2818d0996eb8ea9371aa13854254..a26963ed8ff6c509f00638965d433b71cd2021f3 100644 (file)
@@ -3,7 +3,7 @@ include $(top_srcdir)/config/include-Makefile.am
 if BUILD_PARTX
 
 usrsbin_exec_PROGRAMS = addpart delpart partx
-partx_SOURCES = bsd.c dos.c partx.c solaris.c unixware.c gpt.c crc32.c \
+partx_SOURCES = bsd.c dos.c partx.c solaris.c unixware.c sun.c mac.c gpt.c crc32.c \
                efi.h gpt.h crc32.h partx.h dos.h $(top_srcdir)/lib/blkdev.c
 
 if LINUX
index ed4ed9b925bec8ab1314ee3cca5a65200512acaa..a5677f01c1ad35ac811c31ae827e2bbbee537441 100644 (file)
@@ -36,7 +36,7 @@ read_mac_pt(int fd, struct slice all, struct slice *sp, int ns) {
        struct mac_driver_desc *md;
         struct mac_partition *part;
        unsigned secsize;
-       char *data;
+       unsigned char *data;
        int blk, blocks_in_map;
         int n = 0;
 
index 14d2609f0b0f0509d3b156bc142b11d8bbde86be..aa5a2ad8fd2c27f173e2af7700ba814cf0cccb96 100644 (file)
@@ -83,6 +83,8 @@ initpts(void)
        addpts("bsd", read_bsd_pt);
        addpts("solaris", read_solaris_pt);
        addpts("unixware", read_unixware_pt);
+       addpts("sun", read_sun_pt);
+       addpts("mac", read_mac_pt);
 }
 
 static char short_opts[] = "ladgvn:t:";
index d98d77a4cc822d2a14bd407f30b58e204fe179a6..8702f2593641cdf62c0c475536d89d2e969f3b98 100644 (file)
@@ -20,6 +20,7 @@ struct slice {
 typedef int (ptreader)(int fd, struct slice all, struct slice *sp, int ns);
 
 extern ptreader read_dos_pt, read_bsd_pt, read_solaris_pt, read_unixware_pt, read_gpt_pt;
+extern ptreader read_sun_pt, read_mac_pt;
 
 unsigned char *getblock(int fd, unsigned int secnr);
 
index c8143686bf5b1fa5757e69e53865f858715864c0..30cbd9fb8c6d5e1281fafc9fbb6b946fad5444de 100644 (file)
@@ -68,7 +68,7 @@ read_sun_pt(int fd, struct slice all, struct slice *sp, int ns) {
        struct sun_raw_part *s;
        unsigned int offset = all.start, end;
        int i, j, n;
-       char *bp;
+       unsigned char *bp;
 
        bp = getblock(fd, offset);
        if (bp == NULL)
@@ -123,10 +123,6 @@ read_sun_pt(int fd, struct slice all, struct slice *sp, int ns) {
                                                "sun_disklabel: slice %d overlaps with %d\n", i , j);
                                        sp[i].size = 0;
                                }
-                       } else {
-                               if (end <= sp[j].start + sp[j].size) {
-                                       sp[i].container = j + 1;
-                               }
                        }
                }
        }