1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#ifndef __YPORTENV_H__
18#define __YPORTENV_H__
19
20#include <linux/bug.h>
21#include <linux/types.h>
22
23
24#ifdef CONFIG_YAFFS_DEFINES_TYPES
25typedef unsigned char u8;
26typedef unsigned short u16;
27typedef unsigned u32;
28#endif
29
30
31#ifdef CONFIG_YAFFS_PROVIDE_DEFS
32
33
34
35#define DT_UNKNOWN 0
36#define DT_FIFO 1
37#define DT_CHR 2
38#define DT_DIR 4
39#define DT_BLK 6
40#define DT_REG 8
41#define DT_LNK 10
42#define DT_SOCK 12
43#define DT_WHT 14
44
45
46
47
48
49
50#define ATTR_MODE 1
51#define ATTR_UID 2
52#define ATTR_GID 4
53#define ATTR_SIZE 8
54#define ATTR_ATIME 16
55#define ATTR_MTIME 32
56#define ATTR_CTIME 64
57
58struct iattr {
59 unsigned int ia_valid;
60 unsigned ia_mode;
61 unsigned ia_uid;
62 unsigned ia_gid;
63 unsigned ia_size;
64 unsigned ia_atime;
65 unsigned ia_mtime;
66 unsigned ia_ctime;
67 unsigned int ia_attr_flags;
68};
69
70#endif
71
72
73
74#if defined CONFIG_YAFFS_WINCE
75
76#include "ywinceenv.h"
77
78
79#elif defined CONFIG_YAFFS_DIRECT
80
81
82#include "ydirectenv.h"
83
84#elif defined CONFIG_YAFFS_UTIL
85
86#include "yutilsenv.h"
87
88#else
89
90#error Unknown configuration
91
92#endif
93
94#if defined(CONFIG_YAFFS_DIRECT) || defined(CONFIG_YAFFS_WINCE)
95
96#ifdef CONFIG_YAFFSFS_PROVIDE_VALUES
97
98#ifndef O_RDONLY
99#define O_RDONLY 00
100#endif
101
102#ifndef O_WRONLY
103#define O_WRONLY 01
104#endif
105
106#ifndef O_RDWR
107#define O_RDWR 02
108#endif
109
110#ifndef O_CREAT
111#define O_CREAT 0100
112#endif
113
114#ifndef O_EXCL
115#define O_EXCL 0200
116#endif
117
118#ifndef O_TRUNC
119#define O_TRUNC 01000
120#endif
121
122#ifndef O_APPEND
123#define O_APPEND 02000
124#endif
125
126#ifndef SEEK_SET
127#define SEEK_SET 0
128#endif
129
130#ifndef SEEK_CUR
131#define SEEK_CUR 1
132#endif
133
134#ifndef SEEK_END
135#define SEEK_END 2
136#endif
137
138#ifndef EBUSY
139#define EBUSY 16
140#endif
141
142#ifndef ENODEV
143#define ENODEV 19
144#endif
145
146#ifndef EINVAL
147#define EINVAL 22
148#endif
149
150#ifndef ENFILE
151#define ENFILE 23
152#endif
153
154#ifndef EBADF
155#define EBADF 9
156#endif
157
158#ifndef EACCES
159#define EACCES 13
160#endif
161
162#ifndef EXDEV
163#define EXDEV 18
164#endif
165
166#ifndef ENOENT
167#define ENOENT 2
168#endif
169
170#ifndef ENOSPC
171#define ENOSPC 28
172#endif
173
174#ifndef EROFS
175#define EROFS 30
176#endif
177
178#ifndef ERANGE
179#define ERANGE 34
180#endif
181
182#ifndef ENODATA
183#define ENODATA 61
184#endif
185
186#ifndef ENOTEMPTY
187#define ENOTEMPTY 39
188#endif
189
190#ifndef ENAMETOOLONG
191#define ENAMETOOLONG 36
192#endif
193
194#ifndef ENOMEM
195#define ENOMEM 12
196#endif
197
198#ifndef EFAULT
199#define EFAULT 14
200#endif
201
202#ifndef EEXIST
203#define EEXIST 17
204#endif
205
206#ifndef ENOTDIR
207#define ENOTDIR 20
208#endif
209
210#ifndef EISDIR
211#define EISDIR 21
212#endif
213
214#ifndef ELOOP
215#define ELOOP 40
216#endif
217
218
219
220
221#ifndef S_IFMT
222#define S_IFMT 0170000
223#endif
224
225#ifndef S_IFSOCK
226#define S_IFSOCK 0140000
227#endif
228
229#ifndef S_IFIFO
230#define S_IFIFO 0010000
231#endif
232
233#ifndef S_IFCHR
234#define S_IFCHR 0020000
235#endif
236
237#ifndef S_IFBLK
238#define S_IFBLK 0060000
239#endif
240
241#ifndef S_IFLNK
242#define S_IFLNK 0120000
243#endif
244
245#ifndef S_IFDIR
246#define S_IFDIR 0040000
247#endif
248
249#ifndef S_IFREG
250#define S_IFREG 0100000
251#endif
252
253#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
254#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
255#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
256#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
257#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
258#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
259#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
260
261
262#ifndef S_IREAD
263#define S_IREAD 0000400
264#endif
265
266#ifndef S_IWRITE
267#define S_IWRITE 0000200
268#endif
269
270#ifndef S_IEXEC
271#define S_IEXEC 0000100
272#endif
273
274#ifndef XATTR_CREATE
275#define XATTR_CREATE 1
276#endif
277
278#ifndef XATTR_REPLACE
279#define XATTR_REPLACE 2
280#endif
281
282#ifndef R_OK
283#define R_OK 4
284#define W_OK 2
285#define X_OK 1
286#define F_OK 0
287#endif
288
289#else
290#include <errno.h>
291#include <sys/stat.h>
292#include <fcntl.h>
293#endif
294
295#endif
296
297#ifndef Y_DUMP_STACK
298#define Y_DUMP_STACK() do { } while (0)
299#endif
300
301#ifndef BUG
302#define BUG() do {\
303 yaffs_trace(YAFFS_TRACE_BUG,\
304 "==>> yaffs bug: " __FILE__ " %d",\
305 __LINE__);\
306 Y_DUMP_STACK();\
307} while (0)
308#endif
309
310#endif
311