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