X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=direct%2Fyportenv.h;h=a797c8ad0a6fc8e75ad57fb0b71bd96b7a672607;hp=700115007a26bf8b2762eb18772292dfdc7d8cba;hb=80f85303d264f804ea288e1995280345804ec01c;hpb=9efa67752f0f585c2854c45422f0724df8e38e93 diff --git a/direct/yportenv.h b/direct/yportenv.h index 7001150..a797c8a 100644 --- a/direct/yportenv.h +++ b/direct/yportenv.h @@ -1,7 +1,7 @@ /* * YAFFS: Yet another Flash File System . A NAND-flash specific file system. * - * Copyright (C) 2002-2010 Aleph One Ltd. + * Copyright (C) 2002-2011 Aleph One Ltd. * for Toby Churchill Ltd and Brightstar Engineering * * Created by Charles Manning @@ -17,65 +17,71 @@ #ifndef __YPORTENV_H__ #define __YPORTENV_H__ -/* - * Define the MTD version in terms of Linux Kernel versions - * This allows yaffs to be used independantly of the kernel - * as well as with it. - */ +/* Definition of types */ +#ifdef CONFIG_YAFFS_DEFINES_TYPES +typedef unsigned char u8; +typedef unsigned short u16; +typedef unsigned u32; +#endif -#if defined CONFIG_YAFFS_WINCE -#include "ywinceenv.h" +#ifdef CONFIG_YAFFS_PROVIDE_DEFS +/* File types */ -#elif defined CONFIG_YAFFS_DIRECT +#define DT_UNKNOWN 0 +#define DT_FIFO 1 +#define DT_CHR 2 +#define DT_DIR 4 +#define DT_BLK 6 +#define DT_REG 8 +#define DT_LNK 10 +#define DT_SOCK 12 +#define DT_WHT 14 -/* Direct interface */ -#include "ydirectenv.h" -#elif defined CONFIG_YAFFS_UTIL +/* + * Attribute flags. + * These are or-ed together to select what has been changed. + */ +#define ATTR_MODE 1 +#define ATTR_UID 2 +#define ATTR_GID 4 +#define ATTR_SIZE 8 +#define ATTR_ATIME 16 +#define ATTR_MTIME 32 +#define ATTR_CTIME 64 -/* Stuff for YAFFS utilities */ +struct iattr { + unsigned int ia_valid; + unsigned ia_mode; + unsigned ia_uid; + unsigned ia_gid; + unsigned ia_size; + unsigned ia_atime; + unsigned ia_mtime; + unsigned ia_ctime; + unsigned int ia_attr_flags; +}; -#include "stdlib.h" -#include "stdio.h" -#include "string.h" +#endif -#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(x) x -#define yaffs_strcat(a, b) strcat(a, b) -#define yaffs_strcpy(a, b) strcpy(a, b) -#define yaffs_strncpy(a, b, c) strncpy(a, b, c) -#define yaffs_strnlen(s,m) strnlen(s,m) -#define yaffs_sprintf sprintf -#define yaffs_toupper(a) toupper(a) +#if defined CONFIG_YAFFS_WINCE -#define Y_INLINE inline +#include "ywinceenv.h" -/* #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 +#elif defined CONFIG_YAFFS_DIRECT -#define YAFFS_LOSTNFOUND_NAME "lost+found" -#define YAFFS_LOSTNFOUND_PREFIX "obj" -/* #define YPRINTF(x) printf x */ +/* Direct interface */ +#include "ydirectenv.h" -#define YAFFS_ROOT_MODE 0755 -#define YAFFS_LOSTNFOUND_MODE 0700 +#elif defined CONFIG_YAFFS_UTIL -#define yaffs_sum_cmp(x, y) ((x) == (y)) -#define yaffs_strcmp(a, b) strcmp(a, b) +#include "yutilsenv.h" #else /* Should have specified a configuration type */ @@ -187,6 +193,10 @@ #define ENOMEM 12 #endif +#ifndef EFAULT +#define EFAULT 14 +#endif + #ifndef EEXIST #define EEXIST 17 #endif @@ -210,6 +220,22 @@ #define S_IFMT 0170000 #endif +#ifndef S_IFSOCK +#define S_IFSOCK 0140000 +#endif + +#ifndef S_IFIFO +#define S_IFIFO 0010000 +#endif + +#ifndef S_IFCHR +#define S_IFCHR 0020000 +#endif + +#ifndef S_IFBLK +#define S_IFBLK 0060000 +#endif + #ifndef S_IFLNK #define S_IFLNK 0120000 #endif @@ -222,6 +248,15 @@ #define S_IFREG 0100000 #endif +#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) +#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) +#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) +#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) +#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) + + #ifndef S_IREAD #define S_IREAD 0000400 #endif @@ -261,100 +296,13 @@ #define Y_DUMP_STACK() do { } while (0) #endif -#ifndef YBUG -#define YBUG() do {\ - T(YAFFS_TRACE_BUG,\ - (TSTR("==>> yaffs bug: " __FILE__ " %d" TENDSTR),\ - __LINE__));\ +#ifndef BUG +#define BUG() do {\ + yaffs_trace(YAFFS_TRACE_BUG,\ + "==>> yaffs bug: " __FILE__ " %d",\ + __LINE__);\ Y_DUMP_STACK();\ } while (0) #endif - -#endif - -/* - * YAFFS: Yet another Flash File System . A NAND-flash specific file system. - * - * Copyright (C) 2002-2010 Aleph One Ltd. - * for Toby Churchill Ltd and Brightstar Engineering - * - * Created by Charles Manning - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 2.1 as - * published by the Free Software Foundation. - * - * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL. - */ - -/* - * This file is just holds extra declarations of macros that would normally - * be provided in the Linux kernel. These macros have been written from - * scratch but are functionally equivalent to the Linux ones. - * - */ - -#ifndef __EXTRAS_H__ -#define __EXTRAS_H__ - - -/* Definition of types */ -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned u32; - - -#ifndef WIN32 -#include -#endif - - -#ifdef CONFIG_YAFFS_PROVIDE_DEFS -/* File types */ - - -#define DT_UNKNOWN 0 -#define DT_FIFO 1 -#define DT_CHR 2 -#define DT_DIR 4 -#define DT_BLK 6 -#define DT_REG 8 -#define DT_LNK 10 -#define DT_SOCK 12 -#define DT_WHT 14 - - -#ifndef WIN32 -#include -#endif - -/* - * Attribute flags. These should be or-ed together to figure out what - * has been changed! - */ -#define ATTR_MODE 1 -#define ATTR_UID 2 -#define ATTR_GID 4 -#define ATTR_SIZE 8 -#define ATTR_ATIME 16 -#define ATTR_MTIME 32 -#define ATTR_CTIME 64 - -struct iattr { - unsigned int ia_valid; - unsigned ia_mode; - unsigned ia_uid; - unsigned ia_gid; - unsigned ia_size; - unsigned ia_atime; - unsigned ia_mtime; - unsigned ia_ctime; - unsigned int ia_attr_flags; -}; - -#endif - - - #endif