xref: /aosp_15_r20/bionic/libc/kernel/uapi/mtd/nftl-user.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef __MTD_NFTL_USER_H__
8*8d67ca89SAndroid Build Coastguard Worker #define __MTD_NFTL_USER_H__
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
10*8d67ca89SAndroid Build Coastguard Worker struct nftl_bci {
11*8d67ca89SAndroid Build Coastguard Worker   unsigned char ECCSig[6];
12*8d67ca89SAndroid Build Coastguard Worker   __u8 Status;
13*8d67ca89SAndroid Build Coastguard Worker   __u8 Status1;
14*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
15*8d67ca89SAndroid Build Coastguard Worker struct nftl_uci0 {
16*8d67ca89SAndroid Build Coastguard Worker   __u16 VirtUnitNum;
17*8d67ca89SAndroid Build Coastguard Worker   __u16 ReplUnitNum;
18*8d67ca89SAndroid Build Coastguard Worker   __u16 SpareVirtUnitNum;
19*8d67ca89SAndroid Build Coastguard Worker   __u16 SpareReplUnitNum;
20*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
21*8d67ca89SAndroid Build Coastguard Worker struct nftl_uci1 {
22*8d67ca89SAndroid Build Coastguard Worker   __u32 WearInfo;
23*8d67ca89SAndroid Build Coastguard Worker   __u16 EraseMark;
24*8d67ca89SAndroid Build Coastguard Worker   __u16 EraseMark1;
25*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
26*8d67ca89SAndroid Build Coastguard Worker struct nftl_uci2 {
27*8d67ca89SAndroid Build Coastguard Worker   __u16 FoldMark;
28*8d67ca89SAndroid Build Coastguard Worker   __u16 FoldMark1;
29*8d67ca89SAndroid Build Coastguard Worker   __u32 unused;
30*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
31*8d67ca89SAndroid Build Coastguard Worker union nftl_uci {
32*8d67ca89SAndroid Build Coastguard Worker   struct nftl_uci0 a;
33*8d67ca89SAndroid Build Coastguard Worker   struct nftl_uci1 b;
34*8d67ca89SAndroid Build Coastguard Worker   struct nftl_uci2 c;
35*8d67ca89SAndroid Build Coastguard Worker };
36*8d67ca89SAndroid Build Coastguard Worker struct nftl_oob {
37*8d67ca89SAndroid Build Coastguard Worker   struct nftl_bci b;
38*8d67ca89SAndroid Build Coastguard Worker   union nftl_uci u;
39*8d67ca89SAndroid Build Coastguard Worker };
40*8d67ca89SAndroid Build Coastguard Worker struct NFTLMediaHeader {
41*8d67ca89SAndroid Build Coastguard Worker   char DataOrgID[6];
42*8d67ca89SAndroid Build Coastguard Worker   __u16 NumEraseUnits;
43*8d67ca89SAndroid Build Coastguard Worker   __u16 FirstPhysicalEUN;
44*8d67ca89SAndroid Build Coastguard Worker   __u32 FormattedSize;
45*8d67ca89SAndroid Build Coastguard Worker   unsigned char UnitSizeFactor;
46*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
47*8d67ca89SAndroid Build Coastguard Worker #define MAX_ERASE_ZONES (8192 - 512)
48*8d67ca89SAndroid Build Coastguard Worker #define ERASE_MARK 0x3c69
49*8d67ca89SAndroid Build Coastguard Worker #define SECTOR_FREE 0xff
50*8d67ca89SAndroid Build Coastguard Worker #define SECTOR_USED 0x55
51*8d67ca89SAndroid Build Coastguard Worker #define SECTOR_IGNORE 0x11
52*8d67ca89SAndroid Build Coastguard Worker #define SECTOR_DELETED 0x00
53*8d67ca89SAndroid Build Coastguard Worker #define FOLD_MARK_IN_PROGRESS 0x5555
54*8d67ca89SAndroid Build Coastguard Worker #define ZONE_GOOD 0xff
55*8d67ca89SAndroid Build Coastguard Worker #define ZONE_BAD_ORIGINAL 0
56*8d67ca89SAndroid Build Coastguard Worker #define ZONE_BAD_MARKED 7
57*8d67ca89SAndroid Build Coastguard Worker #endif
58