1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#ifndef DRBD_META_DATA_H
#define DRBD_META_DATA_H
#ifdef __KERNEL__
#define be_u64 u64
#define be_u32 u32
#define be_s32 s32
#define be_u16 u16
#else
#define be_u64 struct { uint64_t be; }
#define be_u32 struct { uint32_t be; }
#define be_s32 struct { int32_t be; }
#define be_u16 struct { uint16_t be; }
#endif
struct peer_dev_md_on_disk_9 {
be_u64 bitmap_uuid;
be_u64 bitmap_dagtag;
be_u32 flags;
be_s32 bitmap_index;
be_u32 reserved_u32[2];
} __packed;
struct meta_data_on_disk_9 {
be_u64 effective_size; /* last agreed size */
be_u64 current_uuid;
be_u64 reserved_u64[4]; /* to have the magic at the same position as in v07, and v08 */
be_u64 device_uuid;
be_u32 flags; /* MDF */
be_u32 magic;
be_u32 md_size_sect;
be_u32 al_offset; /* offset to this block */
be_u32 al_nr_extents; /* important for restoring the AL */
be_u32 bm_offset; /* offset to the bitmap, from here */
be_u32 bm_bytes_per_bit; /* BM_BLOCK_SIZE */
be_u32 la_peer_max_bio_size; /* last peer max_bio_size */
be_u32 bm_max_peers;
be_s32 node_id;
/* see al_tr_number_to_on_disk_sector() */
be_u32 al_stripes;
be_u32 al_stripe_size_4k;
be_u32 reserved_u32[2];
struct peer_dev_md_on_disk_9 peers[DRBD_PEERS_MAX];
be_u64 history_uuids[HISTORY_UUIDS];
char padding[0] __attribute__((aligned(4096)));
} __packed;
#undef be_u64
#undef be_u32
#undef be_s32
#undef be_u16
#endif
|