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
93

source code of linux/include/uapi/mtd/inftl-user.h