2
* Copyright (C) 2008 Karel Zak <kzak@redhat.com>
4
* Inspired by libvolume_id by
5
* Kay Sievers <kay.sievers@vrfy.org>
7
* This file may be redistributed under the terms of the
8
* GNU Lesser General Public License.
18
struct hpt45x_metadata {
22
#define HPT45X_MAGIC_OK 0x5a7816f3
23
#define HPT45X_MAGIC_BAD 0x5a7816fd
25
static int probe_highpoint45x(blkid_probe pr, const struct blkid_idmag *mag)
27
struct hpt45x_metadata *hpt;
31
if (pr->size < 0x10000)
34
off = ((pr->size / 0x200) - 11) * 0x200;
35
hpt = (struct hpt45x_metadata *)
36
blkid_probe_get_buffer(pr,
38
sizeof(struct hpt45x_metadata));
41
magic = le32_to_cpu(hpt->magic);
42
if (magic != HPT45X_MAGIC_OK && magic != HPT45X_MAGIC_BAD)
47
const struct blkid_idinfo highpoint45x_idinfo = {
48
.name = "highpoint_raid_member",
49
.usage = BLKID_USAGE_RAID,
50
.probefunc = probe_highpoint45x,
51
.magics = BLKID_NONE_MAGIC
54
const struct blkid_idinfo highpoint37x_idinfo = {
55
.name = "highpoint_raid_member",
56
.usage = BLKID_USAGE_RAID,
58
{ .magic = "\xf0\x16\x78\x5a", .len = 4, .kboff = 4 },
59
{ .magic = "\xfd\x16\x78\x5a", .len = 4, .kboff = 4 },