Linux v2.6.17-rc2
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / include / mtd / nftl-user.h
blobb2bca18e7311bf1670271b3cf5988b0c933278fe
1 /*
2 * $Id: nftl-user.h,v 1.2 2005/11/07 11:14:56 gleixner Exp $
4 * Parts of NFTL headers shared with userspace
6 */
8 #ifndef __MTD_NFTL_USER_H__
9 #define __MTD_NFTL_USER_H__
11 /* Block Control Information */
13 struct nftl_bci {
14 unsigned char ECCSig[6];
15 uint8_t Status;
16 uint8_t Status1;
17 }__attribute__((packed));
19 /* Unit Control Information */
21 struct nftl_uci0 {
22 uint16_t VirtUnitNum;
23 uint16_t ReplUnitNum;
24 uint16_t SpareVirtUnitNum;
25 uint16_t SpareReplUnitNum;
26 } __attribute__((packed));
28 struct nftl_uci1 {
29 uint32_t WearInfo;
30 uint16_t EraseMark;
31 uint16_t EraseMark1;
32 } __attribute__((packed));
34 struct nftl_uci2 {
35 uint16_t FoldMark;
36 uint16_t FoldMark1;
37 uint32_t unused;
38 } __attribute__((packed));
40 union nftl_uci {
41 struct nftl_uci0 a;
42 struct nftl_uci1 b;
43 struct nftl_uci2 c;
46 struct nftl_oob {
47 struct nftl_bci b;
48 union nftl_uci u;
51 /* NFTL Media Header */
53 struct NFTLMediaHeader {
54 char DataOrgID[6];
55 uint16_t NumEraseUnits;
56 uint16_t FirstPhysicalEUN;
57 uint32_t FormattedSize;
58 unsigned char UnitSizeFactor;
59 } __attribute__((packed));
61 #define MAX_ERASE_ZONES (8192 - 512)
63 #define ERASE_MARK 0x3c69
64 #define SECTOR_FREE 0xff
65 #define SECTOR_USED 0x55
66 #define SECTOR_IGNORE 0x11
67 #define SECTOR_DELETED 0x00
69 #define FOLD_MARK_IN_PROGRESS 0x5555
71 #define ZONE_GOOD 0xff
72 #define ZONE_BAD_ORIGINAL 0
73 #define ZONE_BAD_MARKED 7
76 #endif /* __MTD_NFTL_USER_H__ */