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