From 564ca9400727228591a43ca1a21fbde0e04709ab Mon Sep 17 00:00:00 2001 From: "goprife@gmail.com" Date: Tue, 27 Nov 2012 06:15:51 +0000 Subject: 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 --- .../dfs/filesystems/jffs2/cyg/fileio/fileio.h | 7 +- components/dfs/filesystems/jffs2/dfs_jffs2.c | 3 +- components/dfs/filesystems/jffs2/include/codes.h | 184 ----------- components/dfs/filesystems/jffs2/include/fcntl.h | 53 --- .../dfs/filesystems/jffs2/include/os_sys_stat.h | 352 -------------------- .../dfs/filesystems/jffs2/include/port/codes.h | 184 +++++++++++ .../dfs/filesystems/jffs2/include/port/fcntl.h | 58 ++++ .../dfs/filesystems/jffs2/include/port/sys/stat.h | 354 +++++++++++++++++++++ .../dfs/filesystems/jffs2/include/port/sys/types.h | 86 +++++ .../dfs/filesystems/jffs2/include/sys/types.h | 86 ----- .../dfs/filesystems/jffs2/kernel/linux/errno.h | 2 +- .../dfs/filesystems/jffs2/kernel/linux/stat.h | 2 +- components/dfs/filesystems/jffs2/porting.c | 38 +-- components/dfs/filesystems/jffs2/src/os-ecos.h | 2 +- 14 files changed, 712 insertions(+), 699 deletions(-) delete mode 100644 components/dfs/filesystems/jffs2/include/codes.h delete mode 100644 components/dfs/filesystems/jffs2/include/fcntl.h delete mode 100644 components/dfs/filesystems/jffs2/include/os_sys_stat.h create mode 100644 components/dfs/filesystems/jffs2/include/port/codes.h create mode 100644 components/dfs/filesystems/jffs2/include/port/fcntl.h create mode 100644 components/dfs/filesystems/jffs2/include/port/sys/stat.h create mode 100644 components/dfs/filesystems/jffs2/include/port/sys/types.h delete mode 100644 components/dfs/filesystems/jffs2/include/sys/types.h (limited to 'components') 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 // NULL, size_t -#include +#include +#if defined(__GNUC__) && !defined(__CC_ARM) #include #include +#else +#include +#include +#endif //#include "os_sys_stat.h"//#include //============================================================================= 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 diff --git a/components/dfs/filesystems/jffs2/include/codes.h b/components/dfs/filesystems/jffs2/include/codes.h deleted file mode 100644 index 798c3f55d9..0000000000 --- a/components/dfs/filesystems/jffs2/include/codes.h +++ /dev/null @@ -1,184 +0,0 @@ -#ifndef CYGONCE_ERROR_CODES_H -#define CYGONCE_ERROR_CODES_H -/*=========================================================================== -// -// codes.h -// -// Common error code definitions -// -//=========================================================================== -// ####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: jlarmour -// Date: 2000-04-14 -// Purpose: To provide a common set of error codes -// Description: This provides a common set of error codes that all -// packages can agree on. It doesn't preclude them defining -// their own error return system, but this is a preferable -// system to use to help error support be as general as -// possible. -// -// We try and conform to the ANSI/POSIX error code format, -// namely starting with the character 'E' -// -// Usage: #include -// -// Example: -// -// err=myfun(); -// if (err != ENOERR) -// { -// str=strerror(err); -// printf("myfun returned error: %s\n", str); -// } -// else .... -// -//####DESCRIPTIONEND#### -// -//=========================================================================*/ - -/* CONFIGURATION */ - -//#include prife // Configuration header - -#ifdef __cplusplus -extern "C" { -#endif - -/* TYPE DEFINITIONS */ - -/* A type for error codes which may be useful to explain the purpose of - * a variable or return code. It shows that it contains an error code - * of the type defined below */ - -typedef int Cyg_ErrNo; - - -/* CONSTANT DEFINITIONS */ - -/* If adding to this list, you must also update strerror() with its text - * If there is a common error of the same purpose on Unix, try and use its - * name and number. If not, use one above 200 to prevent future conflicts - * - * Do not use negative numbers, so that functions can return positive on - * success and -ESOMETHING on error, and it all works consistently. -*/ - -#define ENOERR 0 /* No error */ -#define EPERM 1 /* Not permitted */ -#define ENOENT 2 /* No such entity */ -#define ESRCH 3 /* No such process */ -#define EINTR 4 /* Operation interrupted */ -#define EIO 5 /* I/O error */ -#define EBADF 9 /* Bad file handle */ -#define EAGAIN 11 /* Try again later */ -#define EWOULDBLOCK EAGAIN -#define ENOMEM 12 /* Out of memory */ -#define EBUSY 16 /* Resource busy */ -#define EXDEV 18 /* Cross-device link */ -#define ENODEV 19 /* No such device */ -#define ENOTDIR 20 /* Not a directory */ -#define EISDIR 21 /* Is a directory */ -#define EINVAL 22 /* Invalid argument */ -#define ENFILE 23 /* Too many open files in system */ -#define EMFILE 24 /* Too many open files */ -#define EFBIG 27 /* File too large */ -#define ENOSPC 28 /* No space left on device */ -#define ESPIPE 29 /* Illegal seek */ -#define EROFS 30 /* Read-only file system */ -#define EDOM 33 /* Argument to math function outside valid */ - /* domain */ -#define ERANGE 34 /* Math result cannot be represented */ -#define EDEADLK 35 /* Resource deadlock would occur */ -#define EDEADLOCK EDEADLK -#define ENOSYS 38 /* Function not implemented */ -#define ENAMETOOLONG 60 /* File name too long */ -#define ENOTEMPTY 66 /* Directory not empty */ -#define ENOTSUP 95 /* Not supported error */ -#define EEOF 200 /* End of file reached */ -#define ENOSUPP 201 /* Operation not supported */ -#define EDEVNOSUPP 202 /* Device does not support this operation */ - -/* Additional errors used by networking */ -#define ENXIO 300 /* Device not configured */ -#define EACCES 301 /* Permission denied */ -#define EEXIST 302 /* File exists */ -#define ENOTTY 303 /* Inappropriate ioctl for device */ -#define EPIPE 304 /* Broken pipe */ - -/* non-blocking and interrupt i/o */ -#define EINPROGRESS 310 /* Operation now in progress */ -#define EALREADY 311 /* Operation already in progress */ - -/* ipc/network software -- argument errors */ -#define ENOTSOCK 320 /* Socket operation on non-socket */ -#define EDESTADDRREQ 321 /* Destination address required */ -#define EMSGSIZE 322 /* Message too long */ -#define EPROTOTYPE 323 /* Protocol wrong type for socket */ -#define ENOPROTOOPT 324 /* Protocol not available */ -#define EPROTONOSUPPORT 325 /* Protocol not supported */ -#define ESOCKTNOSUPPORT 326 /* Socket type not supported */ -#define EOPNOTSUPP 327 /* Operation not supported */ -#define EPFNOSUPPORT 328 /* Protocol family not supported */ -#define EAFNOSUPPORT 329 /* Address family not supported by */ - /* protocol family */ -#define EADDRINUSE 330 /* Address already in use */ -#define EADDRNOTAVAIL 331 /* Can't assign requested address */ - -/* ipc/network software -- operational errors */ -#define ENETDOWN 350 /* Network is down */ -#define ENETUNREACH 351 /* Network is unreachable */ -#define ENETRESET 352 /* Network dropped connection on reset */ -#define ECONNABORTED 353 /* Software caused connection abort */ -#define ECONNRESET 354 /* Connection reset by peer */ -#define ENOBUFS 355 /* No buffer space available */ -#define EISCONN 356 /* Socket is already connected */ -#define ENOTCONN 357 /* Socket is not connected */ -#define ESHUTDOWN 358 /* Can't send after socket shutdown */ -#define ETOOMANYREFS 359 /* Too many references: can't splice */ -#define ETIMEDOUT 360 /* Operation timed out */ -#define ECONNREFUSED 361 /* Connection refused */ - -#define EHOSTDOWN 364 /* Host is down */ -#define EHOSTUNREACH 365 /* No route to host */ - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* CYGONCE_ERROR_CODES_H multiple inclusion protection */ - -/* EOF codes.h */ diff --git a/components/dfs/filesystems/jffs2/include/fcntl.h b/components/dfs/filesystems/jffs2/include/fcntl.h deleted file mode 100644 index 3068514191..0000000000 --- a/components/dfs/filesystems/jffs2/include/fcntl.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef CYGONCE_ISO_FCNTL_H -#define CYGONCE_ISO_FCNTL_H - -/* 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 */ -#define O_RDWR (O_RDONLY|O_WRONLY) /* Open for reading and writing */ - -/* File access mode mask */ -#define O_ACCMODE (O_RDONLY|O_RDWR|O_WRONLY) - -/* open() mode flags */ - -#define O_CREAT (1<<3) /* Create file it it does not exist */ -#define O_EXCL (1<<4) /* Exclusive use */ -#define O_NOCTTY (1<<5) /* Do not assign a controlling terminal */ -#define O_TRUNC (1<<6) /* Truncate */ - -/* File status flags used for open() and fcntl() */ -#define O_APPEND (1<<7) /* Set append mode */ -#define O_DSYNC (1<<8) /* Synchronized I/O data integrity writes */ -#define O_NONBLOCK (1<<9) /* No delay */ -#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 */ - -/* EOF fcntl.h */ diff --git a/components/dfs/filesystems/jffs2/include/os_sys_stat.h b/components/dfs/filesystems/jffs2/include/os_sys_stat.h deleted file mode 100644 index af3a049887..0000000000 --- a/components/dfs/filesystems/jffs2/include/os_sys_stat.h +++ /dev/null @@ -1,352 +0,0 @@ -#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 -// -//####DESCRIPTIONEND#### -// -//====================================================================== -*/ - -/* CONFIGURATION */ - -//#include -//#include /* 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 -#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 */ - diff --git a/components/dfs/filesystems/jffs2/include/port/codes.h b/components/dfs/filesystems/jffs2/include/port/codes.h new file mode 100644 index 0000000000..798c3f55d9 --- /dev/null +++ b/components/dfs/filesystems/jffs2/include/port/codes.h @@ -0,0 +1,184 @@ +#ifndef CYGONCE_ERROR_CODES_H +#define CYGONCE_ERROR_CODES_H +/*=========================================================================== +// +// codes.h +// +// Common error code definitions +// +//=========================================================================== +// ####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: jlarmour +// Date: 2000-04-14 +// Purpose: To provide a common set of error codes +// Description: This provides a common set of error codes that all +// packages can agree on. It doesn't preclude them defining +// their own error return system, but this is a preferable +// system to use to help error support be as general as +// possible. +// +// We try and conform to the ANSI/POSIX error code format, +// namely starting with the character 'E' +// +// Usage: #include +// +// Example: +// +// err=myfun(); +// if (err != ENOERR) +// { +// str=strerror(err); +// printf("myfun returned error: %s\n", str); +// } +// else .... +// +//####DESCRIPTIONEND#### +// +//=========================================================================*/ + +/* CONFIGURATION */ + +//#include prife // Configuration header + +#ifdef __cplusplus +extern "C" { +#endif + +/* TYPE DEFINITIONS */ + +/* A type for error codes which may be useful to explain the purpose of + * a variable or return code. It shows that it contains an error code + * of the type defined below */ + +typedef int Cyg_ErrNo; + + +/* CONSTANT DEFINITIONS */ + +/* If adding to this list, you must also update strerror() with its text + * If there is a common error of the same purpose on Unix, try and use its + * name and number. If not, use one above 200 to prevent future conflicts + * + * Do not use negative numbers, so that functions can return positive on + * success and -ESOMETHING on error, and it all works consistently. +*/ + +#define ENOERR 0 /* No error */ +#define EPERM 1 /* Not permitted */ +#define ENOENT 2 /* No such entity */ +#define ESRCH 3 /* No such process */ +#define EINTR 4 /* Operation interrupted */ +#define EIO 5 /* I/O error */ +#define EBADF 9 /* Bad file handle */ +#define EAGAIN 11 /* Try again later */ +#define EWOULDBLOCK EAGAIN +#define ENOMEM 12 /* Out of memory */ +#define EBUSY 16 /* Resource busy */ +#define EXDEV 18 /* Cross-device link */ +#define ENODEV 19 /* No such device */ +#define ENOTDIR 20 /* Not a directory */ +#define EISDIR 21 /* Is a directory */ +#define EINVAL 22 /* Invalid argument */ +#define ENFILE 23 /* Too many open files in system */ +#define EMFILE 24 /* Too many open files */ +#define EFBIG 27 /* File too large */ +#define ENOSPC 28 /* No space left on device */ +#define ESPIPE 29 /* Illegal seek */ +#define EROFS 30 /* Read-only file system */ +#define EDOM 33 /* Argument to math function outside valid */ + /* domain */ +#define ERANGE 34 /* Math result cannot be represented */ +#define EDEADLK 35 /* Resource deadlock would occur */ +#define EDEADLOCK EDEADLK +#define ENOSYS 38 /* Function not implemented */ +#define ENAMETOOLONG 60 /* File name too long */ +#define ENOTEMPTY 66 /* Directory not empty */ +#define ENOTSUP 95 /* Not supported error */ +#define EEOF 200 /* End of file reached */ +#define ENOSUPP 201 /* Operation not supported */ +#define EDEVNOSUPP 202 /* Device does not support this operation */ + +/* Additional errors used by networking */ +#define ENXIO 300 /* Device not configured */ +#define EACCES 301 /* Permission denied */ +#define EEXIST 302 /* File exists */ +#define ENOTTY 303 /* Inappropriate ioctl for device */ +#define EPIPE 304 /* Broken pipe */ + +/* non-blocking and interrupt i/o */ +#define EINPROGRESS 310 /* Operation now in progress */ +#define EALREADY 311 /* Operation already in progress */ + +/* ipc/network software -- argument errors */ +#define ENOTSOCK 320 /* Socket operation on non-socket */ +#define EDESTADDRREQ 321 /* Destination address required */ +#define EMSGSIZE 322 /* Message too long */ +#define EPROTOTYPE 323 /* Protocol wrong type for socket */ +#define ENOPROTOOPT 324 /* Protocol not available */ +#define EPROTONOSUPPORT 325 /* Protocol not supported */ +#define ESOCKTNOSUPPORT 326 /* Socket type not supported */ +#define EOPNOTSUPP 327 /* Operation not supported */ +#define EPFNOSUPPORT 328 /* Protocol family not supported */ +#define EAFNOSUPPORT 329 /* Address family not supported by */ + /* protocol family */ +#define EADDRINUSE 330 /* Address already in use */ +#define EADDRNOTAVAIL 331 /* Can't assign requested address */ + +/* ipc/network software -- operational errors */ +#define ENETDOWN 350 /* Network is down */ +#define ENETUNREACH 351 /* Network is unreachable */ +#define ENETRESET 352 /* Network dropped connection on reset */ +#define ECONNABORTED 353 /* Software caused connection abort */ +#define ECONNRESET 354 /* Connection reset by peer */ +#define ENOBUFS 355 /* No buffer space available */ +#define EISCONN 356 /* Socket is already connected */ +#define ENOTCONN 357 /* Socket is not connected */ +#define ESHUTDOWN 358 /* Can't send after socket shutdown */ +#define ETOOMANYREFS 359 /* Too many references: can't splice */ +#define ETIMEDOUT 360 /* Operation timed out */ +#define ECONNREFUSED 361 /* Connection refused */ + +#define EHOSTDOWN 364 /* Host is down */ +#define EHOSTUNREACH 365 /* No route to host */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* CYGONCE_ERROR_CODES_H multiple inclusion protection */ + +/* EOF codes.h */ diff --git a/components/dfs/filesystems/jffs2/include/port/fcntl.h b/components/dfs/filesystems/jffs2/include/port/fcntl.h new file mode 100644 index 0000000000..bd50c7b9a3 --- /dev/null +++ b/components/dfs/filesystems/jffs2/include/port/fcntl.h @@ -0,0 +1,58 @@ +#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 */ +#define O_RDWR (O_RDONLY|O_WRONLY) /* Open for reading and writing */ + +/* File access mode mask */ +#define O_ACCMODE (O_RDONLY|O_RDWR|O_WRONLY) + +/* open() mode flags */ + +#define O_CREAT (1<<3) /* Create file it it does not exist */ +#define O_EXCL (1<<4) /* Exclusive use */ +#define O_NOCTTY (1<<5) /* Do not assign a controlling terminal */ +#define O_TRUNC (1<<6) /* Truncate */ + +/* File status flags used for open() and fcntl() */ +#define O_APPEND (1<<7) /* Set append mode */ +#define O_DSYNC (1<<8) /* Synchronized I/O data integrity writes */ +#define O_NONBLOCK (1<<9) /* No delay */ +#define O_RSYNC (1<<10) /* Synchronized read I/O */ +#define 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/port/sys/stat.h b/components/dfs/filesystems/jffs2/include/port/sys/stat.h new file mode 100644 index 0000000000..783c1d8d6c --- /dev/null +++ b/components/dfs/filesystems/jffs2/include/port/sys/stat.h @@ -0,0 +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 +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +//#include +//#include /* 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 +#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 +#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/port/sys/types.h b/components/dfs/filesystems/jffs2/include/port/sys/types.h new file mode 100644 index 0000000000..da39add457 --- /dev/null +++ b/components/dfs/filesystems/jffs2/include/port/sys/types.h @@ -0,0 +1,86 @@ +#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 +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +//#include +//#include /* 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 + +typedef long ssize_t; + +typedef short dev_t; +typedef unsigned int ino_t; +typedef unsigned short nlink_t; +typedef long off_t; + +typedef unsigned short gid_t; +typedef unsigned short uid_t; +typedef int pid_t; + +typedef int time_t; +//#include "os_sys_stat.h" +#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/sys/types.h deleted file mode 100644 index da39add457..0000000000 --- a/components/dfs/filesystems/jffs2/include/sys/types.h +++ /dev/null @@ -1,86 +0,0 @@ -#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 -// -//####DESCRIPTIONEND#### -// -//====================================================================== -*/ - -/* CONFIGURATION */ - -//#include -//#include /* 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 - -typedef long ssize_t; - -typedef short dev_t; -typedef unsigned int ino_t; -typedef unsigned short nlink_t; -typedef long off_t; - -typedef unsigned short gid_t; -typedef unsigned short uid_t; -typedef int pid_t; - -typedef int time_t; -//#include "os_sys_stat.h" -#endif /* CYGONCE_ISO_SYS_TYPES_H multiple inclusion protection */ - -/* EOF 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 -#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 -#include "nodelist.h" - -#include "porting.h" - +#include +#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 +#include "port/sys/stat.h"//#include //#include //#include //#include //fixme -- cgit v1.3.1