*
* Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
*
- * $Id: yportenv.h,v 1.4 2004-11-22 03:22:25 charles Exp $
+ * $Id: yportenv.h,v 1.12 2007-01-19 04:07:48 charles Exp $
*
*/
-
+
#ifndef __YPORTENV_H__
#define __YPORTENV_H__
-
#if defined CONFIG_YAFFS_WINCE
#include "ywinceenv.h"
#elif defined __KERNEL__
+#include "moduleconfig.h"
-
-// Linux kernel
-#include "linux/kernel.h"
-#include "linux/version.h"
-#include "linux/mm.h"
-#include "linux/string.h"
-#include "linux/slab.h"
+/* Linux kernel */
+#include <linux/version.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19))
+#include <linux/config.h>
+#endif
+#include <linux/kernel.h>
+#include <linux/mm.h>
+#include <linux/string.h>
+#include <linux/slab.h>
+#include <linux/vmalloc.h>
#define YCHAR char
#define YUCHAR unsigned char
#define YAFFS_LOSTNFOUND_NAME "lost+found"
#define YAFFS_LOSTNFOUND_PREFIX "obj"
-//#define YPRINTF(x) printk x
+/* #define YPRINTF(x) printk x */
#define YMALLOC(x) kmalloc(x,GFP_KERNEL)
#define YFREE(x) kfree(x)
+#define YMALLOC_ALT(x) vmalloc(x)
+#define YFREE_ALT(x) vfree(x)
+#define YMALLOC_DMA(x) YMALLOC(x)
+
+// KR - added for use in scan so processes aren't blocked indefinitely.
+#define YYIELD() schedule()
#define YAFFS_ROOT_MODE 0666
#define YAFFS_LOSTNFOUND_MODE 0666
#define TSTR(x) KERN_WARNING x
#define TOUT(p) printk p
-
#elif defined CONFIG_YAFFS_DIRECT
-// Direct interface
+/* Direct interface */
#include "ydirectenv.h"
#elif defined CONFIG_YAFFS_UTIL
-// Stuff for YAFFS utilities
+/* Stuff for YAFFS utilities */
#include "stdlib.h"
#include "stdio.h"
#define YMALLOC(x) malloc(x)
#define YFREE(x) free(x)
-
+#define YMALLOC_ALT(x) malloc(x)
+#define YFREE_ALT(x) free(x)
#define YCHAR char
#define YUCHAR unsigned char
#define Y_INLINE inline
-//#define YINFO(s) YPRINTF(( __FILE__ " %d %s\n",__LINE__,s))
-//#define YALERT(s) YINFO(s)
-
+/* #define YINFO(s) YPRINTF(( __FILE__ " %d %s\n",__LINE__,s)) */
+/* #define YALERT(s) YINFO(s) */
#define TENDSTR "\n"
#define TSTR(x) x
#define TOUT(p) printf p
-
#define YAFFS_LOSTNFOUND_NAME "lost+found"
#define YAFFS_LOSTNFOUND_PREFIX "obj"
-//#define YPRINTF(x) printf x
-
+/* #define YPRINTF(x) printf x */
#define YAFFS_ROOT_MODE 0666
#define YAFFS_LOSTNFOUND_MODE 0666
#define yaffs_strcmp(a,b) strcmp(a,b)
#else
-// Should have specified a configuration type
+/* Should have specified a configuration type */
#error Unknown configuration
-#endif
-
+#endif
extern unsigned yaffs_traceMask;
#define YAFFS_TRACE_BUFFERS 0x00000400
#define YAFFS_TRACE_NANDACCESS 0x00000800
#define YAFFS_TRACE_GC_DETAIL 0x00001000
+#define YAFFS_TRACE_SCAN_DEBUG 0x00002000
+#define YAFFS_TRACE_MTD 0x00004000
+#define YAFFS_TRACE_CHECKPOINT 0x00008000
#define YAFFS_TRACE_ALWAYS 0x40000000
#define YAFFS_TRACE_BUG 0x80000000
-#define T(mask,p) do{ if((mask) & (yaffs_traceMask | YAFFS_TRACE_ERROR)) TOUT(p);} while(0)
-
+#define T(mask,p) do{ if((mask) & (yaffs_traceMask | YAFFS_TRACE_ERROR)) TOUT(p);} while(0)
#ifndef CONFIG_YAFFS_WINCE
#define YBUG() T(YAFFS_TRACE_BUG,(TSTR("==>> yaffs bug: " __FILE__ " %d" TENDSTR),__LINE__))
#endif
#endif
-
-