Linux-2.6.12-rc2
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / include / mtd / inftl-user.h
blobbda4f2c8f7284d67848aab6dbd3c60be4f6ef6fe
1 /*
2 * $Id: inftl-user.h,v 1.1 2004/05/05 15:17:00 dwmw2 Exp $
4 * Parts of INFTL headers shared with userspace
6 */
8 #ifndef __MTD_INFTL_USER_H__
9 #define __MTD_INFTL_USER_H__
11 #define OSAK_VERSION 0x5120
12 #define PERCENTUSED 98
14 #define SECTORSIZE 512
16 /* Block Control Information */
18 struct inftl_bci {
19 uint8_t ECCsig[6];
20 uint8_t Status;
21 uint8_t Status1;
22 } __attribute__((packed));
24 struct inftl_unithead1 {
25 uint16_t virtualUnitNo;
26 uint16_t prevUnitNo;
27 uint8_t ANAC;
28 uint8_t NACs;
29 uint8_t parityPerField;
30 uint8_t discarded;
31 } __attribute__((packed));
33 struct inftl_unithead2 {
34 uint8_t parityPerField;
35 uint8_t ANAC;
36 uint16_t prevUnitNo;
37 uint16_t virtualUnitNo;
38 uint8_t NACs;
39 uint8_t discarded;
40 } __attribute__((packed));
42 struct inftl_unittail {
43 uint8_t Reserved[4];
44 uint16_t EraseMark;
45 uint16_t EraseMark1;
46 } __attribute__((packed));
48 union inftl_uci {
49 struct inftl_unithead1 a;
50 struct inftl_unithead2 b;
51 struct inftl_unittail c;
54 struct inftl_oob {
55 struct inftl_bci b;
56 union inftl_uci u;
60 /* INFTL Media Header */
62 struct INFTLPartition {
63 __u32 virtualUnits;
64 __u32 firstUnit;
65 __u32 lastUnit;
66 __u32 flags;
67 __u32 spareUnits;
68 __u32 Reserved0;
69 __u32 Reserved1;
70 } __attribute__((packed));
72 struct INFTLMediaHeader {
73 char bootRecordID[8];
74 __u32 NoOfBootImageBlocks;
75 __u32 NoOfBinaryPartitions;
76 __u32 NoOfBDTLPartitions;
77 __u32 BlockMultiplierBits;
78 __u32 FormatFlags;
79 __u32 OsakVersion;
80 __u32 PercentUsed;
81 struct INFTLPartition Partitions[4];
82 } __attribute__((packed));
84 /* Partition flag types */
85 #define INFTL_BINARY 0x20000000
86 #define INFTL_BDTL 0x40000000
87 #define INFTL_LAST 0x80000000
89 #endif /* __MTD_INFTL_USER_H__ */