summaryrefslogtreecommitdiff
path: root/components/dfs/filesystems
diff options
context:
space:
mode:
author[email protected] <[email protected]>2012-11-27 06:15:51 +0000
committer[email protected] <[email protected]>2012-11-27 06:15:51 +0000
commit564ca9400727228591a43ca1a21fbde0e04709ab (patch)
tree20f62b40289d055369f3d0d54f4f5046adc5d9fe /components/dfs/filesystems
parent3d4e0db73b7c0d7018e0c692b92a5a4fd57644c9 (diff)
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
Diffstat (limited to 'components/dfs/filesystems')
-rw-r--r--components/dfs/filesystems/jffs2/cyg/fileio/fileio.h7
-rw-r--r--components/dfs/filesystems/jffs2/dfs_jffs2.c3
-rw-r--r--components/dfs/filesystems/jffs2/include/port/codes.h (renamed from components/dfs/filesystems/jffs2/include/codes.h)0
-rw-r--r--components/dfs/filesystems/jffs2/include/port/fcntl.h (renamed from components/dfs/filesystems/jffs2/include/fcntl.h)55
-rw-r--r--components/dfs/filesystems/jffs2/include/port/sys/stat.h (renamed from components/dfs/filesystems/jffs2/include/os_sys_stat.h)706
-rw-r--r--components/dfs/filesystems/jffs2/include/port/sys/types.h (renamed from components/dfs/filesystems/jffs2/include/sys/types.h)0
-rw-r--r--components/dfs/filesystems/jffs2/kernel/linux/errno.h2
-rw-r--r--components/dfs/filesystems/jffs2/kernel/linux/stat.h2
-rw-r--r--components/dfs/filesystems/jffs2/porting.c38
-rw-r--r--components/dfs/filesystems/jffs2/src/os-ecos.h2
10 files changed, 414 insertions, 401 deletions
diff --git a/components/dfs/filesystems/jffs2/cyg/fileio/fileio.h b/components/dfs/filesystems/jffs2/cyg/fileio/fileio.h
index 69c0783d18..dbb250c857 100644
--- a/components/dfs/filesystems/jffs2/cyg/fileio/fileio.h
+++ b/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>
//=============================================================================
diff --git a/components/dfs/filesystems/jffs2/dfs_jffs2.c b/components/dfs/filesystems/jffs2/dfs_jffs2.c
index 2bbfe972bd..8bd483e9a4 100644
--- a/components/dfs/filesystems/jffs2/dfs_jffs2.c
+++ b/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>
diff --git a/components/dfs/filesystems/jffs2/include/codes.h b/components/dfs/filesystems/jffs2/include/port/codes.h
index 798c3f55d9..798c3f55d9 100644
--- a/components/dfs/filesystems/jffs2/include/codes.h
+++ b/components/dfs/filesystems/jffs2/include/port/codes.h
diff --git a/components/dfs/filesystems/jffs2/include/fcntl.h b/components/dfs/filesystems/jffs2/include/port/fcntl.h
index 3068514191..bd50c7b9a3 100644
--- a/components/dfs/filesystems/jffs2/include/fcntl.h
+++ b/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 */
diff --git a/components/dfs/filesystems/jffs2/include/os_sys_stat.h b/components/dfs/filesystems/jffs2/include/port/sys/stat.h
index af3a049887..783c1d8d6c 100644
--- a/components/dfs/filesystems/jffs2/include/os_sys_stat.h
+++ b/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 */
+
diff --git a/components/dfs/filesystems/jffs2/include/sys/types.h b/components/dfs/filesystems/jffs2/include/port/sys/types.h
index da39add457..da39add457 100644
--- a/components/dfs/filesystems/jffs2/include/sys/types.h
+++ b/components/dfs/filesystems/jffs2/include/port/sys/types.h
diff --git a/components/dfs/filesystems/jffs2/kernel/linux/errno.h b/components/dfs/filesystems/jffs2/kernel/linux/errno.h
index 84d78c5bc9..1d04acaaa7 100644
--- a/components/dfs/filesystems/jffs2/kernel/linux/errno.h
+++ b/components/dfs/filesystems/jffs2/kernel/linux/errno.h
@@ -1,2 +1,2 @@
//#include <errno.h>
-#include "codes.h" //fixme
+#include "port/codes.h" //fixme
diff --git a/components/dfs/filesystems/jffs2/kernel/linux/stat.h b/components/dfs/filesystems/jffs2/kernel/linux/stat.h
index 5ed08194a0..8c79205229 100644
--- a/components/dfs/filesystems/jffs2/kernel/linux/stat.h
+++ b/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)
diff --git a/components/dfs/filesystems/jffs2/porting.c b/components/dfs/filesystems/jffs2/porting.c
index c94072733a..ec8c0e0fea 100644
--- a/components/dfs/filesystems/jffs2/porting.c
+++ b/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);
+}
diff --git a/components/dfs/filesystems/jffs2/src/os-ecos.h b/components/dfs/filesystems/jffs2/src/os-ecos.h
index 77b9632c14..cd066e1b7d 100644
--- a/components/dfs/filesystems/jffs2/src/os-ecos.h
+++ b/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