diff options
Diffstat (limited to 'include/linux/mtd/nftl-user.h')
| -rw-r--r-- | include/linux/mtd/nftl-user.h | 76 | 
1 files changed, 76 insertions, 0 deletions
| diff --git a/include/linux/mtd/nftl-user.h b/include/linux/mtd/nftl-user.h new file mode 100644 index 000000000..b2bca18e7 --- /dev/null +++ b/include/linux/mtd/nftl-user.h @@ -0,0 +1,76 @@ +/* + * $Id: nftl-user.h,v 1.2 2005/11/07 11:14:56 gleixner Exp $ + * + * Parts of NFTL headers shared with userspace + * + */ + +#ifndef __MTD_NFTL_USER_H__ +#define __MTD_NFTL_USER_H__ + +/* Block Control Information */ + +struct nftl_bci { +	unsigned char ECCSig[6]; +	uint8_t Status; +	uint8_t Status1; +}__attribute__((packed)); + +/* Unit Control Information */ + +struct nftl_uci0 { +	uint16_t VirtUnitNum; +	uint16_t ReplUnitNum; +	uint16_t SpareVirtUnitNum; +	uint16_t SpareReplUnitNum; +} __attribute__((packed)); + +struct nftl_uci1 { +	uint32_t WearInfo; +	uint16_t EraseMark; +	uint16_t EraseMark1; +} __attribute__((packed)); + +struct nftl_uci2 { +        uint16_t FoldMark; +        uint16_t FoldMark1; +	uint32_t unused; +} __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]; +	uint16_t NumEraseUnits; +	uint16_t FirstPhysicalEUN; +	uint32_t FormattedSize; +	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__ */ |