/* * Copyright (C) 2011 by Philipp Marek * * This file may be redistributed under the terms of the * GNU Lesser General Public License. */ #include #include #include #include #include #include #include #include #include "superblocks.h" struct log_header_t { uint64_t magic; uint64_t version; unsigned char uuid[16]; uint64_t flags; } __attribute__((packed)); static int probe_drbdproxy_datalog(blkid_probe pr, const struct blkid_idmag *mag __attribute__((__unused__))) { struct log_header_t *lh; lh = (struct log_header_t *) blkid_probe_get_buffer(pr, 0, sizeof(*lh)); if (!lh) return errno ? -errno : 1; blkid_probe_set_uuid(pr, lh->uuid); blkid_probe_sprintf_version(pr, "v%"PRIu64, le64_to_cpu(lh->version)); return 0; } const struct blkid_idinfo drbdproxy_datalog_idinfo = { .name = "drbdproxy_datalog", .usage = BLKID_USAGE_FILESYSTEM, .probefunc = probe_drbdproxy_datalog, .minsz = 16*1024, .magics = { { .magic = "DRBDdlh*", .len = 8, .sboff = 0, .kboff = 0 }, { NULL } } };