summaryrefslogtreecommitdiff
path: root/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/jffs2.h
blob: f2ea901e71fe1bb24082c5afd358a1d83912803e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
/*
 * This file is auto-generated. Modifications will be lost.
 *
 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
 * for more information.
 */
#ifndef __LINUX_JFFS2_H__
#define __LINUX_JFFS2_H__
#include <linux/types.h>
#include <linux/magic.h>
#define JFFS2_OLD_MAGIC_BITMASK 0x1984
#define JFFS2_MAGIC_BITMASK 0x1985
#define KSAMTIB_CIGAM_2SFFJ 0x8519
#define JFFS2_EMPTY_BITMASK 0xffff
#define JFFS2_DIRTY_BITMASK 0x0000
#define JFFS2_SUM_MAGIC 0x02851885
#define JFFS2_MAX_NAME_LEN 254
#define JFFS2_MIN_DATA_LEN 128
#define JFFS2_COMPR_NONE 0x00
#define JFFS2_COMPR_ZERO 0x01
#define JFFS2_COMPR_RTIME 0x02
#define JFFS2_COMPR_RUBINMIPS 0x03
#define JFFS2_COMPR_COPY 0x04
#define JFFS2_COMPR_DYNRUBIN 0x05
#define JFFS2_COMPR_ZLIB 0x06
#define JFFS2_COMPR_LZO 0x07
#define JFFS2_COMPAT_MASK 0xc000
#define JFFS2_NODE_ACCURATE 0x2000
#define JFFS2_FEATURE_INCOMPAT 0xc000
#define JFFS2_FEATURE_ROCOMPAT 0x8000
#define JFFS2_FEATURE_RWCOMPAT_COPY 0x4000
#define JFFS2_FEATURE_RWCOMPAT_DELETE 0x0000
#define JFFS2_NODETYPE_DIRENT (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 1)
#define JFFS2_NODETYPE_INODE (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 2)
#define JFFS2_NODETYPE_CLEANMARKER (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 3)
#define JFFS2_NODETYPE_PADDING (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 4)
#define JFFS2_NODETYPE_SUMMARY (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 6)
#define JFFS2_NODETYPE_XATTR (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 8)
#define JFFS2_NODETYPE_XREF (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 9)
#define JFFS2_XPREFIX_USER 1
#define JFFS2_XPREFIX_SECURITY 2
#define JFFS2_XPREFIX_ACL_ACCESS 3
#define JFFS2_XPREFIX_ACL_DEFAULT 4
#define JFFS2_XPREFIX_TRUSTED 5
#define JFFS2_ACL_VERSION 0x0001
#define JFFS2_INO_FLAG_PREREAD 1
#define JFFS2_INO_FLAG_USERCOMPR 2
typedef struct {
  __u32 v32;
} __attribute__((packed)) jint32_t;
typedef struct {
  __u32 m;
} __attribute__((packed)) jmode_t;
typedef struct {
  __u16 v16;
} __attribute__((packed)) jint16_t;
struct jffs2_unknown_node {
  jint16_t magic;
  jint16_t nodetype;
  jint32_t totlen;
  jint32_t hdr_crc;
};
struct jffs2_raw_dirent {
  jint16_t magic;
  jint16_t nodetype;
  jint32_t totlen;
  jint32_t hdr_crc;
  jint32_t pino;
  jint32_t version;
  jint32_t ino;
  jint32_t mctime;
  __u8 nsize;
  __u8 type;
  __u8 unused[2];
  jint32_t node_crc;
  jint32_t name_crc;
  __u8 name[];
};
struct jffs2_raw_inode {
  jint16_t magic;
  jint16_t nodetype;
  jint32_t totlen;
  jint32_t hdr_crc;
  jint32_t ino;
  jint32_t version;
  jmode_t mode;
  jint16_t uid;
  jint16_t gid;
  jint32_t isize;
  jint32_t atime;
  jint32_t mtime;
  jint32_t ctime;
  jint32_t offset;
  jint32_t csize;
  jint32_t dsize;
  __u8 compr;
  __u8 usercompr;
  jint16_t flags;
  jint32_t data_crc;
  jint32_t node_crc;
  __u8 data[];
};
struct jffs2_raw_xattr {
  jint16_t magic;
  jint16_t nodetype;
  jint32_t totlen;
  jint32_t hdr_crc;
  jint32_t xid;
  jint32_t version;
  __u8 xprefix;
  __u8 name_len;
  jint16_t value_len;
  jint32_t data_crc;
  jint32_t node_crc;
  __u8 data[];
} __attribute__((packed));
struct jffs2_raw_xref {
  jint16_t magic;
  jint16_t nodetype;
  jint32_t totlen;
  jint32_t hdr_crc;
  jint32_t ino;
  jint32_t xid;
  jint32_t xseqno;
  jint32_t node_crc;
} __attribute__((packed));
struct jffs2_raw_summary {
  jint16_t magic;
  jint16_t nodetype;
  jint32_t totlen;
  jint32_t hdr_crc;
  jint32_t sum_num;
  jint32_t cln_mkr;
  jint32_t padded;
  jint32_t sum_crc;
  jint32_t node_crc;
  jint32_t sum[];
};
union jffs2_node_union {
  struct jffs2_raw_inode i;
  struct jffs2_raw_dirent d;
  struct jffs2_raw_xattr x;
  struct jffs2_raw_xref r;
  struct jffs2_raw_summary s;
  struct jffs2_unknown_node u;
};
union jffs2_device_node {
  jint16_t old_id;
  jint32_t new_id;
};
#endif