root/include/uapi/mtd/inftl-user.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


/*
 * 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__ */



/* [<][>][^][v][top][bottom][index][help] */