123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 |
- #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;
- #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 */
|