diff options
Diffstat (limited to 'libblkid/drbd.c')
-rw-r--r-- | libblkid/drbd.c | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/libblkid/drbd.c b/libblkid/drbd.c deleted file mode 100644 index 43e544e89..000000000 --- a/libblkid/drbd.c +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (C) 2009 by Bastian Friedrich <bastian.friedrich@collax.com> - * - * This file may be redistributed under the terms of the - * GNU Lesser General Public License. - * - * defines, structs taken from drbd source; file names represent drbd source - * files. - */ -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <string.h> -#include <errno.h> -#include <ctype.h> -#include <inttypes.h> -#include <stddef.h> - -#include "superblocks.h" - -/* - * drbd/linux/drbd.h - */ -#define DRBD_MAGIC 0x83740267 - -/* - * user/drbdmeta.c - * We only support v08 for now - */ -#define DRBD_MD_MAGIC_08 (DRBD_MAGIC+4) -#define DRBD_MD_MAGIC_84_UNCLEAN (DRBD_MAGIC+5) - -/* - * drbd/linux/drbd.h - */ -enum drbd_uuid_index { - UI_CURRENT, - UI_BITMAP, - UI_HISTORY_START, - UI_HISTORY_END, - UI_SIZE, /* nl-packet: number of dirty bits */ - UI_FLAGS, /* nl-packet: flags */ - UI_EXTENDED_SIZE /* Everything. */ -}; - -/* - * user/drbdmeta.c - * Minor modifications wrt. types - */ -struct md_on_disk_08 { - uint64_t la_sect; /* last agreed size. */ - uint64_t uuid[UI_SIZE]; /* UUIDs */ - uint64_t device_uuid; - uint64_t reserved_u64_1; - uint32_t flags; - uint32_t magic; - uint32_t md_size_sect; - int32_t al_offset; /* signed sector offset to this block */ - uint32_t al_nr_extents; /* important for restoring the AL */ - int32_t bm_offset; /* signed sector offset to the bitmap, from here */ - uint32_t bm_bytes_per_bit; - uint32_t reserved_u32[4]; - - char reserved[8 * 512 - (8*(UI_SIZE+3)+4*11)]; -}; - - -static int probe_drbd(blkid_probe pr, - const struct blkid_idmag *mag __attribute__((__unused__))) -{ - struct md_on_disk_08 *md; - off_t off; - - off = pr->size - sizeof(*md); - - /* Small devices cannot be drbd (?) */ - if (pr->size < 0x10000) - return -1; - - md = (struct md_on_disk_08 *) - blkid_probe_get_buffer(pr, - off, - sizeof(struct md_on_disk_08)); - if (!md) - return -1; - - if (be32_to_cpu(md->magic) != DRBD_MD_MAGIC_08 && - be32_to_cpu(md->magic) != DRBD_MD_MAGIC_84_UNCLEAN) - return -1; - - /* - * DRBD does not have "real" uuids; the following resembles DRBD's - * notion of uuids (64 bit, see struct above) - */ - blkid_probe_sprintf_uuid(pr, - (unsigned char *) &md->device_uuid, sizeof(md->device_uuid), - "%" PRIx64, be64_to_cpu(md->device_uuid)); - - blkid_probe_set_version(pr, "v08"); - - if (blkid_probe_set_magic(pr, - off + offsetof(struct md_on_disk_08, magic), - sizeof(md->magic), - (unsigned char *) &md->magic)) - return -1; - - return 0; -} - -const struct blkid_idinfo drbd_idinfo = -{ - .name = "drbd", - .usage = BLKID_USAGE_RAID, - .probefunc = probe_drbd, - .magics = BLKID_NONE_MAGIC -}; - |