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-2011 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#include <linux/bug.h>
  21#include <linux/types.h>
  22
  23/* Definition of types */
  24#ifdef CONFIG_YAFFS_DEFINES_TYPES
  25typedef unsigned char u8;
  26typedef unsigned short u16;
  27typedef unsigned u32;
  28#endif
  29
  30
  31#ifdef CONFIG_YAFFS_PROVIDE_DEFS
  32/* File types */
  33
  34
  35#define DT_UNKNOWN      0
  36#define DT_FIFO         1
  37#define DT_CHR          2
  38#define DT_DIR          4
  39#define DT_BLK          6
  40#define DT_REG          8
  41#define DT_LNK          10
  42#define DT_SOCK         12
  43#define DT_WHT          14
  44
  45
  46/*
  47 * Attribute flags.
  48 * These are or-ed together to select what has been changed.
  49 */
  50#define ATTR_MODE       1
  51#define ATTR_UID        2
  52#define ATTR_GID        4
  53#define ATTR_SIZE       8
  54#define ATTR_ATIME      16
  55#define ATTR_MTIME      32
  56#define ATTR_CTIME      64
  57
  58struct iattr {
  59        unsigned int ia_valid;
  60        unsigned ia_mode;
  61        unsigned ia_uid;
  62        unsigned ia_gid;
  63        unsigned ia_size;
  64        unsigned ia_atime;
  65        unsigned ia_mtime;
  66        unsigned ia_ctime;
  67        unsigned int ia_attr_flags;
  68};
  69
  70#endif
  71
  72
  73
  74#if defined CONFIG_YAFFS_WINCE
  75
  76#include "ywinceenv.h"
  77
  78
  79#elif defined CONFIG_YAFFS_DIRECT
  80
  81/* Direct interface */
  82#include "ydirectenv.h"
  83
  84#elif defined CONFIG_YAFFS_UTIL
  85
  86#include "yutilsenv.h"
  87
  88#else
  89/* Should have specified a configuration type */
  90#error Unknown configuration
  91
  92#endif
  93
  94#if defined(CONFIG_YAFFS_DIRECT) || defined(CONFIG_YAFFS_WINCE)
  95
  96#ifdef CONFIG_YAFFSFS_PROVIDE_VALUES
  97
  98#ifndef O_RDONLY
  99#define O_RDONLY        00
 100#endif
 101
 102#ifndef O_WRONLY
 103#define O_WRONLY        01
 104#endif
 105
 106#ifndef O_RDWR
 107#define O_RDWR          02
 108#endif
 109
 110#ifndef O_CREAT
 111#define O_CREAT         0100
 112#endif
 113
 114#ifndef O_EXCL
 115#define O_EXCL          0200
 116#endif
 117
 118#ifndef O_TRUNC
 119#define O_TRUNC         01000
 120#endif
 121
 122#ifndef O_APPEND
 123#define O_APPEND        02000
 124#endif
 125
 126#ifndef SEEK_SET
 127#define SEEK_SET        0
 128#endif
 129
 130#ifndef SEEK_CUR
 131#define SEEK_CUR        1
 132#endif
 133
 134#ifndef SEEK_END
 135#define SEEK_END        2
 136#endif
 137
 138#ifndef EBUSY
 139#define EBUSY   16
 140#endif
 141
 142#ifndef ENODEV
 143#define ENODEV  19
 144#endif
 145
 146#ifndef EINVAL
 147#define EINVAL  22
 148#endif
 149
 150#ifndef ENFILE
 151#define ENFILE  23
 152#endif
 153
 154#ifndef EBADF
 155#define EBADF   9
 156#endif
 157
 158#ifndef EACCES
 159#define EACCES  13
 160#endif
 161
 162#ifndef EXDEV
 163#define EXDEV   18
 164#endif
 165
 166#ifndef ENOENT
 167#define ENOENT  2
 168#endif
 169
 170#ifndef ENOSPC
 171#define ENOSPC  28
 172#endif
 173
 174#ifndef EROFS
 175#define EROFS   30
 176#endif
 177
 178#ifndef ERANGE
 179#define ERANGE 34
 180#endif
 181
 182#ifndef ENODATA
 183#define ENODATA 61
 184#endif
 185
 186#ifndef ENOTEMPTY
 187#define ENOTEMPTY 39
 188#endif
 189
 190#ifndef ENAMETOOLONG
 191#define ENAMETOOLONG 36
 192#endif
 193
 194#ifndef ENOMEM
 195#define ENOMEM 12
 196#endif
 197
 198#ifndef EFAULT
 199#define EFAULT 14
 200#endif
 201
 202#ifndef EEXIST
 203#define EEXIST 17
 204#endif
 205
 206#ifndef ENOTDIR
 207#define ENOTDIR 20
 208#endif
 209
 210#ifndef EISDIR
 211#define EISDIR 21
 212#endif
 213
 214#ifndef ELOOP
 215#define ELOOP   40
 216#endif
 217
 218
 219/* Mode flags */
 220
 221#ifndef S_IFMT
 222#define S_IFMT          0170000
 223#endif
 224
 225#ifndef S_IFSOCK
 226#define S_IFSOCK        0140000
 227#endif
 228
 229#ifndef S_IFIFO
 230#define S_IFIFO         0010000
 231#endif
 232
 233#ifndef S_IFCHR
 234#define S_IFCHR         0020000
 235#endif
 236
 237#ifndef S_IFBLK
 238#define S_IFBLK         0060000
 239#endif
 240
 241#ifndef S_IFLNK
 242#define S_IFLNK         0120000
 243#endif
 244
 245#ifndef S_IFDIR
 246#define S_IFDIR         0040000
 247#endif
 248
 249#ifndef S_IFREG
 250#define S_IFREG         0100000
 251#endif
 252
 253#define S_ISSOCK(m)     (((m) & S_IFMT) == S_IFSOCK)
 254#define S_ISLNK(m)      (((m) & S_IFMT) == S_IFLNK)
 255#define S_ISDIR(m)      (((m) & S_IFMT) == S_IFDIR)
 256#define S_ISREG(m)      (((m) & S_IFMT) == S_IFREG)
 257#define S_ISBLK(m)      (((m) & S_IFMT) == S_IFBLK)
 258#define S_ISCHR(m)      (((m) & S_IFMT) == S_IFCHR)
 259#define S_ISFIFO(m)     (((m) & S_IFMT) == S_IFIFO)
 260
 261
 262#ifndef S_IREAD
 263#define S_IREAD         0000400
 264#endif
 265
 266#ifndef S_IWRITE
 267#define S_IWRITE        0000200
 268#endif
 269
 270#ifndef S_IEXEC
 271#define S_IEXEC 0000100
 272#endif
 273
 274#ifndef XATTR_CREATE
 275#define XATTR_CREATE 1
 276#endif
 277
 278#ifndef XATTR_REPLACE
 279#define XATTR_REPLACE 2
 280#endif
 281
 282#ifndef R_OK
 283#define R_OK    4
 284#define W_OK    2
 285#define X_OK    1
 286#define F_OK    0
 287#endif
 288
 289#else
 290#include <errno.h>
 291#include <sys/stat.h>
 292#include <fcntl.h>
 293#endif
 294
 295#endif
 296
 297#ifndef Y_DUMP_STACK
 298#define Y_DUMP_STACK() do { } while (0)
 299#endif
 300
 301#ifndef BUG
 302#define BUG() do {\
 303        yaffs_trace(YAFFS_TRACE_BUG,\
 304                "==>> yaffs bug: " __FILE__ " %d",\
 305                __LINE__);\
 306        Y_DUMP_STACK();\
 307} while (0)
 308#endif
 309
 310#endif
 311