1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #ifndef __MTD_NFTL_USER_H__
22 #define __MTD_NFTL_USER_H__
23
24 #include <linux/types.h>
25
26
27
28 struct nftl_bci {
29 unsigned char ECCSig[6];
30 __u8 Status;
31 __u8 Status1;
32 }__attribute__((packed));
33
34
35
36 struct nftl_uci0 {
37 __u16 VirtUnitNum;
38 __u16 ReplUnitNum;
39 __u16 SpareVirtUnitNum;
40 __u16 SpareReplUnitNum;
41 } __attribute__((packed));
42
43 struct nftl_uci1 {
44 __u32 WearInfo;
45 __u16 EraseMark;
46 __u16 EraseMark1;
47 } __attribute__((packed));
48
49 struct nftl_uci2 {
50 __u16 FoldMark;
51 __u16 FoldMark1;
52 __u32 unused;
53 } __attribute__((packed));
54
55 union nftl_uci {
56 struct nftl_uci0 a;
57 struct nftl_uci1 b;
58 struct nftl_uci2 c;
59 };
60
61 struct nftl_oob {
62 struct nftl_bci b;
63 union nftl_uci u;
64 };
65
66
67
68 struct NFTLMediaHeader {
69 char DataOrgID[6];
70 __u16 NumEraseUnits;
71 __u16 FirstPhysicalEUN;
72 __u32 FormattedSize;
73 unsigned char UnitSizeFactor;
74 } __attribute__((packed));
75
76 #define MAX_ERASE_ZONES (8192 - 512)
77
78 #define ERASE_MARK 0x3c69
79 #define SECTOR_FREE 0xff
80 #define SECTOR_USED 0x55
81 #define SECTOR_IGNORE 0x11
82 #define SECTOR_DELETED 0x00
83
84 #define FOLD_MARK_IN_PROGRESS 0x5555
85
86 #define ZONE_GOOD 0xff
87 #define ZONE_BAD_ORIGINAL 0
88 #define ZONE_BAD_MARKED 7
89
90
91 #endif