*** empty log message ***
[yaffs/.git] / yportenv.h
1 /*\r
2  * YAFFS: Yet another FFS. A NAND-flash specific file system. \r
3  * yportenv.h: Portable services used by yaffs. This is done to allow\r
4  * simple migration from kernel space into app space for testing.\r
5  *\r
6  * Copyright (C) 2002 Aleph One Ltd.\r
7  *   for Toby Churchill Ltd and Brightstar Engineering\r
8  *\r
9  * Created by Charles Manning <charles@aleph1.co.uk>\r
10  *\r
11  * This program is free software; you can redistribute it and/or modify\r
12  * it under the terms of the GNU Lesser General Public License version 2.1 as\r
13  * published by the Free Software Foundation.\r
14  *\r
15  *\r
16  * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.\r
17  *\r
18  */\r
19  \r
20 #ifndef __PORTENV_H__\r
21 #define __PORTENV_H__\r
22 \r
23 \r
24 #if defined WIN32\r
25 \r
26 // Win32\r
27 #include "stdlib.h"\r
28 #include "stdio.h"\r
29 #include "string.h"\r
30 \r
31 #define YMALLOC(x) malloc(x)\r
32 #define YFREE(x)   free(x)\r
33 \r
34 \r
35 #define YINFO(s) YPRINTF(( __FILE__ " %d %s\n",__LINE__,s))\r
36 #define YALERT(s) YINFO(s)\r
37 \r
38 #include <windows.h>\r
39 \r
40 #define YAFFS_LOSTNFOUND_NAME           "LOST_CLUSTERS"\r
41 #define YAFFS_LOSTNFOUND_PREFIX         "OBJ"\r
42 \r
43 #define YPRINTF(x)\r
44 \r
45 // Always pass the sum compare to overcome the case insensitivity issue\r
46 #define yaffs_SumCompare(x,y) 1\r
47 #define yaffs_strcmp(a,b) _stricmp(a,b)\r
48 \r
49 \r
50 #define u_char unsigned char\r
51 #define loff_t int\r
52 #define S_IFDIR                                         04000\r
53 \r
54 #define S_ISFIFO(x) 0\r
55 #define S_ISCHR(x) 0\r
56 #define S_ISBLK(x) 0\r
57 #define S_ISSOCK(x) 0\r
58 \r
59 extern unsigned yfsd_U32FileTimeNow(void);\r
60 \r
61 #define CURRENT_TIME                             yfsd_U32FileTimeNow()\r
62 #define YAFFS_ROOT_MODE                         FILE_ATTRIBUTE_ARCHIVE\r
63 #define YAFFS_LOSTNFOUND_MODE           (FILE_ATTRIBUTE_ARCHIVE | FILE_ATTRIBUTE_HIDDEN)\r
64 \r
65 \r
66 #define TENDSTR "\r\n"\r
67 #define TSTR(x) TEXT(x)\r
68 #define T(x) RETAILMSG(1, x)\r
69 \r
70 \r
71 #elif  defined __KERNEL__\r
72 \r
73 \r
74 \r
75 // Linux kernel\r
76 #include "linux/kernel.h"\r
77 #include "linux/mm.h"\r
78 #include "linux/string.h"\r
79 #include "linux/slab.h"\r
80 #define YAFFS_LOSTNFOUND_NAME           "lost+found"\r
81 #define YAFFS_LOSTNFOUND_PREFIX         "obj"\r
82 \r
83 #define YPRINTF(x) printk x\r
84 #define YMALLOC(x) kmalloc(x,GFP_KERNEL)\r
85 #define YFREE(x)   kfree(x)\r
86 \r
87 #define YAFFS_ROOT_MODE                         0666\r
88 #define YAFFS_LOSTNFOUND_MODE           0666\r
89 \r
90 \r
91 #define yaffs_SumCompare(x,y) ((x) == (y))\r
92 #define yaffs_strcmp(a,b) strcmp(a,b)\r
93 \r
94 #define TENDSTR "\n"\r
95 #define TSTR(x) KERN_DEBUG x\r
96 #define T(x) printk x\r
97 \r
98 \r
99 #else\r
100 \r
101 // Linux application\r
102 #include "stdlib.h"\r
103 #include "stdio.h"\r
104 #include "string.h"\r
105 \r
106 #define YMALLOC(x) malloc(x)\r
107 #define YFREE(x)   free(x)\r
108 \r
109 \r
110 #define YINFO(s) YPRINTF(( __FILE__ " %d %s\n",__LINE__,s))\r
111 #define YALERT(s) YINFO(s)\r
112 \r
113 \r
114 #define TENDSTR "\n"\r
115 #define TSTR(x) x\r
116 #define T(x) printf x\r
117 \r
118 \r
119 #define YAFFS_LOSTNFOUND_NAME           "lost+found"\r
120 #define YAFFS_LOSTNFOUND_PREFIX         "obj"\r
121 #define YPRINTF(x) printf x\r
122 \r
123 #define CURRENT_TIME 0\r
124 #define YAFFS_ROOT_MODE                         0666\r
125 #define YAFFS_LOSTNFOUND_MODE           0666\r
126 \r
127 #define yaffs_SumCompare(x,y) ((x) == (y))\r
128 #define yaffs_strcmp(a,b) strcmp(a,b)\r
129 \r
130 #endif \r
131 \r
132 \r
133 \r
134 #undef YINFO\r
135 \r
136 \r
137 #define YINFO(s) YPRINTF((KERN_DEBUG __FILE__ " %d %s\n",__LINE__,s))\r
138 #define YALERT(s) YINFO(s)\r
139 \r
140 #define YBUG() do{YINFO("bug");} while(0)\r
141 \r
142 \r
143 #endif\r