diff options
Diffstat (limited to 'include/uapi/mtd/inftl-user.h')
| -rw-r--r-- | include/uapi/mtd/inftl-user.h | 91 | 
1 files changed, 91 insertions, 0 deletions
diff --git a/include/uapi/mtd/inftl-user.h b/include/uapi/mtd/inftl-user.h new file mode 100644 index 00000000000..8376bd1a9e0 --- /dev/null +++ b/include/uapi/mtd/inftl-user.h @@ -0,0 +1,91 @@ +/* + * Parts of INFTL headers shared with userspace + * + */ + +#ifndef __MTD_INFTL_USER_H__ +#define __MTD_INFTL_USER_H__ + +#include <linux/types.h> + +#define	OSAK_VERSION	0x5120 +#define	PERCENTUSED	98 + +#define	SECTORSIZE	512 + +/* Block Control Information */ + +struct inftl_bci { +	__u8 ECCsig[6]; +	__u8 Status; +	__u8 Status1; +} __attribute__((packed)); + +struct inftl_unithead1 { +	__u16 virtualUnitNo; +	__u16 prevUnitNo; +	__u8 ANAC; +	__u8 NACs; +	__u8 parityPerField; +	__u8 discarded; +} __attribute__((packed)); + +struct inftl_unithead2 { +	__u8 parityPerField; +	__u8 ANAC; +	__u16 prevUnitNo; +	__u16 virtualUnitNo; +	__u8 NACs; +	__u8 discarded; +} __attribute__((packed)); + +struct inftl_unittail { +	__u8 Reserved[4]; +	__u16 EraseMark; +	__u16 EraseMark1; +} __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__ */ + +  | 
