mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2025-02-28 04:27:07 +08:00
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
This commit is contained in:
parent
3d4e0db73b
commit
564ca94007
@ -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>
|
||||
|
||||
//=============================================================================
|
||||
|
@ -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>
|
||||
|
@ -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 */
|
@ -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 */
|
||||
|
@ -1,2 +1,2 @@
|
||||
//#include <errno.h>
|
||||
#include "codes.h" //fixme
|
||||
#include "port/codes.h" //fixme
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user