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