| /* | |
| * $Id: inftl-user.h,v 1.1 2004/05/05 15:17:00 dwmw2 Exp $ | |
| * | |
| * Parts of INFTL headers shared with userspace | |
| * | |
| */ | |
| #ifndef __MTD_INFTL_USER_H__ | |
| #define __MTD_INFTL_USER_H__ | |
| #define OSAK_VERSION 0x5120 | |
| #define PERCENTUSED 98 | |
| #define SECTORSIZE 512 | |
| /* Block Control Information */ | |
| struct inftl_bci { | |
| uint8_t ECCsig[6]; | |
| uint8_t Status; | |
| uint8_t Status1; | |
| } __attribute__((packed)); | |
| struct inftl_unithead1 { | |
| uint16_t virtualUnitNo; | |
| uint16_t prevUnitNo; | |
| uint8_t ANAC; | |
| uint8_t NACs; | |
| uint8_t parityPerField; | |
| uint8_t discarded; | |
| } __attribute__((packed)); | |
| struct inftl_unithead2 { | |
| uint8_t parityPerField; | |
| uint8_t ANAC; | |
| uint16_t prevUnitNo; | |
| uint16_t virtualUnitNo; | |
| uint8_t NACs; | |
| uint8_t discarded; | |
| } __attribute__((packed)); | |
| struct inftl_unittail { | |
| uint8_t Reserved[4]; | |
| uint16_t EraseMark; | |
| uint16_t 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__ */ | |