From 084f092a62f8767998d8b00222eb14f3ec94e8b6 Mon Sep 17 00:00:00 2001 From: Harry Mallon Date: Mon, 25 Jun 2018 16:19:18 +0100 Subject: libblkid: Add very basic APFS recognition --- libblkid/src/Makemodule.am | 1 + libblkid/src/superblocks/apfs.c | 19 +++++++++++++++++++ libblkid/src/superblocks/superblocks.c | 3 ++- libblkid/src/superblocks/superblocks.h | 1 + 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 libblkid/src/superblocks/apfs.c (limited to 'libblkid') diff --git a/libblkid/src/Makemodule.am b/libblkid/src/Makemodule.am index ea0230702..4109561c4 100644 --- a/libblkid/src/Makemodule.am +++ b/libblkid/src/Makemodule.am @@ -44,6 +44,7 @@ libblkid_la_SOURCES = \ libblkid/src/partitions/unixware.c \ \ libblkid/src/superblocks/adaptec_raid.c \ + libblkid/src/superblocks/apfs.c \ libblkid/src/superblocks/bcache.c \ libblkid/src/superblocks/befs.c \ libblkid/src/superblocks/bfs.c \ diff --git a/libblkid/src/superblocks/apfs.c b/libblkid/src/superblocks/apfs.c new file mode 100644 index 000000000..6303d9b17 --- /dev/null +++ b/libblkid/src/superblocks/apfs.c @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2018 Harry Mallon + * + * This file may be redistributed under the terms of the + * GNU Lesser General Public License. + */ + +#include "superblocks.h" + +const struct blkid_idinfo apfs_idinfo = +{ + .name = "apfs", + .usage = BLKID_USAGE_FILESYSTEM, + .magics = + { + { .magic = "NXSB", .len = 4, .sboff = 32 }, + { NULL } + } +}; diff --git a/libblkid/src/superblocks/superblocks.c b/libblkid/src/superblocks/superblocks.c index 6dfd2be64..e95c1e626 100644 --- a/libblkid/src/superblocks/superblocks.c +++ b/libblkid/src/superblocks/superblocks.c @@ -163,7 +163,8 @@ static const struct blkid_idinfo *idinfos[] = &nilfs2_idinfo, &exfat_idinfo, &f2fs_idinfo, - &mpool_idinfo + &mpool_idinfo, + &apfs_idinfo }; /* diff --git a/libblkid/src/superblocks/superblocks.h b/libblkid/src/superblocks/superblocks.h index d677f85bc..85858b9fc 100644 --- a/libblkid/src/superblocks/superblocks.h +++ b/libblkid/src/superblocks/superblocks.h @@ -82,6 +82,7 @@ extern const struct blkid_idinfo mpool_idinfo; extern const struct blkid_idinfo vdo_idinfo; extern const struct blkid_idinfo stratis_idinfo; extern const struct blkid_idinfo bitlocker_idinfo; +extern const struct blkid_idinfo apfs_idinfo; /* * superblock functions -- cgit v1.2.3-55-g7522