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