From 681ff570f02aa0be17de63daabd8efec931afb61 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 25 Nov 2008 13:59:26 +0100 Subject: [PATCH] blkid: add minix Signed-off-by: Karel Zak --- libs/blkid/src/probe.c | 2 +- libs/blkid/src/probers/Makefile.am | 1 + libs/blkid/src/probers/minix.c | 59 ++++++++++++++++++++++++++++++ libs/blkid/src/probers/probers.h | 1 + 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 libs/blkid/src/probers/minix.c diff --git a/libs/blkid/src/probe.c b/libs/blkid/src/probe.c index f1fb76ab..fb1615b7 100644 --- a/libs/blkid/src/probe.c +++ b/libs/blkid/src/probe.c @@ -77,7 +77,7 @@ static const struct blkid_idinfo *idinfos[] = &ntfs_idinfo, &cramfs_idinfo, &romfs_idinfo, - /* TODO: minix */ + &minix_idinfo, &gfs_idinfo, &gfs2_idinfo, &ocfs_idinfo, diff --git a/libs/blkid/src/probers/Makefile.am b/libs/blkid/src/probers/Makefile.am index fe13031b..a09608b9 100644 --- a/libs/blkid/src/probers/Makefile.am +++ b/libs/blkid/src/probers/Makefile.am @@ -32,6 +32,7 @@ libprobers_a_SOURCES = probers.h \ luks.c \ highpoint_raid.c \ vxfs.c \ + minix.c \ lvm.c all-local: $(lib_LIBRARIES) diff --git a/libs/blkid/src/probers/minix.c b/libs/blkid/src/probers/minix.c new file mode 100644 index 00000000..09d45437 --- /dev/null +++ b/libs/blkid/src/probers/minix.c @@ -0,0 +1,59 @@ +/* + * Copyright (C) 1999 by Andries Brouwer + * Copyright (C) 1999, 2000, 2003 by Theodore Ts'o + * Copyright (C) 2001 by Andreas Dilger + * Copyright (C) 2004 Kay Sievers + * Copyright (C) 2008 Karel Zak + * + * This file is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "blkidP.h" + +static int probe_minix(blkid_probe pr, const struct blkid_idmag *mag) +{ + /* for more details see magic strings below */ + switch(mag->magic[1]) { + case '\023': + blkid_probe_set_version(pr, "1"); + break; + case '\044': + blkid_probe_set_version(pr, "2"); + break; + case '\115': + blkid_probe_set_version(pr, "3"); + break; + } + return 0; +} + + +const struct blkid_idinfo minix_idinfo = +{ + .name = "minix", + .usage = BLKID_USAGE_FILESYSTEM, + .probefunc = probe_minix, + .magics = + { + /* version 1 */ + { .magic = "\177\023", .len = 2, .kboff = 1, .sboff = 0x10 }, + { .magic = "\217\023", .len = 2, .kboff = 1, .sboff = 0x10 }, + + /* version 2 */ + { .magic = "\150\044", .len = 2, .kboff = 1, .sboff = 0x10 }, + { .magic = "\170\044", .len = 2, .kboff = 1, .sboff = 0x10 }, + + /* version 3 */ + { .magic = "\132\115", .len = 2, .kboff = 1, .sboff = 0x18 }, + { NULL } + } +}; + diff --git a/libs/blkid/src/probers/probers.h b/libs/blkid/src/probers/probers.h index 39460708..36271275 100644 --- a/libs/blkid/src/probers/probers.h +++ b/libs/blkid/src/probers/probers.h @@ -49,6 +49,7 @@ extern const struct blkid_idinfo ntfs_idinfo; extern const struct blkid_idinfo iso9660_idinfo; extern const struct blkid_idinfo udf_idinfo; extern const struct blkid_idinfo vxfs_idinfo; +extern const struct blkid_idinfo minix_idinfo; extern const struct blkid_idinfo vfat_idinfo; extern const struct blkid_idinfo lvm2_idinfo; extern const struct blkid_idinfo lvm1_idinfo; -- 2.39.5