Blame view

include/mtd/nftl-user.h 2 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
  /*
a1452a377   David Woodhouse   mtd: Update copyr...
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   * Copyright © 1999-2010 David Woodhouse <dwmw2@infradead.org>
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
   * the Free Software Foundation; either version 2 of the License, or
   * (at your option) any later version.
   *
   * This program is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU General Public License for more details.
   *
   * You should have received a copy of the GNU General Public License
   * along with this program; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
17
18
19
20
21
   *
   */
  
  #ifndef __MTD_NFTL_USER_H__
  #define __MTD_NFTL_USER_H__
ccef7ab53   Arnd Bergmann   make MTD headers ...
22
  #include <linux/types.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
23
24
25
26
  /* Block Control Information */
  
  struct nftl_bci {
  	unsigned char ECCSig[6];
ccef7ab53   Arnd Bergmann   make MTD headers ...
27
28
  	__u8 Status;
  	__u8 Status1;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
29
30
31
32
33
  }__attribute__((packed));
  
  /* Unit Control Information */
  
  struct nftl_uci0 {
ccef7ab53   Arnd Bergmann   make MTD headers ...
34
35
36
37
  	__u16 VirtUnitNum;
  	__u16 ReplUnitNum;
  	__u16 SpareVirtUnitNum;
  	__u16 SpareReplUnitNum;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
38
39
40
  } __attribute__((packed));
  
  struct nftl_uci1 {
ccef7ab53   Arnd Bergmann   make MTD headers ...
41
42
43
  	__u32 WearInfo;
  	__u16 EraseMark;
  	__u16 EraseMark1;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
44
45
46
  } __attribute__((packed));
  
  struct nftl_uci2 {
ccef7ab53   Arnd Bergmann   make MTD headers ...
47
48
49
          __u16 FoldMark;
          __u16 FoldMark1;
  	__u32 unused;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
  } __attribute__((packed));
  
  union nftl_uci {
  	struct nftl_uci0 a;
  	struct nftl_uci1 b;
  	struct nftl_uci2 c;
  };
  
  struct nftl_oob {
  	struct nftl_bci b;
  	union nftl_uci u;
  };
  
  /* NFTL Media Header */
  
  struct NFTLMediaHeader {
  	char DataOrgID[6];
ccef7ab53   Arnd Bergmann   make MTD headers ...
67
68
69
  	__u16 NumEraseUnits;
  	__u16 FirstPhysicalEUN;
  	__u32 FormattedSize;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
  	unsigned char UnitSizeFactor;
  } __attribute__((packed));
  
  #define MAX_ERASE_ZONES (8192 - 512)
  
  #define ERASE_MARK 0x3c69
  #define SECTOR_FREE 0xff
  #define SECTOR_USED 0x55
  #define SECTOR_IGNORE 0x11
  #define SECTOR_DELETED 0x00
  
  #define FOLD_MARK_IN_PROGRESS 0x5555
  
  #define ZONE_GOOD 0xff
  #define ZONE_BAD_ORIGINAL 0
  #define ZONE_BAD_MARKED 7
  
  
  #endif /* __MTD_NFTL_USER_H__ */