93 lines · c
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */2/*3 * Parts of INFTL headers shared with userspace4 *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 0x512013#define PERCENTUSED 9814 15#define SECTORSIZE 51216 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 0x2000000087#define INFTL_BDTL 0x4000000088#define INFTL_LAST 0x8000000089 90#endif /* __MTD_INFTL_USER_H__ */91 92 93