1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ***   To edit the content of this header, modify the corresponding
11 ***   source file (e.g. under external/kernel-headers/original/) then
12 ***   run bionic/libc/kernel/tools/update_all.py
13 ***
14 ***   Any manual change here will be lost the next time this script will
15 ***   be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef __MTD_INFTL_USER_H__
20#define __MTD_INFTL_USER_H__
21#include <linux/types.h>
22#define OSAK_VERSION 0x5120
23#define PERCENTUSED 98
24#define SECTORSIZE 512
25struct inftl_bci {
26  __u8 ECCsig[6];
27  __u8 Status;
28  __u8 Status1;
29} __attribute__((packed));
30struct inftl_unithead1 {
31  __u16 virtualUnitNo;
32  __u16 prevUnitNo;
33  __u8 ANAC;
34  __u8 NACs;
35  __u8 parityPerField;
36  __u8 discarded;
37} __attribute__((packed));
38struct inftl_unithead2 {
39  __u8 parityPerField;
40  __u8 ANAC;
41  __u16 prevUnitNo;
42  __u16 virtualUnitNo;
43  __u8 NACs;
44  __u8 discarded;
45} __attribute__((packed));
46struct inftl_unittail {
47  __u8 Reserved[4];
48  __u16 EraseMark;
49  __u16 EraseMark1;
50} __attribute__((packed));
51union inftl_uci {
52  struct inftl_unithead1 a;
53  struct inftl_unithead2 b;
54  struct inftl_unittail c;
55};
56struct inftl_oob {
57  struct inftl_bci b;
58  union inftl_uci u;
59};
60struct INFTLPartition {
61  __u32 virtualUnits;
62  __u32 firstUnit;
63  __u32 lastUnit;
64  __u32 flags;
65  __u32 spareUnits;
66  __u32 Reserved0;
67  __u32 Reserved1;
68} __attribute__((packed));
69struct INFTLMediaHeader {
70  char bootRecordID[8];
71  __u32 NoOfBootImageBlocks;
72  __u32 NoOfBinaryPartitions;
73  __u32 NoOfBDTLPartitions;
74  __u32 BlockMultiplierBits;
75  __u32 FormatFlags;
76  __u32 OsakVersion;
77  __u32 PercentUsed;
78  struct INFTLPartition Partitions[4];
79} __attribute__((packed));
80#define INFTL_BINARY 0x20000000
81#define INFTL_BDTL 0x40000000
82#define INFTL_LAST 0x80000000
83#endif
84