/src/util-linux/libblkid/src/superblocks/drbdproxy_datalog.c
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright (C) 2011 by Philipp Marek <philipp.marek@linbit.com> |
3 | | * |
4 | | * This file may be redistributed under the terms of the |
5 | | * GNU Lesser General Public License. |
6 | | */ |
7 | | #include <stdio.h> |
8 | | #include <stdlib.h> |
9 | | #include <unistd.h> |
10 | | #include <string.h> |
11 | | #include <errno.h> |
12 | | #include <ctype.h> |
13 | | #include <inttypes.h> |
14 | | #include <stddef.h> |
15 | | |
16 | | #include "superblocks.h" |
17 | | |
18 | | |
19 | | struct log_header_t { |
20 | | uint64_t magic; |
21 | | uint64_t version; |
22 | | |
23 | | unsigned char uuid[16]; |
24 | | |
25 | | uint64_t flags; |
26 | | } __attribute__((packed)); |
27 | | |
28 | | |
29 | | static int probe_drbdproxy_datalog(blkid_probe pr, |
30 | | const struct blkid_idmag *mag __attribute__((__unused__))) |
31 | 15 | { |
32 | 15 | struct log_header_t *lh; |
33 | | |
34 | 15 | lh = (struct log_header_t *) blkid_probe_get_buffer(pr, 0, sizeof(*lh)); |
35 | 15 | if (!lh) |
36 | 0 | return errno ? -errno : 1; |
37 | | |
38 | 15 | blkid_probe_set_uuid(pr, lh->uuid); |
39 | 15 | blkid_probe_sprintf_version(pr, "v%"PRIu64, le64_to_cpu(lh->version)); |
40 | | |
41 | 15 | return 0; |
42 | 15 | } |
43 | | |
44 | | const struct blkid_idinfo drbdproxy_datalog_idinfo = |
45 | | { |
46 | | .name = "drbdproxy_datalog", |
47 | | .usage = BLKID_USAGE_FILESYSTEM, |
48 | | .probefunc = probe_drbdproxy_datalog, |
49 | | .minsz = 16*1024, |
50 | | .magics = |
51 | | { |
52 | | { .magic = "DRBDdlh*", .len = 8, .sboff = 0, .kboff = 0 }, |
53 | | { NULL } |
54 | | } |
55 | | }; |