]> Git Repo - J-u-boot.git/blame - fs/yaffs2/yportenv.h
Merge branch 'master' of git://git.denx.de/u-boot-usb
[J-u-boot.git] / fs / yaffs2 / yportenv.h
CommitLineData
0e8cc8bd 1/*
4b070809 2 * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
0e8cc8bd 3 *
753ac610 4 * Copyright (C) 2002-2011 Aleph One Ltd.
0e8cc8bd
WJ
5 * for Toby Churchill Ltd and Brightstar Engineering
6 *
7 * Created by Charles Manning <[email protected]>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU Lesser General Public License version 2.1 as
11 * published by the Free Software Foundation.
12 *
13 * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
14 */
15
16
17#ifndef __YPORTENV_H__
18#define __YPORTENV_H__
19
753ac610
CM
20
21/* Definition of types */
22#ifdef CONFIG_YAFFS_DEFINES_TYPES
23typedef unsigned char u8;
24typedef unsigned short u16;
25typedef unsigned u32;
90ef117b
WJ
26#endif
27
0e8cc8bd 28
753ac610
CM
29#ifdef CONFIG_YAFFS_PROVIDE_DEFS
30/* File types */
31
32
33#define DT_UNKNOWN 0
34#define DT_FIFO 1
35#define DT_CHR 2
36#define DT_DIR 4
37#define DT_BLK 6
38#define DT_REG 8
39#define DT_LNK 10
40#define DT_SOCK 12
41#define DT_WHT 14
42
43
44/*
45 * Attribute flags.
46 * These are or-ed together to select what has been changed.
47 */
48#define ATTR_MODE 1
49#define ATTR_UID 2
50#define ATTR_GID 4
51#define ATTR_SIZE 8
52#define ATTR_ATIME 16
53#define ATTR_MTIME 32
54#define ATTR_CTIME 64
55
56struct iattr {
57 unsigned int ia_valid;
58 unsigned ia_mode;
59 unsigned ia_uid;
60 unsigned ia_gid;
61 unsigned ia_size;
62 unsigned ia_atime;
63 unsigned ia_mtime;
64 unsigned ia_ctime;
65 unsigned int ia_attr_flags;
66};
0e8cc8bd 67
0e8cc8bd
WJ
68#endif
69
0e8cc8bd 70
0e8cc8bd 71
753ac610
CM
72#if defined CONFIG_YAFFS_WINCE
73
74#include "ywinceenv.h"
0e8cc8bd 75
0e8cc8bd
WJ
76
77#elif defined CONFIG_YAFFS_DIRECT
78
79/* Direct interface */
80#include "ydirectenv.h"
81
82#elif defined CONFIG_YAFFS_UTIL
83
753ac610 84#include "yutilsenv.h"
0e8cc8bd 85
753ac610
CM
86#else
87/* Should have specified a configuration type */
88#error Unknown configuration
0e8cc8bd 89
753ac610 90#endif
0e8cc8bd 91
753ac610 92#if defined(CONFIG_YAFFS_DIRECT) || defined(CONFIG_YAFFS_WINCE)
0e8cc8bd 93
753ac610 94#ifdef CONFIG_YAFFSFS_PROVIDE_VALUES
0e8cc8bd 95
753ac610
CM
96#ifndef O_RDONLY
97#define O_RDONLY 00
98#endif
0e8cc8bd 99
753ac610
CM
100#ifndef O_WRONLY
101#define O_WRONLY 01
102#endif
0e8cc8bd 103
753ac610
CM
104#ifndef O_RDWR
105#define O_RDWR 02
106#endif
0e8cc8bd 107
753ac610
CM
108#ifndef O_CREAT
109#define O_CREAT 0100
110#endif
0e8cc8bd 111
753ac610
CM
112#ifndef O_EXCL
113#define O_EXCL 0200
114#endif
0e8cc8bd 115
753ac610
CM
116#ifndef O_TRUNC
117#define O_TRUNC 01000
118#endif
0e8cc8bd 119
753ac610
CM
120#ifndef O_APPEND
121#define O_APPEND 02000
122#endif
0e8cc8bd 123
753ac610
CM
124#ifndef SEEK_SET
125#define SEEK_SET 0
0e8cc8bd
WJ
126#endif
127
753ac610
CM
128#ifndef SEEK_CUR
129#define SEEK_CUR 1
130#endif
0e8cc8bd 131
753ac610
CM
132#ifndef SEEK_END
133#define SEEK_END 2
134#endif
135
136#ifndef EBUSY
137#define EBUSY 16
138#endif
139
140#ifndef ENODEV
141#define ENODEV 19
142#endif
143
144#ifndef EINVAL
145#define EINVAL 22
146#endif
147
148#ifndef ENFILE
149#define ENFILE 23
150#endif
151
152#ifndef EBADF
153#define EBADF 9
154#endif
155
156#ifndef EACCES
157#define EACCES 13
158#endif
159
160#ifndef EXDEV
161#define EXDEV 18
162#endif
163
164#ifndef ENOENT
165#define ENOENT 2
166#endif
167
168#ifndef ENOSPC
169#define ENOSPC 28
170#endif
171
172#ifndef EROFS
173#define EROFS 30
174#endif
175
176#ifndef ERANGE
177#define ERANGE 34
178#endif
179
180#ifndef ENODATA
181#define ENODATA 61
182#endif
183
184#ifndef ENOTEMPTY
185#define ENOTEMPTY 39
186#endif
187
188#ifndef ENAMETOOLONG
189#define ENAMETOOLONG 36
190#endif
191
192#ifndef ENOMEM
193#define ENOMEM 12
194#endif
195
196#ifndef EFAULT
197#define EFAULT 14
198#endif
199
200#ifndef EEXIST
201#define EEXIST 17
202#endif
203
204#ifndef ENOTDIR
205#define ENOTDIR 20
206#endif
207
208#ifndef EISDIR
209#define EISDIR 21
210#endif
211
212#ifndef ELOOP
213#define ELOOP 40
214#endif
215
216
217/* Mode flags */
218
219#ifndef S_IFMT
220#define S_IFMT 0170000
221#endif
222
223#ifndef S_IFSOCK
224#define S_IFSOCK 0140000
225#endif
226
227#ifndef S_IFIFO
228#define S_IFIFO 0010000
229#endif
230
231#ifndef S_IFCHR
232#define S_IFCHR 0020000
233#endif
234
235#ifndef S_IFBLK
236#define S_IFBLK 0060000
237#endif
238
239#ifndef S_IFLNK
240#define S_IFLNK 0120000
241#endif
242
243#ifndef S_IFDIR
244#define S_IFDIR 0040000
245#endif
246
247#ifndef S_IFREG
248#define S_IFREG 0100000
249#endif
250
251#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
252#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
253#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
254#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
255#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
256#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
257#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
258
259
260#ifndef S_IREAD
261#define S_IREAD 0000400
262#endif
263
264#ifndef S_IWRITE
265#define S_IWRITE 0000200
266#endif
267
268#ifndef S_IEXEC
269#define S_IEXEC 0000100
270#endif
271
272#ifndef XATTR_CREATE
273#define XATTR_CREATE 1
274#endif
275
276#ifndef XATTR_REPLACE
277#define XATTR_REPLACE 2
278#endif
279
280#ifndef R_OK
281#define R_OK 4
282#define W_OK 2
283#define X_OK 1
284#define F_OK 0
285#endif
286
287#else
288#include <errno.h>
289#include <sys/stat.h>
290#include <fcntl.h>
291#endif
292
293#endif
294
295#ifndef Y_DUMP_STACK
296#define Y_DUMP_STACK() do { } while (0)
297#endif
4b070809 298
753ac610
CM
299#ifndef BUG
300#define BUG() do {\
301 yaffs_trace(YAFFS_TRACE_BUG,\
302 "==>> yaffs bug: " __FILE__ " %d",\
303 __LINE__);\
304 Y_DUMP_STACK();\
305} while (0)
0e8cc8bd
WJ
306#endif
307
308#endif
This page took 0.200035 seconds and 4 git commands to generate.