libnvdimm: infrastructure for btt devices
[linux-2.6-block.git] / drivers / nvdimm / btt.h
CommitLineData
8c2f7e86
DW
1/*
2 * Block Translation Table library
3 * Copyright (c) 2014-2015, Intel Corporation.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 */
14
15#ifndef _LINUX_BTT_H
16#define _LINUX_BTT_H
17
18#include <linux/types.h>
19
20#define BTT_SIG_LEN 16
21#define BTT_SIG "BTT_ARENA_INFO\0"
22
23struct btt_sb {
24 u8 signature[BTT_SIG_LEN];
25 u8 uuid[16];
26 u8 parent_uuid[16];
27 __le32 flags;
28 __le16 version_major;
29 __le16 version_minor;
30 __le32 external_lbasize;
31 __le32 external_nlba;
32 __le32 internal_lbasize;
33 __le32 internal_nlba;
34 __le32 nfree;
35 __le32 infosize;
36 __le64 nextoff;
37 __le64 dataoff;
38 __le64 mapoff;
39 __le64 logoff;
40 __le64 info2off;
41 u8 padding[3968];
42 __le64 checksum;
43};
44
45#endif