uboot/fs/yaffs2/yportenv.h
<<
>>
Prefs
   1/*
   2 * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
   3 *
   4 * Copyright (C) 2002-2007 Aleph One Ltd.
   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
  20/* XXX U-BOOT XXX */
  21#ifndef CONFIG_YAFFS_DIRECT
  22#define CONFIG_YAFFS_DIRECT
  23#endif
  24
  25#if defined CONFIG_YAFFS_WINCE
  26
  27#include "ywinceenv.h"
  28
  29/* XXX U-BOOT XXX */
  30#elif  0 /* defined __KERNEL__ */
  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 */
 152extern unsigned int yaffs_traceMask;
 153extern unsigned int yaffs_wr_attempts;
 154
 155/*
 156 * Tracing flags.
 157 * The flags masked in YAFFS_TRACE_ALWAYS are always traced.
 158 */
 159
 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
 194