Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/include/uapi/mtd/nftl-user.h
29278 views
1
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2
/*
3
* Copyright © 1999-2010 David Woodhouse <[email protected]>
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18
*
19
*/
20
21
#ifndef __MTD_NFTL_USER_H__
22
#define __MTD_NFTL_USER_H__
23
24
#include <linux/types.h>
25
26
/* Block Control Information */
27
28
struct nftl_bci {
29
unsigned char ECCSig[6];
30
__u8 Status;
31
__u8 Status1;
32
}__attribute__((packed));
33
34
/* Unit Control Information */
35
36
struct nftl_uci0 {
37
__u16 VirtUnitNum;
38
__u16 ReplUnitNum;
39
__u16 SpareVirtUnitNum;
40
__u16 SpareReplUnitNum;
41
} __attribute__((packed));
42
43
struct nftl_uci1 {
44
__u32 WearInfo;
45
__u16 EraseMark;
46
__u16 EraseMark1;
47
} __attribute__((packed));
48
49
struct nftl_uci2 {
50
__u16 FoldMark;
51
__u16 FoldMark1;
52
__u32 unused;
53
} __attribute__((packed));
54
55
union nftl_uci {
56
struct nftl_uci0 a;
57
struct nftl_uci1 b;
58
struct nftl_uci2 c;
59
};
60
61
struct nftl_oob {
62
struct nftl_bci b;
63
union nftl_uci u;
64
};
65
66
/* NFTL Media Header */
67
68
struct NFTLMediaHeader {
69
char DataOrgID[6];
70
__u16 NumEraseUnits;
71
__u16 FirstPhysicalEUN;
72
__u32 FormattedSize;
73
unsigned char UnitSizeFactor;
74
} __attribute__((packed));
75
76
#define MAX_ERASE_ZONES (8192 - 512)
77
78
#define ERASE_MARK 0x3c69
79
#define SECTOR_FREE 0xff
80
#define SECTOR_USED 0x55
81
#define SECTOR_IGNORE 0x11
82
#define SECTOR_DELETED 0x00
83
84
#define FOLD_MARK_IN_PROGRESS 0x5555
85
86
#define ZONE_GOOD 0xff
87
#define ZONE_BAD_ORIGINAL 0
88
#define ZONE_BAD_MARKED 7
89
90
91
#endif /* __MTD_NFTL_USER_H__ */
92
93