Blame view

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