Index: libdisk/pttype.c =================================================================== RCS file: /cvs/linux-2.4-xfs/cmd/xfsprogs/libdisk/pttype.c,v retrieving revision 1.5 diff -u -r1.5 pttype.c --- libdisk/pttype.c 12 Nov 2002 04:01:08 -0000 1.5 +++ libdisk/pttype.c 17 Mar 2003 07:34:38 -0000 @@ -93,6 +93,14 @@ return !csum; } +static int +mac_parttable(char *base) +{ + return (ntohs(maclabel(base)->magic) == MAC_LABEL_MAGIC || + ntohs(maclabel(base)->magic) == MAC_PARTITION_MAGIC || + ntohs(maclabel(base)->magic) == MAC_OLD_PARTITION_MAGIC); +} + char * pttype(char *device) @@ -114,6 +122,8 @@ type = "AIX"; else if (dos_parttable(buf)) type = "DOS"; + else if (mac_parttable(buf)) + type = "Mac"; } if (fd >= 0) Index: libdisk/pttype.h =================================================================== RCS file: /cvs/linux-2.4-xfs/cmd/xfsprogs/libdisk/pttype.h,v retrieving revision 1.2 diff -u -r1.2 pttype.h --- libdisk/pttype.h 12 Nov 2002 04:01:08 -0000 1.2 +++ libdisk/pttype.h 17 Mar 2003 07:34:38 -0000 @@ -39,3 +39,13 @@ #define AIX_LABEL_MAGIC 0xc9c2d4c1 #define AIX_LABEL_MAGIC_SWAPPED 0xc1d4c2c9 #define aixlabel(x) ((aix_partition *)x) + +typedef struct { + unsigned short magic; + /* ... */ +} mac_partition; + +#define MAC_LABEL_MAGIC 0x4552 +#define MAC_PARTITION_MAGIC 0x504d +#define MAC_OLD_PARTITION_MAGIC 0x5453 +#define maclabel(x) ((mac_partition *)x)