diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2007-02-07 17:22:40 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2007-02-07 17:22:40 +0000 |
commit | 59e3b6ca7dc10603d1e692928a236fe5a0523200 (patch) | |
tree | 17949dbe48d690e650c7b3cefa903f711e49477d /winsup/cygwin/include | |
parent | 0e37a2e6e5f9bd3922f050da2a09b0e9d1dc5afd (diff) | |
download | cygnal-59e3b6ca7dc10603d1e692928a236fe5a0523200.tar.gz cygnal-59e3b6ca7dc10603d1e692928a236fe5a0523200.tar.bz2 cygnal-59e3b6ca7dc10603d1e692928a236fe5a0523200.zip |
* cygmalloc.h (MALLOC_FAILURE_ACTION): Define empty.
* cygwin.din (posix_madvise): Export.
(posix_memalign): Export.
* fhandler.cc (fhandler_base::fpathconf): Return useful values in
_PC_VDISABLE, _PC_SYNC_IO and _PC_SYMLINK_MAX cases.
* malloc_wrapper.cc (malloc): Set errno here since it's not set in
dlmalloc.c anymore.
(realloc): Ditto.
(calloc): Ditto.
(memalign): Ditto.
(valloc): Ditto.
(posix_memalign): New function.
* mmap.cc (posix_madvise): New function.
* sysconf.cc (get_open_max): New function.
(get_page_size): Ditto.
(get_nproc_values): Ditto.
(get_avphys): Ditto.
(sc_type): New type.
(sca): New array to map _SC_xxx options to sysconf return values.
(sysconf): Reimplement using sca array.
* include/limits.h: Add all missing values as defined by SUSv3.
* include/pthread.h (PTHREAD_DESTRUCTOR_ITERATIONS): Move definition
to sys/limits.h.
(PTHREAD_KEYS_MAX): Ditto.
* include/semaphore.h (SEM_VALUE_MAX): Ditto.
* include/cygwin/stdlib.h (posix_memalign): Declare.
* include/cygwin/version.h: Bump API minor number.
* include/sys/mman.h: Add posix_madvise flags.
(posix_madvise): Declare.
* include/sys/termios.h (_POSIX_VDISABLE): Move definition to
sys/limits.h.
Diffstat (limited to 'winsup/cygwin/include')
-rw-r--r-- | winsup/cygwin/include/cygwin/stdlib.h | 3 | ||||
-rw-r--r-- | winsup/cygwin/include/cygwin/version.h | 5 | ||||
-rw-r--r-- | winsup/cygwin/include/limits.h | 250 | ||||
-rw-r--r-- | winsup/cygwin/include/pthread.h | 8 | ||||
-rw-r--r-- | winsup/cygwin/include/semaphore.h | 3 | ||||
-rw-r--r-- | winsup/cygwin/include/sys/mman.h | 13 | ||||
-rw-r--r-- | winsup/cygwin/include/sys/termios.h | 7 |
7 files changed, 233 insertions, 56 deletions
diff --git a/winsup/cygwin/include/cygwin/stdlib.h b/winsup/cygwin/include/cygwin/stdlib.h index e034fe895..208a64e9e 100644 --- a/winsup/cygwin/include/cygwin/stdlib.h +++ b/winsup/cygwin/include/cygwin/stdlib.h @@ -1,6 +1,6 @@ /* stdlib.h - Copyright 2005, 2006 Red Hat Inc. + Copyright 2005, 2006, 2007 Red Hat Inc. This file is part of Cygwin. @@ -32,6 +32,7 @@ int unlockpt (int); #endif /*__STRICT_ANSI__*/ int posix_openpt (int); +int posix_memalign (void **, size_t, size_t); #ifdef _COMPILING_NEWLIB #define unsetenv UNUSED_unsetenv diff --git a/winsup/cygwin/include/cygwin/version.h b/winsup/cygwin/include/cygwin/version.h index 44c7229c3..d015fade0 100644 --- a/winsup/cygwin/include/cygwin/version.h +++ b/winsup/cygwin/include/cygwin/version.h @@ -1,7 +1,7 @@ /* version.h -- Cygwin version numbers and accompanying documentation. Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 2005, 2006 Red Hat, Inc. + 2005, 2006, 2007 Red Hat, Inc. This file is part of Cygwin. @@ -301,12 +301,13 @@ details. */ 161: Export resolver functions. 162: New struct ifreq. Export if_nametoindex, if_indextoname, if_nameindex, if_freenameindex. + 163: Export posix_madvise, posix_memalign. */ /* Note that we forgot to bump the api for ualarm, strtoll, strtoull */ #define CYGWIN_VERSION_API_MAJOR 0 -#define CYGWIN_VERSION_API_MINOR 162 +#define CYGWIN_VERSION_API_MINOR 163 /* There is also a compatibity version number associated with the shared memory regions. It is incremented when incompatible diff --git a/winsup/cygwin/include/limits.h b/winsup/cygwin/include/limits.h index 3c4ac2b4b..260e63a53 100644 --- a/winsup/cygwin/include/limits.h +++ b/winsup/cygwin/include/limits.h @@ -1,6 +1,6 @@ /* limits.h - Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Red Hat, Inc. + Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Red Hat, Inc. This file is part of Cygwin. @@ -127,16 +127,46 @@ details. */ /* Runtime Invariant Values */ +/* Please note that symbolic names shall be ommited, on specific + implementations where the corresponding value is equal to or greater + than the stated minimum, but is unspecified. This indetermination + might depend on the amount of available memory space on a specific + instance of a specific implementation. The actual value supported by + a specific instance shall be provided by the sysconf() function. */ + +/* Maximum number of I/O operations in a single list I/O call supported by + the implementation. Not yet implemented. */ +#undef AIO_LISTIO_MAX +/* #define AIO_LISTIO_MAX >= _POSIX_AIO_LISTIO_MAX */ + +/* Maximum number of outstanding asynchronous I/O operations supported by + the implementation. Not yet implemented. */ +#undef AIO_MAX +/* #define AIO_MAX >= _POSIX_AIO_MAX */ + +/* The maximum amount by which a process can decrease its asynchronous I/O + priority level from its own scheduling priority. */ +#undef AIO_PRIO_DELTA_MAX +/* #define AIO_PRIO_DELTA_MAX >= 0 */ + /* Maximum number of bytes in arguments and environment passed in an exec call. 32000 is the safe value used for Windows processes when called from Cygwin processes. */ #undef ARG_MAX #define ARG_MAX 32000 +/* Maximum number of functions that may be registered with atexit(). */ +#undef ATEXIT_MAX +#define ATEXIT_MAX 32 + /* Maximum number of simultaneous processes per real user ID. */ #undef CHILD_MAX #define CHILD_MAX 256 +/* Maximum number of timer expiration overruns. Not yet implemented. */ +#undef DELAYTIMER_MAX +/* #define DELAYTIMER_MAX >= _POSIX_DELAYTIMER_MAX */ + /* Maximum length of a host name. */ #undef HOST_NAME_MAX #define HOST_NAME_MAX 255 @@ -149,6 +179,16 @@ details. */ #undef LOGIN_NAME_MAX #define LOGIN_NAME_MAX 256 /* equal to UNLEN defined in w32api/lmcons.h */ +/* The maximum number of open message queue descriptors a process may hold. + Not yet implemented. */ +#undef MQ_OPEN_MAX +/* #define MQ_OPEN_MAX >= _POSIX_MQ_OPEN_MAX */ + +/* The maximum number of message priorities supported by the implementation. + Not yet implemented. */ +#undef MQ_PRIO_MAX +/* #define MQ_PRIO_MAX >= _POSIX_MQ_PRIO_MAX */ + /* # of open files per process. Actually it can be more since Cygwin grows the dtable as necessary. We define a reasonable limit here which is returned by getdtablesize(), sysconf(_SC_OPEN_MAX) and @@ -162,11 +202,61 @@ details. */ #define PAGESIZE 65536 #define PAGE_SIZE PAGESIZE +/* Maximum number of attempts made to destroy a thread's thread-specific + data values on thread exit. */ +/* FIXME: I really don't understand this value. Why should multiple + attempts be necessary to destroy thread-specific data?!? Anyway, the + current value here is 1, taken originally from our pthread.h file, + where it was mistakenly defined first. Unfortunately this value is + lower than the POSIX defined minimum value, which is 4. */ +#undef PTHREAD_DESTRUCTOR_ITERATIONS +#define PTHREAD_DESTRUCTOR_ITERATIONS 1 + +/* Maximum number of data keys that can be created by a process. */ +/* Tls has 64 items for pre win2000 - and we don't want to use them all :] */ +#undef PTHREAD_KEYS_MAX +#define PTHREAD_KEYS_MAX 32 + +/* Minimum size in bytes of thread stack storage. */ +/* Actually the minimum stack size is somewhat of a split personality. + The size parameter in a CreateThread call is the size of the initially + commited stack size, which can be specified as low as 4K. However, the + default *reserved* stack size is 1 Meg, unless the .def file specifies + another STACKSIZE value. And even if you specify a stack size below 64K, + the allocation granularity is in the way. You can never squeeze multiple + threads in the same allocation granularity slot. Oh well. */ +#undef PTHREAD_STACK_MIN +#define PTHREAD_STACK_MIN 65536 + +/* Maximum number of threads that can be created per process. */ +/* Windows allows any arbitrary number of threads per process. */ +#undef PTHREAD_THREADS_MAX +/* #define PTHREAD_THREADS_MAX unspecified */ + /* Maximum number of realtime signals reserved for application use. */ /* FIXME: We only support one realtime signal but _POSIX_RTSIG_MAX is 8. */ #undef RTSIG_MAX #define RTSIG_MAX 1 +/* Maximum number of semaphores that a process may have. */ +/* Windows allows any arbitrary number of semaphores per process. */ +#undef SEM_NSEMS_MAX +/* #define SEM_NSEMS_MAX unspecified */ + +/* The maximum value a semaphore may have. */ +#undef SEM_VALUE_MAX +#define SEM_VALUE_MAX 1147483648 + +/* Maximum number of queued signals that a process may send and have pending + at the receiver(s) at any time. */ +#undef SIGQUEUE_MAX +#define SIGQUEUE_MAX 32 + +/* The maximum number of replenishment operations that may be simultaneously + pending for a particular sporadic server scheduler. Not implemented. */ +#undef SS_REPL_MAX +/* #define SS_REPL_MAX >= _POSIX_SS_REPL_MAX */ + /* Number of streams that one process can have open at one time. */ #undef STREAM_MAX #define STREAM_MAX 20 @@ -179,10 +269,34 @@ details. */ #undef TIMER_MAX #define TIMER_MAX 32 +/* Maximum length of the trace event name. Not implemented. */ +#undef TRACE_EVENT_NAME_MAX +/* #define TRACE_EVENT_NAME_MAX >= _POSIX_TRACE_EVENT_NAME_MAX */ + +/* Maximum length of the trace generation version string or of the trace + stream name. Not implemented. */ +#undef TRACE_NAME_MAX +/* #define TRACE_NAME_MAX >= _POSIX_TRACE_NAME_MAX */ + +/* Maximum number of trace streams that may simultaneously exist in the + system. Not implemented. */ +#undef TRACE_SYS_MAX +/* #define TRACE_SYS_MAX >= _POSIX_TRACE_SYS_MAX */ + +/* Maximum number of user trace event type identifiers that may simultaneously + exist in a traced process, including the predefined user trace event + POSIX_TRACE_UNNAMED_USER_EVENT. Not implemented. */ +#undef TRACE_USER_EVENT_MAX +/* #define TRACE_USER_EVENT_MAX >= _POSIX_TRACE_USER_EVENT_MAX */ + /* Maximum number of characters in a tty name. */ #undef TTY_NAME_MAX #define TTY_NAME_MAX 12 +/* Maximum number of bytes supported for the name of a timezone (not of the TZ variable). Not implemented. */ +#undef TZNAME_MAX +/* #define TZNAME_MAX >= _POSIX_TZNAME_MAX */ + /* Pathname Variable Values */ @@ -215,6 +329,33 @@ details. */ #undef PIPE_BUF #define PIPE_BUF 4096 +/* Minimum number of bytes of storage actually allocated for any portion + of a file. Not implemented. */ +#undef POSIX_ALLOC_SIZE_MIN +/* #define POSIX_ALLOC_SIZE_MIN unspecifed */ + +/* Recommended increment for file transfer sizes between the + {POSIX_REC_MIN_XFER_SIZE} and {POSIX_REC_MAX_XFER_SIZE} values. + Not implemented. */ +#undef POSIX_REC_INCR_XFER_SIZE +/* #define POSIX_REC_INCR_XFER_SIZE unspecifed */ + +/* Maximum recommended file transfer size. Not implemented. */ +#undef POSIX_REC_MAX_XFER_SIZE +/* #define POSIX_REC_MAX_XFER_SIZE unspecifed */ + +/* Minimum recommended file transfer size. Not implemented. */ +#undef POSIX_REC_MIN_XFER_SIZE +/* #define POSIX_REC_MIN_XFER_SIZE unspecifed */ + +/* Recommended file transfer buffer alignment. Not implemented. */ +#undef POSIX_REC_XFER_ALIGN +/* #define POSIX_REC_XFER_ALIGN unspecifed */ + +/* Maximum number of bytes in a symbolic link. */ +#undef SYMLINK_MAX +#define SYMLINK_MAX PATH_MAX + /* Runtime Increasable Values */ @@ -234,16 +375,18 @@ details. */ #undef BC_STRING_MAX #define BC_STRING_MAX 1000 +/* Maximum number of bytes in a character class name. Not implemented. */ +#undef CHARCLASS_NAME_MAX +/* #define CHARCLASS_NAME_MAX >= _POSIX2_CHARCLASS_NAME_MAX */ + /* Maximum number of weights that can be assigned to an entry of the LC_COLLATE order keyword in the locale definition file. */ /* FIXME: We don't support this at all right now, so this value is misleading at best. It's also lower than _POSIX2_COLL_WEIGHTS_MAX which is not good. So, for now we deliberately not define it even though it was defined in the former syslimits.h file. */ -#if 0 #undef COLL_WEIGHTS_MAX -#define COLL_WEIGHTS_MAX 0 -#endif +/* #define COLL_WEIGHTS_MAX >= _POSIX2_COLL_WEIGHTS_MAX */ /* Maximum number of expressions that can be nested within parentheses by the expr utility. */ @@ -265,51 +408,80 @@ details. */ #define RE_DUP_MAX 255 -/* Minimum Values */ - /* POSIX values */ /* These should never vary from one system type to another */ /* They represent the minimum values that POSIX systems must support. POSIX-conforming apps must not require larger values. */ -#define _POSIX_ARG_MAX 4096 -#define _POSIX_CHILD_MAX 6 -#define _POSIX_HOST_NAME_MAX 255 -#define _POSIX_LINK_MAX 8 -#define _POSIX_LOGIN_NAME_MAX 9 -#define _POSIX_MAX_CANON 255 -#define _POSIX_MAX_INPUT 255 -#define _POSIX_NAME_MAX 14 -#define _POSIX_NGROUPS_MAX 0 -#define _POSIX_OPEN_MAX 16 -#define _POSIX_PATH_MAX 255 -#define _POSIX_PIPE_BUF 512 -#define _POSIX_RE_DUP_MAX 255 -#define _POSIX_RTSIG_MAX 8 -#define _POSIX_SSIZE_MAX 32767 -#define _POSIX_STREAM_MAX 8 -#define _POSIX_SYMLINK_MAX 255 -#define _POSIX_SYMLOOP_MAX 8 -#define _POSIX_TIMER_MAX 32 -#define _POSIX_TTY_NAME_MAX 9 -#define _POSIX_TZNAME_MAX 3 - -#define _POSIX2_BC_BASE_MAX 99 -#define _POSIX2_BC_DIM_MAX 2048 -#define _POSIX2_BC_SCALE_MAX 99 -#define _POSIX2_BC_STRING_MAX 1000 -#if 0 /* See comment about COLL_WEIGHTS_MAX above. */ -#define _POSIX2_COLL_WEIGHTS_MAX 2 -#endif -#define _POSIX2_EXPR_NEST_MAX 32 -#define _POSIX2_LINE_MAX 2048 -#define _POSIX2_RE_DUP_MAX 255 +/* Maximum Values */ + +#define _POSIX_CLOCKRES_MIN 20000000 + +/* Minimum Values */ + +#define _POSIX_AIO_LISTIO_MAX 2 +#define _POSIX_AIO_MAX 1 +#define _POSIX_ARG_MAX 4096 +#define _POSIX_CHILD_MAX 25 +#define _POSIX_DELAYTIMER_MAX 32 +#define _POSIX_HOST_NAME_MAX 255 +#define _POSIX_LINK_MAX 8 +#define _POSIX_LOGIN_NAME_MAX 9 +#define _POSIX_MAX_CANON 255 +#define _POSIX_MAX_INPUT 255 +#define _POSIX_MQ_OPEN_MAX 8 +#define _POSIX_MQ_PRIO_MAX 32 +#define _POSIX_NAME_MAX 14 +#define _POSIX_NGROUPS_MAX 8 +#define _POSIX_OPEN_MAX 20 +#define _POSIX_PATH_MAX 256 +#define _POSIX_PIPE_BUF 512 +#define _POSIX_RE_DUP_MAX 255 +#define _POSIX_RTSIG_MAX 8 +#define _POSIX_SEM_NSEMS_MAX 256 +#define _POSIX_SEM_VALUE_MAX 32767 +#define _POSIX_SIGQUEUE_MAX 32 +#define _POSIX_SSIZE_MAX 32767 +#define _POSIX_STREAM_MAX 8 +#define _POSIX_SS_REPL_MAX 4 +#define _POSIX_SYMLINK_MAX 255 +#define _POSIX_SYMLOOP_MAX 8 +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 +#define _POSIX_THREAD_KEYS_MAX 128 +#define _POSIX_THREAD_THREADS_MAX 64 +#define _POSIX_TIMER_MAX 32 +#define _POSIX_TRACE_EVENT_NAME_MAX 30 +#define _POSIX_TRACE_NAME_MAX 8 +#define _POSIX_TRACE_SYS_MAX 8 +#define _POSIX_TRACE_USER_EVENT_MAX 32 +#define _POSIX_TTY_NAME_MAX 9 +#define _POSIX_TZNAME_MAX 6 + +#define _POSIX2_BC_BASE_MAX 99 +#define _POSIX2_BC_DIM_MAX 2048 +#define _POSIX2_BC_SCALE_MAX 99 +#define _POSIX2_BC_STRING_MAX 1000 +#define _POSIX2_COLL_WEIGHTS_MAX 2 +#define _POSIX2_EXPR_NEST_MAX 32 +#define _POSIX2_LINE_MAX 2048 +#define _POSIX2_RE_DUP_MAX 255 + +#define _XOPEN_IOV_MAX 16 +#define _XOPEN_NAME_MAX 255 +#define _XOPEN_PATH_MAX 1024 /* Other Invariant Values */ +#define NL_ARGMAX 9 +#define NL_LANGMAX 14 +#define NL_MSGMAX 32767 +#define NL_NMAX INT_MAX +#define NL_SETMAX 255 +#define NL_TEXTMAX _POSIX2_LINE_MAX + /* Default process priority. */ #undef NZERO -#define NZERO 20 +#define NZERO 20 #endif /* _MACH_MACHLIMITS_H_ */ #endif /* _LIMITS_H___ */ diff --git a/winsup/cygwin/include/pthread.h b/winsup/cygwin/include/pthread.h index 8a475a60e..73759ddc0 100644 --- a/winsup/cygwin/include/pthread.h +++ b/winsup/cygwin/include/pthread.h @@ -1,6 +1,7 @@ /* pthread.h: POSIX pthread interface - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2006 Red Hat, Inc. + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2006, + 2007 Red Hat, Inc. Written by Marco Fuykschot <marco@ddi.nl> @@ -30,11 +31,6 @@ extern "C" would normally be written to the passed parameter of pthread_cond_init(lvalue, NULL); */ /* #define PTHREAD_COND_INITIALIZER 0 */ -#define PTHREAD_DESTRUCTOR_ITERATIONS 1 -/* Tls has 64 items for pre win2000 - and we don't want to use them all :] - * Before committing discuss this with the list - */ -#define PTHREAD_KEYS_MAX 32 /* the default : joinable */ #define PTHREAD_CANCEL_ASYNCHRONOUS 1 diff --git a/winsup/cygwin/include/semaphore.h b/winsup/cygwin/include/semaphore.h index 96f7c6f88..0f13c85e8 100644 --- a/winsup/cygwin/include/semaphore.h +++ b/winsup/cygwin/include/semaphore.h @@ -1,6 +1,6 @@ /* semaphore.h: POSIX semaphore interface - Copyright 2001, 2003 Red Hat, Inc. + Copyright 2001, 2003, 2007 Red Hat, Inc. Written by Robert Collins <rbtcollins@hotmail.com> @@ -25,7 +25,6 @@ extern "C" #endif #define SEM_FAILED 0 -#define SEM_VALUE_MAX 1147483648 /* Semaphores */ int sem_init (sem_t * sem, int pshared, unsigned int value); diff --git a/winsup/cygwin/include/sys/mman.h b/winsup/cygwin/include/sys/mman.h index f501b7b75..a3c8077b0 100644 --- a/winsup/cygwin/include/sys/mman.h +++ b/winsup/cygwin/include/sys/mman.h @@ -1,6 +1,6 @@ /* sys/mman.h - Copyright 1996, 1997, 1998, 2000, 2001 Red Hat, Inc. + Copyright 1996, 1997, 1998, 2000, 2001, 2003, 2005, 2007 Red Hat, Inc. This file is part of Cygwin. @@ -47,6 +47,15 @@ extern "C" { #define MS_SYNC 2 #define MS_INVALIDATE 4 +/* + * Flags for posix_madvise. + */ +#define POSIX_MADV_NORMAL 0 +#define POSIX_MADV_SEQUENTIAL 1 +#define POSIX_MADV_RANDOM 2 +#define POSIX_MADV_WILLNEED 3 +#define POSIX_MADV_DONTNEED 4 + #ifndef __INSIDE_CYGWIN__ extern void *mmap (void *__addr, size_t __len, int __prot, int __flags, int __fd, off_t __off); #endif @@ -56,6 +65,8 @@ extern int msync (void *__addr, size_t __len, int __flags); extern int mlock (const void *__addr, size_t __len); extern int munlock (const void *__addr, size_t __len); +extern int posix_madvise (void *__addr, size_t __len, int __advice); + #ifdef __cplusplus }; #endif /* __cplusplus */ diff --git a/winsup/cygwin/include/sys/termios.h b/winsup/cygwin/include/sys/termios.h index e2fd1321a..057146966 100644 --- a/winsup/cygwin/include/sys/termios.h +++ b/winsup/cygwin/include/sys/termios.h @@ -1,6 +1,7 @@ /* sys/termios.h - Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 Red Hat, Inc. + Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, + 2007 Red Hat, Inc. This file is part of Cygwin. @@ -233,10 +234,6 @@ POSIX commands */ #define NCCS 18 -/* `c_cc' member of 'struct termios' structure can be disabled by - using the value _POSIX_VDISABLE. */ -#define _POSIX_VDISABLE '\0' - /* Compare a character C to a value VAL from the `c_cc' array in a `struct termios'. If VAL is _POSIX_VDISABLE, no character can match it. */ #define CCEQ(val, c) ((c) == (val) && (val) != _POSIX_VDISABLE) |