]>
Commit | Line | Data |
---|---|---|
0e8cc8bd | 1 | /* |
4b070809 | 2 | * YAFFS: Yet another Flash File System . A NAND-flash specific file system. |
0e8cc8bd WJ |
3 | * |
4 | * Copyright (C) 2002-2007 Aleph One Ltd. | |
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 | ||
90ef117b WJ |
20 | /* XXX U-BOOT XXX */ |
21 | #ifndef CONFIG_YAFFS_DIRECT | |
22 | #define CONFIG_YAFFS_DIRECT | |
23 | #endif | |
24 | ||
0e8cc8bd WJ |
25 | #if defined CONFIG_YAFFS_WINCE |
26 | ||
27 | #include "ywinceenv.h" | |
28 | ||
90ef117b WJ |
29 | /* XXX U-BOOT XXX */ |
30 | #elif 0 /* defined __KERNEL__ */ | |
0e8cc8bd WJ |
31 | |
32 | #include "moduleconfig.h" | |
33 | ||
34 | /* Linux kernel */ | |
35 | #include <linux/version.h> | |
36 | #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)) | |
37 | #include <linux/config.h> | |
38 | #endif | |
39 | #include <linux/kernel.h> | |
40 | #include <linux/mm.h> | |
41 | #include <linux/sched.h> | |
42 | #include <linux/string.h> | |
43 | #include <linux/slab.h> | |
44 | #include <linux/vmalloc.h> | |
45 | ||
46 | #define YCHAR char | |
47 | #define YUCHAR unsigned char | |
48 | #define _Y(x) x | |
49 | #define yaffs_strcpy(a,b) strcpy(a,b) | |
50 | #define yaffs_strncpy(a,b,c) strncpy(a,b,c) | |
51 | #define yaffs_strncmp(a,b,c) strncmp(a,b,c) | |
52 | #define yaffs_strlen(s) strlen(s) | |
53 | #define yaffs_sprintf sprintf | |
54 | #define yaffs_toupper(a) toupper(a) | |
55 | ||
56 | #define Y_INLINE inline | |
57 | ||
58 | #define YAFFS_LOSTNFOUND_NAME "lost+found" | |
59 | #define YAFFS_LOSTNFOUND_PREFIX "obj" | |
60 | ||
61 | /* #define YPRINTF(x) printk x */ | |
62 | #define YMALLOC(x) kmalloc(x,GFP_KERNEL) | |
63 | #define YFREE(x) kfree(x) | |
64 | #define YMALLOC_ALT(x) vmalloc(x) | |
65 | #define YFREE_ALT(x) vfree(x) | |
66 | #define YMALLOC_DMA(x) YMALLOC(x) | |
67 | ||
68 | // KR - added for use in scan so processes aren't blocked indefinitely. | |
69 | #define YYIELD() schedule() | |
70 | ||
71 | #define YAFFS_ROOT_MODE 0666 | |
72 | #define YAFFS_LOSTNFOUND_MODE 0666 | |
73 | ||
74 | #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) | |
75 | #define Y_CURRENT_TIME CURRENT_TIME.tv_sec | |
76 | #define Y_TIME_CONVERT(x) (x).tv_sec | |
77 | #else | |
78 | #define Y_CURRENT_TIME CURRENT_TIME | |
79 | #define Y_TIME_CONVERT(x) (x) | |
80 | #endif | |
81 | ||
82 | #define yaffs_SumCompare(x,y) ((x) == (y)) | |
83 | #define yaffs_strcmp(a,b) strcmp(a,b) | |
84 | ||
85 | #define TENDSTR "\n" | |
86 | #define TSTR(x) KERN_WARNING x | |
87 | #define TOUT(p) printk p | |
88 | ||
89 | #define yaffs_trace(mask, fmt, args...) \ | |
90 | do { if ((mask) & (yaffs_traceMask|YAFFS_TRACE_ERROR)) \ | |
91 | printk(KERN_WARNING "yaffs: " fmt, ## args); \ | |
92 | } while (0) | |
93 | ||
94 | #define compile_time_assertion(assertion) \ | |
95 | ({ int x = __builtin_choose_expr(assertion, 0, (void)0); (void) x; }) | |
96 | ||
97 | #elif defined CONFIG_YAFFS_DIRECT | |
98 | ||
99 | /* Direct interface */ | |
100 | #include "ydirectenv.h" | |
101 | ||
102 | #elif defined CONFIG_YAFFS_UTIL | |
103 | ||
104 | /* Stuff for YAFFS utilities */ | |
105 | ||
106 | #include "stdlib.h" | |
107 | #include "stdio.h" | |
108 | #include "string.h" | |
109 | ||
110 | #include "devextras.h" | |
111 | ||
112 | #define YMALLOC(x) malloc(x) | |
113 | #define YFREE(x) free(x) | |
114 | #define YMALLOC_ALT(x) malloc(x) | |
115 | #define YFREE_ALT(x) free(x) | |
116 | ||
117 | #define YCHAR char | |
118 | #define YUCHAR unsigned char | |
119 | #define _Y(x) x | |
120 | #define yaffs_strcpy(a,b) strcpy(a,b) | |
121 | #define yaffs_strncpy(a,b,c) strncpy(a,b,c) | |
122 | #define yaffs_strlen(s) strlen(s) | |
123 | #define yaffs_sprintf sprintf | |
124 | #define yaffs_toupper(a) toupper(a) | |
125 | ||
126 | #define Y_INLINE inline | |
127 | ||
128 | /* #define YINFO(s) YPRINTF(( __FILE__ " %d %s\n",__LINE__,s)) */ | |
129 | /* #define YALERT(s) YINFO(s) */ | |
130 | ||
131 | #define TENDSTR "\n" | |
132 | #define TSTR(x) x | |
133 | #define TOUT(p) printf p | |
134 | ||
135 | #define YAFFS_LOSTNFOUND_NAME "lost+found" | |
136 | #define YAFFS_LOSTNFOUND_PREFIX "obj" | |
137 | /* #define YPRINTF(x) printf x */ | |
138 | ||
139 | #define YAFFS_ROOT_MODE 0666 | |
140 | #define YAFFS_LOSTNFOUND_MODE 0666 | |
141 | ||
142 | #define yaffs_SumCompare(x,y) ((x) == (y)) | |
143 | #define yaffs_strcmp(a,b) strcmp(a,b) | |
144 | ||
145 | #else | |
146 | /* Should have specified a configuration type */ | |
147 | #error Unknown configuration | |
148 | ||
149 | #endif | |
150 | ||
151 | /* see yaffs_fs.c */ | |
152 | extern unsigned int yaffs_traceMask; | |
153 | extern unsigned int yaffs_wr_attempts; | |
154 | ||
155 | /* | |
156 | * Tracing flags. | |
157 | * The flags masked in YAFFS_TRACE_ALWAYS are always traced. | |
158 | */ | |
4b070809 | 159 | |
0e8cc8bd WJ |
160 | #define YAFFS_TRACE_OS 0x00000002 |
161 | #define YAFFS_TRACE_ALLOCATE 0x00000004 | |
162 | #define YAFFS_TRACE_SCAN 0x00000008 | |
163 | #define YAFFS_TRACE_BAD_BLOCKS 0x00000010 | |
164 | #define YAFFS_TRACE_ERASE 0x00000020 | |
165 | #define YAFFS_TRACE_GC 0x00000040 | |
166 | #define YAFFS_TRACE_WRITE 0x00000080 | |
167 | #define YAFFS_TRACE_TRACING 0x00000100 | |
168 | #define YAFFS_TRACE_DELETION 0x00000200 | |
169 | #define YAFFS_TRACE_BUFFERS 0x00000400 | |
170 | #define YAFFS_TRACE_NANDACCESS 0x00000800 | |
171 | #define YAFFS_TRACE_GC_DETAIL 0x00001000 | |
172 | #define YAFFS_TRACE_SCAN_DEBUG 0x00002000 | |
173 | #define YAFFS_TRACE_MTD 0x00004000 | |
174 | #define YAFFS_TRACE_CHECKPOINT 0x00008000 | |
175 | ||
176 | #define YAFFS_TRACE_VERIFY 0x00010000 | |
177 | #define YAFFS_TRACE_VERIFY_NAND 0x00020000 | |
178 | #define YAFFS_TRACE_VERIFY_FULL 0x00040000 | |
179 | #define YAFFS_TRACE_VERIFY_ALL 0x000F0000 | |
180 | ||
181 | ||
182 | #define YAFFS_TRACE_ERROR 0x40000000 | |
183 | #define YAFFS_TRACE_BUG 0x80000000 | |
184 | #define YAFFS_TRACE_ALWAYS 0xF0000000 | |
185 | ||
186 | ||
187 | #define T(mask,p) do{ if((mask) & (yaffs_traceMask | YAFFS_TRACE_ALWAYS)) TOUT(p);} while(0) | |
188 | ||
189 | #ifndef CONFIG_YAFFS_WINCE | |
190 | #define YBUG() T(YAFFS_TRACE_BUG,(TSTR("==>> yaffs bug: " __FILE__ " %d" TENDSTR),__LINE__)) | |
191 | #endif | |
192 | ||
193 | #endif |