cpp-d1064d
[cross.git] / i686-linux-gnu-4.7 / usr / include / mtd / inftl-user.h
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 /*
3  * Parts of INFTL headers shared with userspace
4  *
5  */
6
7 #ifndef __MTD_INFTL_USER_H__
8 #define __MTD_INFTL_USER_H__
9
10 #include <linux/types.h>
11
12 #define OSAK_VERSION    0x5120
13 #define PERCENTUSED     98
14
15 #define SECTORSIZE      512
16
17 /* Block Control Information */
18
19 struct inftl_bci {
20         __u8 ECCsig[6];
21         __u8 Status;
22         __u8 Status1;
23 } __attribute__((packed));
24
25 struct inftl_unithead1 {
26         __u16 virtualUnitNo;
27         __u16 prevUnitNo;
28         __u8 ANAC;
29         __u8 NACs;
30         __u8 parityPerField;
31         __u8 discarded;
32 } __attribute__((packed));
33
34 struct inftl_unithead2 {
35         __u8 parityPerField;
36         __u8 ANAC;
37         __u16 prevUnitNo;
38         __u16 virtualUnitNo;
39         __u8 NACs;
40         __u8 discarded;
41 } __attribute__((packed));
42
43 struct inftl_unittail {
44         __u8 Reserved[4];
45         __u16 EraseMark;
46         __u16 EraseMark1;
47 } __attribute__((packed));
48
49 union inftl_uci {
50         struct inftl_unithead1 a;
51         struct inftl_unithead2 b;
52         struct inftl_unittail c;
53 };
54
55 struct inftl_oob {
56         struct inftl_bci b;
57         union inftl_uci u;
58 };
59
60
61 /* INFTL Media Header */
62
63 struct INFTLPartition {
64         __u32 virtualUnits;
65         __u32 firstUnit;
66         __u32 lastUnit;
67         __u32 flags;
68         __u32 spareUnits;
69         __u32 Reserved0;
70         __u32 Reserved1;
71 } __attribute__((packed));
72
73 struct INFTLMediaHeader {
74         char bootRecordID[8];
75         __u32 NoOfBootImageBlocks;
76         __u32 NoOfBinaryPartitions;
77         __u32 NoOfBDTLPartitions;
78         __u32 BlockMultiplierBits;
79         __u32 FormatFlags;
80         __u32 OsakVersion;
81         __u32 PercentUsed;
82         struct INFTLPartition Partitions[4];
83 } __attribute__((packed));
84
85 /* Partition flag types */
86 #define INFTL_BINARY    0x20000000
87 #define INFTL_BDTL      0x40000000
88 #define INFTL_LAST      0x80000000
89
90 #endif /* __MTD_INFTL_USER_H__ */
91
92