瀏覽代碼

update jffs2, now it can be built with gcc(NEWLIB is needed!)

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2453 bbd45198-f89e-11dd-88c7-29a3b14d5316
goprife@gmail.com 12 年之前
父節點
當前提交
564ca94007

+ 6 - 1
components/dfs/filesystems/jffs2/cyg/fileio/fileio.h

@@ -67,9 +67,14 @@
 #endif
 
 #include <stddef.h>             // NULL, size_t
-#include <limits.h>
+#include <limits.h>
+#if defined(__GNUC__) && !defined(__CC_ARM)
 #include <sys/types.h>
 #include <fcntl.h>
+#else
+#include <port/sys/types.h>
+#include <port/fcntl.h>
+#endif
 //#include "os_sys_stat.h"//#include <sys/stat.h>
 
 //=============================================================================

+ 2 - 1
components/dfs/filesystems/jffs2/dfs_jffs2.c

@@ -16,7 +16,8 @@
 
 #include "cyg/infra/cyg_type.h"
 #include "cyg/fileio/fileio.h"
-#include "codes.h"
+#include "port/codes.h"
+#include "port/fcntl.h"
 #undef mode_t
 
 #include <dfs_fs.h>

+ 0 - 0
components/dfs/filesystems/jffs2/include/codes.h → components/dfs/filesystems/jffs2/include/port/codes.h


+ 30 - 25
components/dfs/filesystems/jffs2/include/fcntl.h → components/dfs/filesystems/jffs2/include/port/fcntl.h

@@ -1,6 +1,35 @@
 #ifndef CYGONCE_ISO_FCNTL_H
 #define CYGONCE_ISO_FCNTL_H
+/*------------------------------------------------------------------------*/
+/* for dfs_jffs2.c                                                        */
+/*------------------------------------------------------------------------*/
+/* File access modes used for open() and fnctl() */
+#define JFFS2_O_RDONLY     (DFS_O_RDONLY)   /* Open for reading only */
+#define JFFS2_O_WRONLY     (DFS_O_WRONLY)   /* Open for writing only */
+#define JFFS2_O_RDWR       (DFS_O_RDONLY|DFS_O_WRONLY) /* Open for reading and writing */
+
+/* File access mode mask */
+#define JFFS2_O_ACCMODE    (DFS_O_RDONLY|DFS_O_RDWR|DFS_O_WRONLY)
+
+/* open() mode flags */
+
+#define JFFS2_O_CREAT      (DFS_O_CREAT)   /* Create file it it does not exist */
+#define JFFS2_O_EXCL       (DFS_O_EXCL)    /* Exclusive use */
+#define JFFS2_O_NOCTTY     (DFS_O_NOCTTY)  /* Do not assign a controlling terminal */
+#define JFFS2_O_TRUNC      (DFS_O_TRUNC)   /* Truncate */
+
+/* File status flags used for open() and fcntl() */
+#define JFFS2_O_APPEND     (DFS_O_APPEND)  /* Set append mode */
+#define JFFS2_O_DSYNC      (DFS_O_DSYNC)   /* Synchronized I/O data integrity writes */
+#define JFFS2_O_NONBLOCK   (DFS_O_NONBLOCK)/* No delay */
+#define JFFS2_O_RSYNC      (DFS_O_RSYNC)   /* Synchronized read I/O */
+#define JFFS2_O_SYNC       (DFS_O_SYNC)    /* Synchronized I/O file integrity writes */
+
 
+/*------------------------------------------------------------------------*/
+/* for dfs_jffs2.c                                                        */
+/*------------------------------------------------------------------------*/
+#if defined(__CC_ARM) || defined(MSVC)
 /* File access modes used for open() and fnctl() */
 #define O_RDONLY     (1<<0)   /* Open for reading only */
 #define O_WRONLY     (1<<1)   /* Open for writing only */
@@ -23,31 +52,7 @@
 #define O_RSYNC      (1<<10)   /* Synchronized read I/O */
 #define O_SYNC       (1<<11)   /* Synchronized I/O file integrity writes */
 
-/*------------------------------------------------------------------------*/
-/* for dfs_jffs2.c                                                             */
-/*------------------------------------------------------------------------*/
-/* File access modes used for open() and fnctl() */
-#define JFFS2_O_RDONLY     (1<<0)   /* Open for reading only */
-#define JFFS2_O_WRONLY     (1<<1)   /* Open for writing only */
-#define JFFS2_O_RDWR       (O_RDONLY|O_WRONLY) /* Open for reading and writing */
-
-/* File access mode mask */
-#define JFFS2_O_ACCMODE    (O_RDONLY|O_RDWR|O_WRONLY)
-
-/* open() mode flags */
-
-#define JFFS2_O_CREAT      (1<<3)    /* Create file it it does not exist */
-#define JFFS2_O_EXCL       (1<<4)    /* Exclusive use */
-#define JFFS2_O_NOCTTY     (1<<5)    /* Do not assign a controlling terminal */
-#define JFFS2_O_TRUNC      (1<<6)    /* Truncate */
-
-/* File status flags used for open() and fcntl() */
-#define JFFS2_O_APPEND     (1<<7)    /* Set append mode */
-#define JFFS2_O_DSYNC      (1<<8)    /* Synchronized I/O data integrity writes */
-#define JFFS2_O_NONBLOCK   (1<<9)    /* No delay */
-#define JFFS2_O_RSYNC      (1<<10)   /* Synchronized read I/O */
-#define JFFS2_O_SYNC       (1<<11)   /* Synchronized I/O file integrity writes */
-
 #endif /* CYGONCE_ISO_FCNTL_H multiple inclusion protection */
+#endif
 
 /* EOF fcntl.h */

+ 354 - 352
components/dfs/filesystems/jffs2/include/os_sys_stat.h → components/dfs/filesystems/jffs2/include/port/sys/stat.h

@@ -1,352 +1,354 @@
-#ifndef CYGONCE_ISO_SYS_TYPES_H
-#define CYGONCE_ISO_SYS_TYPES_H
-/*========================================================================
-//
-//      sys/types.h
-//
-//      POSIX types
-//
-//========================================================================
-// ####ECOSGPLCOPYRIGHTBEGIN####
-// -------------------------------------------
-// This file is part of eCos, the Embedded Configurable Operating System.
-// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-//
-// eCos is free software; you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation; either version 2 or (at your option) any later
-// version.
-//
-// eCos is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-// for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with eCos; if not, write to the Free Software Foundation, Inc.,
-// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-//
-// As a special exception, if other files instantiate templates or use
-// macros or inline functions from this file, or you compile this file
-// and link it with other works to produce a work based on this file,
-// this file does not by itself cause the resulting work to be covered by
-// the GNU General Public License. However the source code for this file
-// must still be made available in accordance with section (3) of the GNU
-// General Public License v2.
-//
-// This exception does not invalidate any other reasons why a work based
-// on this file might be covered by the GNU General Public License.
-// -------------------------------------------
-// ####ECOSGPLCOPYRIGHTEND####
-//========================================================================
-//#####DESCRIPTIONBEGIN####
-//
-// Author(s):     jlarmour
-// Contributors:
-// Date:          2000-04-14
-// Purpose:       This file provides various types required by POSIX 1003.1.
-// Description:   The real contents of this file get set from the
-//                configuration (set by the implementation)
-// Usage:         #include <sys/types.h>
-//
-//####DESCRIPTIONEND####
-//
-//======================================================================
-*/
-
-/* CONFIGURATION */
-
-//#include <pkgconf/system.h>
-//#include <pkgconf/isoinfra.h>          /* Configuration header */
-
-/* INCLUDES */
-
-/* This is the "standard" way to get size_t from stddef.h,
- * which is the canonical location of the definition.
- */
-//#define __need_size_t
-//#include <stddef.h>
-#include "codes.h"
-
-typedef long ssize_t;
-
-/*
-#ifndef dev_t
-typedef short dev_t;
-#endif
-
-#ifndef ino_t
-typedef unsigned int ino_t;
-#endif
-
-#ifndef mode_t
-typedef unsigned int mode_t;
-#endif
-*/
-
-typedef unsigned short nlink_t;
-typedef long off_t;
-
-typedef unsigned short gid_t;
-typedef unsigned short uid_t;
-typedef int pid_t;
-
-//
-typedef void *cyg_io_handle_t;
-
-/* Variable names for pathconf()			*/
-#define _PC_ASYNC_IO                 1
-#define	_PC_CHOWN_RESTRICTED	     2
-#define	_PC_LINK_MAX		         3
-#define	_PC_MAX_CANON		         4
-#define	_PC_MAX_INPUT		         5
-#define	_PC_NAME_MAX		         6
-#define	_PC_NO_TRUNC		         7
-#define	_PC_PATH_MAX		         8
-#define	_PC_PIPE_BUF		         9
-#define _PC_PRIO_IO                 10
-#define _PC_SYNC_IO                 11
-#define	_PC_VDISABLE		        12
-
-//limit.h
-/* DEFINES */
-
-/*-----------------------------------------------------------------------------
- * Minimum values from POSIX.1 tables 2-3, 2-7 and 2-7a.
-
- * These are the standard-mandated minimum values.
- * These values do not vary with the implementation - they may
- * simply be defined
- */
-
-/* Minimum number of operations in one list I/O call.  */
-#define _POSIX_AIO_LISTIO_MAX	2
-
-/* Minimal number of outstanding asynchronous I/O operations.  */
-#define _POSIX_AIO_MAX		1
-
-/* Maximum length of arguments to `execve', including environment.  */
-#define	_POSIX_ARG_MAX		4096
-
-/* Maximum simultaneous processes per real user ID.  */
-#define	_POSIX_CHILD_MAX	6
-
-/* Minimal number of timer expiration overruns.  */
-#define _POSIX_DELAYTIMER_MAX	32
-
-/* Maximum link count of a file.  */
-#define	_POSIX_LINK_MAX		8
-
-/* Size of storage required for a login name */
-#define _POSIX_LOGIN_NAME_MAX   9
-
-/* Number of bytes in a terminal canonical input queue.  */
-#define	_POSIX_MAX_CANON	255
-
-/* Number of bytes for which space will be
-   available in a terminal input queue.  */
-#define	_POSIX_MAX_INPUT	255
-
-/* Maximum number of message queues open for a process.  */
-#define _POSIX_MQ_OPEN_MAX	8
-
-/* Maximum number of supported message priorities.  */
-#define _POSIX_MQ_PRIO_MAX	32
-
-/* Number of bytes in a filename.  */
-#define	_POSIX_NAME_MAX		14
-
-/* Number of simultaneous supplementary group IDs per process.  */
-#define	_POSIX_NGROUPS_MAX	0
-
-/* Number of files one process can have open at once.  */
-#define	_POSIX_OPEN_MAX		16
-
-/* Number of bytes in a pathname.  */
-#define	_POSIX_PATH_MAX		255
-
-/* Number of bytes than can be written atomically to a pipe.  */
-#define	_POSIX_PIPE_BUF		512
-
-/* Minimal number of realtime signals reserved for the application.  */
-#define _POSIX_RTSIG_MAX	8
-
-/* Number of semaphores a process can have.  */
-#define _POSIX_SEM_NSEMS_MAX	256
-
-/* Maximal value of a semaphore.  */
-#define _POSIX_SEM_VALUE_MAX	32767
-
-/* Number of pending realtime signals.  */
-#define _POSIX_SIGQUEUE_MAX	32
-
-/* Largest value of a `ssize_t'.  */
-#define	_POSIX_SSIZE_MAX	32767
-
-/* Number of streams a process can have open at once.  */
-#define	_POSIX_STREAM_MAX	8
-
-/* Controlling the iterations of destructors for thread-specific data.  */
-#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS	4
-
-/* The number of data keys per process.  */
-#define _POSIX_THREAD_KEYS_MAX	128
-
-/* The number of threads per process.  */
-#define _POSIX_THREAD_THREADS_MAX	64
-
-/* Maximum number of characters in a tty name.  */
-#define	_POSIX_TTY_NAME_MAX	9
-
-/* Number of timer for a process.  */
-#define _POSIX_TIMER_MAX	32
-
-/* Maximum length of a timezone name (element of `tzname').  */
-#define	_POSIX_TZNAME_MAX	3
-
-/* Maximum clock resolution in nanoseconds.  */
-#define _POSIX_CLOCKRES_MIN	20000000
-
-
-#ifdef CYGBLD_ISO_SSIZET_HEADER
-# include CYGBLD_ISO_SSIZET_HEADER
-#else
-# ifndef __STRICT_ANSI__
-#  define SSIZE_MAX LONG_MAX
-# endif
-#endif
-
-/* INCLUDES */
-
-#ifdef CYGBLD_ISO_OPEN_MAX_HEADER
-# include CYGBLD_ISO_OPEN_MAX_HEADER
-#else
-# ifndef __STRICT_ANSI__
-#  define OPEN_MAX _POSIX_OPEN_MAX
-# endif
-#endif
-
-#ifdef CYGBLD_ISO_LINK_MAX_HEADER
-# include CYGBLD_ISO_LINK_MAX_HEADER
-#else
-# ifndef __STRICT_ANSI__
-#  define LINK_MAX _POSIX_LINK_MAX
-# endif
-#endif
-
-#ifdef CYGBLD_ISO_NAME_MAX_HEADER
-# include CYGBLD_ISO_NAME_MAX_HEADER
-#else
-# ifndef __STRICT_ANSI__
-#  define NAME_MAX _POSIX_NAME_MAX
-# endif
-#endif
-
-#ifdef CYGBLD_ISO_PATH_MAX_HEADER
-# include CYGBLD_ISO_PATH_MAX_HEADER
-#else
-# ifndef __STRICT_ANSI__
-#  define PATH_MAX _POSIX_PATH_MAX
-# endif
-#endif
-
-#if CYGINT_ISO_POSIX_LIMITS
-# ifdef CYGBLD_ISO_POSIX_LIMITS_HEADER
-#  include CYGBLD_ISO_POSIX_LIMITS_HEADER
-# endif
-#endif
-
-
-#define CYGNUM_FILEIO_MTAB_MAX  16
-
-//-----------------------------------------------
-//  stat.h need by fs-ecos.h
-//-----------------------------------------------
-#define __stat_mode_DIR    (1<<0)
-#define __stat_mode_CHR    (1<<1)
-#define __stat_mode_BLK    (1<<2)
-#define __stat_mode_REG    (1<<3)
-#define __stat_mode_FIFO   (1<<4)
-#define __stat_mode_MQ     (1<<5)
-#define __stat_mode_SEM    (1<<6)
-#define __stat_mode_SHM    (1<<7)
-#define __stat_mode_LNK    (1<<8)
-#define __stat_mode_SOCK   (1<<9)
-
-#if !defined(_POSIX_C_SOURCE) || (_POSIX_C_SOURCE >= 200112L)
-#define S_IFDIR          (__stat_mode_DIR)
-#define S_IFCHR          (__stat_mode_CHR)
-#define S_IFBLK          (__stat_mode_BLK)
-#define S_IFREG          (__stat_mode_REG)
-#define S_IFIFO          (__stat_mode_FIFO)
-#define S_IFLNK          (__stat_mode_LNK)
-#define S_IFSOCK         (__stat_mode_SOCK)
-#define S_IFMT           (S_IFDIR|S_IFCHR|S_IFBLK|S_IFREG| \
-                          S_IFIFO|S_IFLNK|S_IFSOCK)
-#endif
-
-#define S_ISDIR(__mode)  ((__mode) & __stat_mode_DIR )
-#define S_ISCHR(__mode)  ((__mode) & __stat_mode_CHR )
-#define S_ISBLK(__mode)  ((__mode) & __stat_mode_BLK )
-#define S_ISREG(__mode)  ((__mode) & __stat_mode_REG )
-#define S_ISFIFO(__mode) ((__mode) & __stat_mode_FIFO )
-#if !defined(_POSIX_C_SOURCE) || (_POSIX_C_SOURCE >= 200112L)
-#define S_ISLNK(__mode)  ((__mode) & __stat_mode_LNK )
-#define S_ISSOCK(__mode)  ((__mode) & __stat_mode_SOCK )
-#endif
-
-#define S_TYPEISMQ(__buf)   ((__buf)->st_mode & __stat_mode_MQ )
-#define S_TYPEISSEM(__buf)  ((__buf)->st_mode & __stat_mode_SEM )
-#define S_TYPEISSHM(__buf)  ((__buf)->st_mode & __stat_mode_SHM )
-
-
-#define S_IRUSR  (1<<16)
-#define S_IWUSR  (1<<17)
-#define S_IXUSR  (1<<18)
-#define S_IRWXU  (S_IRUSR|S_IWUSR|S_IXUSR)
-
-#define S_IRGRP  (1<<19)
-#define S_IWGRP  (1<<20)
-#define S_IXGRP  (1<<21)
-#define S_IRWXG  (S_IRGRP|S_IWGRP|S_IXGRP)
-
-#define S_IROTH  (1<<22)
-#define S_IWOTH  (1<<23)
-#define S_IXOTH  (1<<24)
-#define S_IRWXO  (S_IROTH|S_IWOTH|S_IXOTH)
-
-#define S_ISUID  (1<<25)
-#define S_ISGID  (1<<26)
-
-#if defined(MSVC)
-typedef unsigned long mode_t;
-typedef unsigned int ino_t;
-typedef unsigned int dev_t;
-typedef int time_t;
-#elif defined(__CC_ARM)  
-#define mode_t unsigned long
-typedef unsigned int ino_t;
-typedef unsigned int dev_t;
-typedef long time_t;
-#endif
-
-struct stat {
-    mode_t  st_mode;     /* File mode */
-    ino_t   st_ino;      /* File serial number */
-    dev_t   st_dev;      /* ID of device containing file */
-    nlink_t st_nlink;    /* Number of hard links */
-    uid_t   st_uid;      /* User ID of the file owner */
-    gid_t   st_gid;      /* Group ID of the file's group */
-    off_t   st_size;     /* File size (regular files only) */
-    time_t  st_atime;    /* Last access time */
-    time_t  st_mtime;    /* Last data modification time */
-    time_t  st_ctime;    /* Last file status change time */
-};
-
-//fcntl.h
-#define O_NONBLOCK   (1<<9)    /* No delay */
-
-#endif /* CYGONCE_ISO_SYS_TYPES_H multiple inclusion protection */
-
-/* EOF sys/types.h */
-
+#ifndef CYGONCE_ISO_SYS_TYPES_H
+#define CYGONCE_ISO_SYS_TYPES_H
+/*========================================================================
+//
+//      sys/types.h
+//
+//      POSIX types
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):     jlarmour
+// Contributors:
+// Date:          2000-04-14
+// Purpose:       This file provides various types required by POSIX 1003.1.
+// Description:   The real contents of this file get set from the
+//                configuration (set by the implementation)
+// Usage:         #include <sys/types.h>
+//
+//####DESCRIPTIONEND####
+//
+//======================================================================
+*/
+
+/* CONFIGURATION */
+
+//#include <pkgconf/system.h>
+//#include <pkgconf/isoinfra.h>          /* Configuration header */
+
+/* INCLUDES */
+
+/* This is the "standard" way to get size_t from stddef.h,
+ * which is the canonical location of the definition.
+ */
+//#define __need_size_t
+//#include <stddef.h>
+#include "port/codes.h"
+
+/*
+#ifndef dev_t
+typedef short dev_t;
+#endif
+
+#ifndef ino_t
+typedef unsigned int ino_t;
+#endif
+
+#ifndef mode_t
+typedef unsigned int mode_t;
+#endif
+*/
+
+typedef unsigned short nlink_t;
+typedef long off_t;
+
+typedef unsigned short gid_t;
+typedef unsigned short uid_t;
+typedef int pid_t;
+
+//
+typedef void *cyg_io_handle_t;
+
+/* Variable names for pathconf()			*/
+#define _PC_ASYNC_IO                 1
+#define	_PC_CHOWN_RESTRICTED	     2
+#define	_PC_LINK_MAX		         3
+#define	_PC_MAX_CANON		         4
+#define	_PC_MAX_INPUT		         5
+#define	_PC_NAME_MAX		         6
+#define	_PC_NO_TRUNC		         7
+#define	_PC_PATH_MAX		         8
+#define	_PC_PIPE_BUF		         9
+#define _PC_PRIO_IO                 10
+#define _PC_SYNC_IO                 11
+#define	_PC_VDISABLE		        12
+
+//limit.h
+/* DEFINES */
+
+/*-----------------------------------------------------------------------------
+ * Minimum values from POSIX.1 tables 2-3, 2-7 and 2-7a.
+
+ * These are the standard-mandated minimum values.
+ * These values do not vary with the implementation - they may
+ * simply be defined
+ */
+
+/* Minimum number of operations in one list I/O call.  */
+#define _POSIX_AIO_LISTIO_MAX	2
+
+/* Minimal number of outstanding asynchronous I/O operations.  */
+#define _POSIX_AIO_MAX		1
+
+/* Maximum length of arguments to `execve', including environment.  */
+#define	_POSIX_ARG_MAX		4096
+
+/* Maximum simultaneous processes per real user ID.  */
+#define	_POSIX_CHILD_MAX	6
+
+/* Minimal number of timer expiration overruns.  */
+#define _POSIX_DELAYTIMER_MAX	32
+
+/* Maximum link count of a file.  */
+#define	_POSIX_LINK_MAX		8
+
+/* Size of storage required for a login name */
+#define _POSIX_LOGIN_NAME_MAX   9
+
+/* Number of bytes in a terminal canonical input queue.  */
+#define	_POSIX_MAX_CANON	255
+
+/* Number of bytes for which space will be
+   available in a terminal input queue.  */
+#define	_POSIX_MAX_INPUT	255
+
+/* Maximum number of message queues open for a process.  */
+#define _POSIX_MQ_OPEN_MAX	8
+
+/* Maximum number of supported message priorities.  */
+#define _POSIX_MQ_PRIO_MAX	32
+
+/* Number of bytes in a filename.  */
+#define	_POSIX_NAME_MAX		14
+
+/* Number of simultaneous supplementary group IDs per process.  */
+#define	_POSIX_NGROUPS_MAX	0
+
+/* Number of files one process can have open at once.  */
+#define	_POSIX_OPEN_MAX		16
+
+/* Number of bytes in a pathname.  */
+#define	_POSIX_PATH_MAX		255
+
+/* Number of bytes than can be written atomically to a pipe.  */
+#define	_POSIX_PIPE_BUF		512
+
+/* Minimal number of realtime signals reserved for the application.  */
+#define _POSIX_RTSIG_MAX	8
+
+/* Number of semaphores a process can have.  */
+#define _POSIX_SEM_NSEMS_MAX	256
+
+/* Maximal value of a semaphore.  */
+#define _POSIX_SEM_VALUE_MAX	32767
+
+/* Number of pending realtime signals.  */
+#define _POSIX_SIGQUEUE_MAX	32
+
+/* Largest value of a `ssize_t'.  */
+#define	_POSIX_SSIZE_MAX	32767
+
+/* Number of streams a process can have open at once.  */
+#define	_POSIX_STREAM_MAX	8
+
+/* Controlling the iterations of destructors for thread-specific data.  */
+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS	4
+
+/* The number of data keys per process.  */
+#define _POSIX_THREAD_KEYS_MAX	128
+
+/* The number of threads per process.  */
+#define _POSIX_THREAD_THREADS_MAX	64
+
+/* Maximum number of characters in a tty name.  */
+#define	_POSIX_TTY_NAME_MAX	9
+
+/* Number of timer for a process.  */
+#define _POSIX_TIMER_MAX	32
+
+/* Maximum length of a timezone name (element of `tzname').  */
+#define	_POSIX_TZNAME_MAX	3
+
+/* Maximum clock resolution in nanoseconds.  */
+#define _POSIX_CLOCKRES_MIN	20000000
+
+
+#ifdef CYGBLD_ISO_SSIZET_HEADER
+# include CYGBLD_ISO_SSIZET_HEADER
+#else
+# ifndef __STRICT_ANSI__
+#  define SSIZE_MAX LONG_MAX
+# endif
+#endif
+
+/* INCLUDES */
+
+#ifdef CYGBLD_ISO_OPEN_MAX_HEADER
+# include CYGBLD_ISO_OPEN_MAX_HEADER
+#else
+# ifndef __STRICT_ANSI__
+#  define OPEN_MAX _POSIX_OPEN_MAX
+# endif
+#endif
+
+#ifdef CYGBLD_ISO_LINK_MAX_HEADER
+# include CYGBLD_ISO_LINK_MAX_HEADER
+#else
+# ifndef __STRICT_ANSI__
+#  define LINK_MAX _POSIX_LINK_MAX
+# endif
+#endif
+
+#ifdef CYGBLD_ISO_NAME_MAX_HEADER
+# include CYGBLD_ISO_NAME_MAX_HEADER
+#else
+# ifndef __STRICT_ANSI__
+#  define NAME_MAX _POSIX_NAME_MAX
+# endif
+#endif
+
+#ifdef CYGBLD_ISO_PATH_MAX_HEADER
+# include CYGBLD_ISO_PATH_MAX_HEADER
+#else
+# ifndef __STRICT_ANSI__
+#  define PATH_MAX _POSIX_PATH_MAX
+# endif
+#endif
+
+#if CYGINT_ISO_POSIX_LIMITS
+# ifdef CYGBLD_ISO_POSIX_LIMITS_HEADER
+#  include CYGBLD_ISO_POSIX_LIMITS_HEADER
+# endif
+#endif
+
+
+#define CYGNUM_FILEIO_MTAB_MAX  16
+
+//-----------------------------------------------
+//  stat.h need by fs-ecos.h
+//-----------------------------------------------
+#define __stat_mode_DIR    (1<<0)
+#define __stat_mode_CHR    (1<<1)
+#define __stat_mode_BLK    (1<<2)
+#define __stat_mode_REG    (1<<3)
+#define __stat_mode_FIFO   (1<<4)
+#define __stat_mode_MQ     (1<<5)
+#define __stat_mode_SEM    (1<<6)
+#define __stat_mode_SHM    (1<<7)
+#define __stat_mode_LNK    (1<<8)
+#define __stat_mode_SOCK   (1<<9)
+
+#if !defined(_POSIX_C_SOURCE) || (_POSIX_C_SOURCE >= 200112L)
+#define S_IFDIR          (__stat_mode_DIR)
+#define S_IFCHR          (__stat_mode_CHR)
+#define S_IFBLK          (__stat_mode_BLK)
+#define S_IFREG          (__stat_mode_REG)
+#define S_IFIFO          (__stat_mode_FIFO)
+#define S_IFLNK          (__stat_mode_LNK)
+#define S_IFSOCK         (__stat_mode_SOCK)
+#define S_IFMT           (S_IFDIR|S_IFCHR|S_IFBLK|S_IFREG| \
+                          S_IFIFO|S_IFLNK|S_IFSOCK)
+#endif
+
+#define S_ISDIR(__mode)  ((__mode) & __stat_mode_DIR )
+#define S_ISCHR(__mode)  ((__mode) & __stat_mode_CHR )
+#define S_ISBLK(__mode)  ((__mode) & __stat_mode_BLK )
+#define S_ISREG(__mode)  ((__mode) & __stat_mode_REG )
+#define S_ISFIFO(__mode) ((__mode) & __stat_mode_FIFO )
+#if !defined(_POSIX_C_SOURCE) || (_POSIX_C_SOURCE >= 200112L)
+#define S_ISLNK(__mode)  ((__mode) & __stat_mode_LNK )
+#define S_ISSOCK(__mode)  ((__mode) & __stat_mode_SOCK )
+#endif
+
+#define S_TYPEISMQ(__buf)   ((__buf)->st_mode & __stat_mode_MQ )
+#define S_TYPEISSEM(__buf)  ((__buf)->st_mode & __stat_mode_SEM )
+#define S_TYPEISSHM(__buf)  ((__buf)->st_mode & __stat_mode_SHM )
+
+
+#define S_IRUSR  (1<<16)
+#define S_IWUSR  (1<<17)
+#define S_IXUSR  (1<<18)
+#define S_IRWXU  (S_IRUSR|S_IWUSR|S_IXUSR)
+
+#define S_IRGRP  (1<<19)
+#define S_IWGRP  (1<<20)
+#define S_IXGRP  (1<<21)
+#define S_IRWXG  (S_IRGRP|S_IWGRP|S_IXGRP)
+
+#define S_IROTH  (1<<22)
+#define S_IWOTH  (1<<23)
+#define S_IXOTH  (1<<24)
+#define S_IRWXO  (S_IROTH|S_IWOTH|S_IXOTH)
+
+#define S_ISUID  (1<<25)
+#define S_ISGID  (1<<26)
+
+#if defined(MSVC)
+typedef unsigned long mode_t;
+typedef unsigned int ino_t;
+typedef unsigned int dev_t;
+typedef int time_t;
+typedef long ssize_t;
+#elif defined(__CC_ARM)  
+#define mode_t unsigned long
+typedef unsigned int ino_t;
+typedef unsigned int dev_t;
+typedef long ssize_t;
+typedef long time_t;
+#elif defined(__GNUC__) && !defined(__CC_ARM)
+#include <sys/types.h>
+#endif
+
+struct stat {
+    mode_t  st_mode;     /* File mode */
+    ino_t   st_ino;      /* File serial number */
+    dev_t   st_dev;      /* ID of device containing file */
+    nlink_t st_nlink;    /* Number of hard links */
+    uid_t   st_uid;      /* User ID of the file owner */
+    gid_t   st_gid;      /* Group ID of the file's group */
+    off_t   st_size;     /* File size (regular files only) */
+    time_t  st_atime;    /* Last access time */
+    time_t  st_mtime;    /* Last data modification time */
+    time_t  st_ctime;    /* Last file status change time */
+};
+
+//fcntl.h
+#define O_NONBLOCK   (1<<9)    /* No delay */
+
+#endif /* CYGONCE_ISO_SYS_TYPES_H multiple inclusion protection */
+
+/* EOF sys/types.h */
+

+ 0 - 0
components/dfs/filesystems/jffs2/include/sys/types.h → components/dfs/filesystems/jffs2/include/port/sys/types.h


+ 1 - 1
components/dfs/filesystems/jffs2/kernel/linux/errno.h

@@ -1,2 +1,2 @@
 //#include <errno.h>
-#include "codes.h" //fixme
+#include "port/codes.h" //fixme

+ 1 - 1
components/dfs/filesystems/jffs2/kernel/linux/stat.h

@@ -2,7 +2,7 @@
 #define __LINUX_STAT_H__
 
 
-#include "os_sys_stat.h" //mod by prife
+#include "port/sys/stat.h" //mod by prife
 
 #define S_IRUGO (S_IRUSR|S_IRGRP|S_IROTH)
 #define S_IWUGO (S_IWUSR|S_IWGRP|S_IWOTH)

+ 19 - 19
components/dfs/filesystems/jffs2/porting.c

@@ -1,29 +1,29 @@
-#include <linux/kernel.h>
-#include "nodelist.h"
-
-#include "porting.h"
-
+#include <linux/kernel.h>
+#include "nodelist.h"
+
+#include "porting.h"
+
 time_t jffs2_get_timestamp(void)
 {
     return 0;
-}
-
-void jffs2_get_info_from_sb(void * data, struct jffs2_fs_info * info)
-{
-	struct jffs2_fs_info;
+}
+
+void jffs2_get_info_from_sb(void * data, struct jffs2_fs_info * info)
+{
+	struct jffs2_fs_info;
 	struct super_block *jffs2_sb;
-	struct jffs2_sb_info *c;
-
+	struct jffs2_sb_info *c;
+
 	jffs2_sb = (struct super_block *)(data);
 	c = JFFS2_SB_INFO(jffs2_sb);
 	
 	info->sector_size = c->sector_size; 
 	info->nr_blocks = c->nr_blocks;
-	info->free_size = c->free_size; //fixme need test!	
-}
-
+	info->free_size = c->free_size; //fixme need test!	
+}
+
 int jffs2_porting_stat(cyg_mtab_entry * mte, cyg_dir dir, const char *name,
-		      void * stat_buf)
-{
-	return jffs2_fste.stat(mte, mte->root, name, (struct stat *)stat_buf);	
-}
+		      void * stat_buf)
+{
+	return jffs2_fste.stat(mte, mte->root, name, (struct stat *)stat_buf);	
+}

+ 1 - 1
components/dfs/filesystems/jffs2/src/os-ecos.h

@@ -37,7 +37,7 @@
 //#else
 //#endif
 
-#include "os_sys_stat.h"//#include <sys/types.h>
+#include "port/sys/stat.h"//#include <sys/types.h>
 //#include <fcntl.h>
 //#include <sys/stat.h>
 //#include <errno.h> //fixme