diff options
author | Michael Gielda <mgielda@antmicro.com> | 2014-04-03 14:53:04 +0200 |
---|---|---|
committer | Michael Gielda <mgielda@antmicro.com> | 2014-04-03 14:53:04 +0200 |
commit | ae1e4e08a1005a0c487f03ba189d7536e7fdcba6 (patch) | |
tree | f1c296f8a966a9a39876b0e98e16d9c5da1776dd /ecos/packages/isoinfra | |
parent | f157da5337118d3c5cd464266796de4262ac9dbd (diff) |
Added the OS files
Diffstat (limited to 'ecos/packages/isoinfra')
32 files changed, 5747 insertions, 0 deletions
diff --git a/ecos/packages/isoinfra/current/ChangeLog b/ecos/packages/isoinfra/current/ChangeLog new file mode 100644 index 0000000..a5624fe --- /dev/null +++ b/ecos/packages/isoinfra/current/ChangeLog @@ -0,0 +1,459 @@ +2012-03-09 Jonathan Larmour <jifl@eCosCentric.com> + + * include/time.h: Add suseconds_t and useconds_t here for now. + * include/sys/time.h: Use suseconds_t when defining struct timeval. + +2009-06-03 Ross Younger <wry@ecoscentric.com> + + * include/sys/stat.h: Include cyg_type.h for __externC + +2009-05-12 Simon Kallweit <simon.kallweit@intefo.ch> + + * include/sys/types.h: + * include/limits.h: + Fixed typo in CYGBLD_ISO_SSIZET_HEADER. + +2009-02-24 Rutger Hofmman <rutger@cs.vu.nl> + + * include/sys/stat.h: chmod() prototype + +2007-01-24 Peter Korsgaard <peter.korsgaard@barco.com> + + * cdl/isoinfra.cdl: + * include/fnmatch.h: fnmatch() support. + +2006-03-17 Sergei Organov <osv@javad.com> + + * include/assert.h: Replace #if defined(CYGINT_ISO_EXIT) with #if + CYGINT_ISO_EXIT. CYGINT_ISO_EXIT configuration variable is always + defined to either 0 or 1, so check of the former form is always + evaluated to true. + +2005-10-20 Alexander Neundorf <neundorf@kde.org> + Andrew Lunn <andrew.lunn@ascom.ch> + + * include/sys/time.h (new): Basic implementation. + * include/time.h: Removed timeval which is now in sys/time.h + +2005-07-22 Andrew Lunn <andrew.lunn@ascom.ch> + + * include/unistd.h: Const correctness to keep the compiler happy. + +2004-03-30 Alex Paulis and Cameron Taylor <ctaylor@waverider.com> + + * include/sys/select.h: set FD_SETSIZE to CYGNUM_FILEIO_NFD + when appropriate. + +2004-03-12 Jonathan Larmour <jifl@eCosCentric.com> + + * cdl/isoinfra.cdl: Typo: CYGBLD_ISO_STDIO_FILEPOS -> + CYGBLD_ISO_STDIO_FILEPOS_HEADER. + + * include/limits.h: Avoid potential illegal recursion if + already been included by GCC's limits.h. + + * include/stdio.h: Include stdarg.h to save duplication. + Give fileno(),fdopen() throw specifiers. + + * include/unistd.h: Prototype for rename() lives in stdio.h. + +2004-01-07 Jonathan Larmour <jifl@eCosCentric.com> + + * include/sys/select.h: Only declare pselect() when posix signals are + included. + +2003-07-15 Andrew Lunn <andrew.lunn@ascom.ch> + + * include/sys/stat.h (S_ISGID): Please, somebody teach me to count! + +2003-07-10 Andrew Lunn <andrew.lunn@ascom.ch> + + * include/sys/stat.h :S_I[RWX]{USR|GRP|OTH} etc changed so they + don't overlap with S_ISLINK and S_ISSOCK. Reported by Scott + Wilkinson. + +2003-06-10 Andrew Lunn <andrew.lunn@ascom.ch> + + * include/sys/stat.h: S_IFFIFO defies logic and should be called + S_IFIFO! + +2003-05-26 Andrew Lunn <andrew.lunn@ascom.ch> + + * include/sys/stat.h (S_IF*): Added macros to test the type of a + file. + +2003-05-23 Andrew Lunn <andrew.lunn@ascom.ch> + + * include/sys/stat.h: Added various S_IF macros for the st_mode + flags. + +2003-01-13 Jonathan Larmour <jifl@eCosCentric.com> + + * include/mqueue.h: Define POSIX 1003.1d draft mq_timedsend() and + mq_timedreceive() functions. + +2002-12-12 Bart Veer <bartv@ecoscentric.com> + + * include/stdlib.h: #include cyg_type.h, now that this header + uses NORET attributes + +2002-11-10 Nick Garnett <nickg@ecoscentric.com> + + * include/sys/types.h: Add define/undefine for __NEED_FD_SETS_ONLY + around include of sys/select.h to avoid circular dependencies in + headers. + + * include/sys/select.h: Reorganized definitions so that the + include from sys/types.h only defines the fd_set type and macros + and not the select() and pselect() functions. The latter needs + sigset_t from signal.h, which can result in circularity. + +2002-04-09 Jonathan Larmour <jlarmour@redhat.com> + + * include/stdlib.h: use NORET attributes from cyg_type.h. + +2002-03-20 Jonathan Larmour <jlarmour@redhat.com> + + * include/float.h: Don't have multiple inclusion protection. It is + unnecessary and can confuse things if the headers are subject to two + -I paths. + * include/stdarg.h: Ditto. + * include/float.h: Don't cover include_next with inclusion protection + for a similar reason. + * include/stddef.h: Use C comment. + +2002-01-17 Jonathan Larmour <jlarmour@redhat.com> + + * include/unistd.h: ftruncate() should use an off_t argument. + +2002-01-15 Jonathan Larmour <jlarmour@redhat.com> + + * include/sys/types.h: off_t should be signed. + +2001-12-05 Jonathan Larmour <jlarmour@redhat.com> + + * include/netdb.h (gethostbyname): anonymous arguments aren't allowed + in C (I thought they were a GNU C extension, sigh). + +2001-11-30 Jonathan Larmour <jlarmour@redhat.com> +2001-11-30 Andrew Lunn <andrew.lunn@ascom.ch> + + * include/netdb.h: Provide a default NULL implementation of + struct hostent, gethostbyname and gethostbyaddr if a real implementation + doesn't exist. This makes life easier for legacy code. + +2001-10-17 Jesper Skov <jskov@redhat.com> + + * cdl/isoinfra.cdl: Changed string interfaces to flavor booldata. + + * include/string.h: Changed feature checks to ifdef. + +2001-10-09 Jonathan Larmour <jlarmour@redhat.com> + + * cdl/isoinfra.cdl: Make all CYGPKG_ISO_TIME interfaces be booldata. + Add config for POSIX clock types and implementations. + Make all CYGPKG_ISO_PTHREAD interfaces be booldata. + Add POSIX sleep() config. + + * include/pthread.h: Reflect booldata interfaces. + * include/time.h: Ditto. + Also add default struct itimerspec and POSIX clock includes. + * include/unistd.h: Add sleep includes, with default proto. + +2001-09-28 Jonathan Larmour <jlarmour@redhat.com> + + * cdl/isoinfra.cdl: Add netdb services and proto function support. + * include/netdb.h: New file. + +2001-09-24 Jesper Skov <jskov@redhat.com> + + * cdl/isoinfra.cdl: Added CYGINT_ISO_DNS and + CYGBLD_ISO_DNS_HEADER. + +2001-09-12 Jesper Skov <jskov@redhat.com> + + * include/limits.h: Work around glibc header problem. + +2001-09-10 Jonathan Larmour <jlarmour@redhat.com> + + * cdl/isoinfra.cdl: Add CYGINT_ISO_PTHREAD_MUTEX and + CYGBLD_ISO_PTHREAD_MUTEX_HEADER. + * include/pthread.h: Include above header if set. + +2001-08-06 Jonathan Larmour <jlarmour@redhat.com> + + * cdl/isoinfra.cdl: Add a separate POSIX mutex types header option. + * include/sys/types.h: Include it. + * include/time.h: Provide a default struct timespec even if the + implementation doesn't provide something better. + +2001-07-26 Jonathan Larmour <jlarmour@redhat.com> + + * include/sys/types.h: Move select() related stuff into separate + sys/select header. Include it still for now. + * include/sys/select.h: New header, as per upcoming POSIX 200x standard. + + * cdl/isoinfra.cdl: Add configury for select() and poll(). + + +2001-07-20 Jonathan Larmour <jlarmour@redhat.com> + + * include/stdlib.h: Use correct macro names for abs and div. + +2001-06-08 Jonathan Larmour <jlarmour@redhat.com> + + * include/stdlib.h: Actually set MB_CUR_MAX in i18n package via header. + * cdl/isoinfra.cdl: Define multibyte char headers/interfaces + +2000-06-08 Jeff Johnston <jjohnstn@redhat.com> + + * include/stdlib.h: Add code to set MB_CUR_MAX to __mb_cur_max + if CYGFUN_LIBC_I18N_MB is defined, otherwise set it to 1. + +2001-02-11 Jonathan Larmour <jlarmour@redhat.com> + + * cdl/isoinfra.cdl: Add CYGPKG_ISO_UNISTD to deal with unistd.h + Include POSIX timer operations underneath it. + + * include/unistd.h: Add support for conditional inclusion of + POSIX timer operations. + +2001-02-01 Jonathan Larmour <jlarmour@redhat.com> + + * cdl/isoinfra.cdl: Add CYGINT_ISO_STDIO_POSIX_FDFUNCS and + CYGBLD_ISO_STDIO_POSIX_FDFUNCS_HEADER primarily for fileno() + and fdopen() + * include/stdio.h: Use above to provide default protos for fileno + and fdopen. + +2000-12-15 Nick Garnett <nickg@cygnus.co.uk> + + * include/dlfcn.h: + * cdl/isoinfra.cdl: + Added support for dlfcn.h header that defines dynamic load API. + +2000-11-01 Jonathan Larmour <jlarmour@redhat.com> + + * cdl/isoinfra.cdl: Add CYGINT_ISO_STDIO_STREAMS and + CYGBLD_ISO_STDIO_STREAMS_HEADER. + Change flavor of other stdio interfaces to booldata + * include/stdio.h: Use #ifdefs not #ifs on interfaces to reflect above + Add CYGINT_ISO_STDIO_STREAMS and CYGBLD_ISO_STDIO_STREAMS_HEADER. + +2000-10-05 Nick Garnett <nickg@cygnus.co.uk> + + * include/sys/types.h: Changed type of pid_t to plain int. It + needs to be signed. + + * include/unistd.h: Fixed prototypes of several functions to match + POSIX standard. + +2000-09-11 Jonathan Larmour <jlarmour@redhat.com> + + * cdl/isoinfra.cdl: Add CYGBLD_ISO_{OPEN,LINK,NAME,PATH}_MAX_HEADER + * include/limits.h: Support definition of OPEN_MAX, LINK_MAX, + NAME_MAX, PATH_MAX + +2000-08-30 Jonathan Larmour <jlarmour@redhat.co.uk> + + * include/assert.h (assert): Fix logic + +2000-08-29 Jonathan Larmour <jlarmour@redhat.co.uk> + + * include/stddef.h: Don't use CYGONCE_ multiple header inclusion + protection for this file - this is special. + +2000-08-08 Jonathan Larmour <jlarmour@redhat.co.uk> + + * include/limits.h: Add SSIZE_MAX + +2000-08-03 Jonathan Larmour <jlarmour@redhat.co.uk> + + * include/sys/types.h: Make fd_mask unsigned int, not cyg_uint32 so + as to avoid including cyg_type.h + +2000-08-01 Jonathan Larmour <jlarmour@redhat.co.uk> + + * cdl/isoinfra.cdl: Support termios + * include/termios.h: Added + +2000-07-21 Jonathan Larmour <jlarmour@redhat.co.uk> + + * cdl/isoinfra.cdl: CYGNUM_ISO_MQUEUE_OPEN_MAX and + CYGNUM_ISO_MQUEUE_PRIO_MAX should only be active if CYGINT_ISO_MQUEUE + rather than them requiring it + +2000-07-20 Nick Garnett <nickg@cygnus.co.uk> + + * cdl/isoinfra.cdl: Added configury for sys/utsname.h. + + * include/unistd.h: Added _POSIX_VERSION constant. + Changed return type of sysconf() to long. + + * include/sys/utsname.h: Added this file. + +2000-07-13 Nick Garnett <nickg@cygnus.co.uk> + + * include/unistd.h: Added fsync() prototype. + +2000-07-13 Jonathan Larmour <jlarmour@redhat.co.uk> + + * cdl/isoinfra.cdl: Add CYGINT_ISO_MALLINFO and + CYGBLD_ISO_MALLINFO_HEADER to support mallinfo() + + * include/stdlib.h: Support mallinfo() + +2000-06-28 Nick Garnett <nickg@cygnus.co.uk> + + * include/sys/stat.h: Added prototypes for stat(), fstat() and + mkdir(). + + * include/dirent.h: Added this file to provide directory reading + support. + + * cdl/isoinfra.cdl: Added dirent support. + +2000-06-21 Jonathan Larmour <jlarmour@redhat.co.uk> + + * cdl/isoinfra.cdl: Put in below requires line, but change to allow + 0 or 1 implementations + +2000-06-19 Nick Garnett <nickg@cygnus.co.uk> + + * cdl/isoinfra.cdl: Commented out requires line in + CYGINT_POSIX_REALTIME_SIGNALS interface. This causes configuration + errors when the POSIX package is absent. + + * include/sys/types.h: Reimplemented FD_COPY() and FD_ZERO() as + inline copy loops rather than calls to memcpy() and memset(). + +2000-06-09 Jonathan Larmour <jlarmour@redhat.co.uk> + + * include/time.h: Following the below change, simply define struct + timeval, while allowing it to be overridden if necessary + * cdl/isoinfra.cdl (CYGBLD_ISO_STRUCTTIMEVAL_HEADER): define for this + purpose + +2000-06-09 Nick Garnett <nickg@cygnus.co.uk> + + * include/time.h: Added definition of struct timeval. This is a + temporary home for this while we work out where definitions like + this should really live. Like the fd_set stuff in sys/types.h, + this is needed by two packages, both of which can operate + independently but which also need to co-operate when they are both + present. + +2000-06-07 Nick Garnett <nickg@cygnus.co.uk> + + * include/sys/types.h: Added definitions for file descriptor sets + and inclusion of BSD specific types. + + * include/stdlib.h: Added extern for environ variable in non-POSIX + builds. + + * include/fcntl.h (O_WRONLY): Moved this to bit 1, leaving bit 2 + for future expansion. + + * cdl/isoinfra.cdl: Added CYGPKG_ISO_EXTRA_TYPES to control + inclusion of types into <sys/types.h> that are not specified by + POSIX. Mostly needed by the socket and BSD code. + +2000-06-02 Nick Garnett <nickg@cygnus.co.uk> + + * include/unistd.h: Added this initial version of this file. Jifl + will probably want to rewrite it at some point. + + * include/fcntl.h: Changed O_RDWR to (O_RDONLY|O_WRONLY). + +2000-05-31 Nick Garnett <nickg@cygnus.co.uk> + + * include/fcntl.h: Fixed ifdefs around extern declaration of + fcntl(). + +2000-05-20 Jonathan Larmour <jlarmour@redhat.co.uk> + + * include/fcntl.h: new file + * include/mqueue.h: new file + * include/sys/stat.h: new file + + * cdl/isoinfra.cdl: No need for memcpy and memset interfaces - they're + always present + (CYGINT_ISO_POSIX_TIMERS): define _POSIX_TIMERS if enabled + (CYGINT_POSIX_REALTIME_SIGNALS): add + (CYGPKG_ISO_POSIX_FCNTL): Add a number of hooks for things that need + to control fcntl.h + (CYGPKG_ISO_MQUEUE): Add a number of hooks for things that need + to control mqueue.h + (CYGBLD_ISO_STAT_DEFS_HEADER): Add to override default sys/stat.h + contents + + Fix some typos throughout, and a few other minor tidies + + * include/limits.h: Move _POSIX_* macros here from POSIX package since + they are implementation independent + + * include/time.h: Keep CLOCKS_PER_SEC at 1000000 + + * include/sys/types.h: Bring some of the types more in line with Linux + + * include/ctype.h, include/errno.h, include/limits.h, include/locale.h, + include/pthread.h, include/sched.h, include/semaphore.h, + include/setjmp.h, include/signal.h, include/stdio.h, include/stdlib.h, + include/string.h, include/time.h, include/sys/types.h: + Don't need to explicitly check interface values > 0 + +2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk> + + * include/time.h: Provide default definitions of time_t, clock_t and + CLOCKS_PER_SEC + + * cdl/isoinfra.cdl: Remove CYGINT_ISO_TIME_T and CYGINT_ISO_CLOCK_T - + not really needed with a default definition + + * New package isoinfra with the following files: + include/errno.h + include/sys/types.h + include/assert.h + include/stddef.h + include/string.h + include/setjmp.h + include/ctype.h + include/float.h + include/sched.h + include/stdarg.h + include/semaphore.h + include/time.h + include/signal.h + include/locale.h + include/pthread.h + include/stdio.h + include/stdlib.h + include/limits.h + cdl/isoinfra.cdl + + This package manages the ISO standard (C and POSIX) top-level header + files + +//=========================================================================== +// ####GPLCOPYRIGHTBEGIN#### +// ------------------------------------------- +// This file is part of eCos, the Embedded Configurable Operating System. +// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +// +// This program 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. +// +// This program 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 this program; if not, write to the +// Free Software Foundation, Inc., 51 Franklin Street, +// Fifth Floor, Boston, MA 02110-1301, USA. +// ------------------------------------------- +// ####GPLCOPYRIGHTEND#### +//=========================================================================== diff --git a/ecos/packages/isoinfra/current/cdl/isoinfra.cdl b/ecos/packages/isoinfra/current/cdl/isoinfra.cdl new file mode 100644 index 0000000..41ae55b --- /dev/null +++ b/ecos/packages/isoinfra/current/cdl/isoinfra.cdl @@ -0,0 +1,1251 @@ +# ==================================================================== +# +# isoinfra.cdl +# +# ISO C and POSIX standards infrastructure package configuration data +# +# ==================================================================== +## ####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-07 +# +#####DESCRIPTIONEND#### +# +# ==================================================================== + +cdl_package CYGPKG_ISOINFRA { + display "ISO C and POSIX infrastructure" + description " + eCos supports implementations of ISO C libraries and POSIX + implementations. This package provides infrastructure used by + all such implementations." + + +# ==================================================================== + + cdl_component CYGPKG_ISO_STARTUP { + display "Startup and termination" + flavor none + no_define + + cdl_interface CYGINT_ISO_MAIN_STARTUP { + display "main() startup implementations" + description " + Implementations of this interface arrange for a user-supplied + main() to be called in an ISO compatible environment." + requires { 1 >= CYGINT_ISO_MAIN_STARTUP } + } + + cdl_interface CYGINT_ISO_ENVIRON { + display "environ implementations" + description " + Implementations of this interface provide the environ + variable required by POSIX." + requires { 1 >= CYGINT_ISO_ENVIRON } + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_CTYPE_H { + display "ctype.h functions" + flavor none + no_define + + cdl_interface CYGINT_ISO_CTYPE { + display "Number of implementations of ctype functions" + requires { 1 >= CYGINT_ISO_CTYPE } + } + + cdl_option CYGBLD_ISO_CTYPE_HEADER { + display "Ctype implementation header" + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_ERRNO { + display "Error handling" + flavor none + no_define + + cdl_interface CYGINT_ISO_ERRNO_CODES { + display "Number of implementations of error codes" + requires { 1 >= CYGINT_ISO_ERRNO_CODES } + } + + cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER { + display "Error codes implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_ERRNO { + display "Number of implementations of errno variable" + requires { 1 >= CYGINT_ISO_ERRNO } + } + + cdl_option CYGBLD_ISO_ERRNO_HEADER { + display "errno variable implementation header" + flavor booldata + default_value 0 + } + + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_LOCALE { + display "Locale-related functions" + flavor none + no_define + + cdl_interface CYGINT_ISO_LOCALE { + display "Number of implementations of locale functions" + requires { 1 >= CYGINT_ISO_LOCALE } + } + + cdl_option CYGBLD_ISO_LOCALE_HEADER { + display "Locale implementation header" + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_STDIO { + display "Standard I/O-related functionality" + flavor none + no_define + + cdl_interface CYGINT_ISO_STDIO_FILETYPES { + display "Number of implementations of stdio file types" + flavor booldata + requires { 1 >= CYGINT_ISO_STDIO_FILETYPES } + } + + cdl_option CYGBLD_ISO_STDIO_FILETYPES_HEADER { + display "Stdio file types implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STDIO_STREAMS { + display "Stdio standard streams implementations" + flavor booldata + requires { 1 >= CYGINT_ISO_STDIO_STREAMS } + } + + cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER { + display "Stdio standard streams implementation header" + description "This header file must define stdin, stdout + and stderr." + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STDIO_FILEOPS { + display "Number of implementations of stdio file operations" + flavor booldata + requires { 1 >= CYGINT_ISO_STDIO_FILEOPS } + } + + cdl_option CYGBLD_ISO_STDIO_FILEOPS_HEADER { + display "Stdio file operations implementation header" + description " + This header controls the file system operations on a file + such as remove(), rename(), tmpfile(), tmpnam() and associated + constants." + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STDIO_FILEACCESS { + display "Number of implementations of stdio file access \ + functionals" + flavor booldata + requires { 1 >= CYGINT_ISO_STDIO_FILEACCESS } + } + + cdl_option CYGBLD_ISO_STDIO_FILEACCESS_HEADER { + display "Stdio file access implementation header" + description " + This header controls the file access operations + such as fclose(), fflush(), fopen(), freopen(), setbuf(), + setvbuf(), and associated constants." + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STDIO_FORMATTED_IO { + display "Number of implementations of stdio formatted I/O" + flavor booldata + requires { 1 >= CYGINT_ISO_STDIO_FORMATTED_IO } + } + + cdl_option CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER { + display "Stdio formatted I/O implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STDIO_CHAR_IO { + display "Number of implementations of stdio character I/O" + flavor booldata + requires { 1 >= CYGINT_ISO_STDIO_CHAR_IO } + } + + cdl_option CYGBLD_ISO_STDIO_CHAR_IO_HEADER { + display "Stdio character I/O implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STDIO_DIRECT_IO { + display "Number of implementations of stdio direct I/O" + flavor booldata + requires { 1 >= CYGINT_ISO_STDIO_DIRECT_IO } + } + + cdl_option CYGBLD_ISO_STDIO_DIRECT_IO_HEADER { + display "Stdio direct I/O implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STDIO_FILEPOS { + display "Number of implementations of stdio file positioning" + flavor booldata + requires { 1 >= CYGINT_ISO_STDIO_FILEPOS } + } + + cdl_option CYGBLD_ISO_STDIO_FILEPOS_HEADER { + display "Stdio file positioning implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STDIO_ERROR { + display "Number of implementations of stdio error handling" + flavor booldata + requires { 1 >= CYGINT_ISO_STDIO_ERROR } + } + + cdl_option CYGBLD_ISO_STDIO_ERROR_HEADER { + display "Stdio error handling implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STDIO_POSIX_FDFUNCS { + display "POSIX fd-related function implementations" + flavor booldata + requires { 1 >= CYGINT_ISO_STDIO_POSIX_FDFUNCS } + } + + cdl_option CYGBLD_ISO_STDIO_POSIX_FDFUNCS_HEADER { + display "POSIX fd-related function implementation header" + flavor booldata + default_value 0 + } + + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_STDLIB { + display "Standard general utility functions" + flavor none + no_define + + cdl_interface CYGINT_ISO_STDLIB_STRCONV { + display "String conversion function implementations" + requires { 1 >= CYGINT_ISO_STDLIB_STRCONV } + } + + cdl_option CYGBLD_ISO_STDLIB_STRCONV_HEADER { + display "String conversion function implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STDLIB_STRCONV_FLOAT { + display "String to FP conversion function implementations" + requires { 1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT } + } + + cdl_option CYGBLD_ISO_STDLIB_STRCONV_FLOAT_HEADER { + display "String to FP conversion function implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_RAND { + display "Random number generator implementations" + requires { 1 >= CYGINT_ISO_RAND } + } + + cdl_option CYGBLD_ISO_RAND_HEADER { + display "Random number generator implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_MALLOC { + display "Malloc implementations" + requires { 1 >= CYGINT_ISO_MALLOC } + } + + cdl_option CYGBLD_ISO_MALLOC_HEADER { + display "Malloc implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_MALLINFO { + display "Mallinfo() implementations" + requires { 1 >= CYGINT_ISO_MALLINFO } + } + + cdl_option CYGBLD_ISO_MALLINFO_HEADER { + display "Mallinfo() implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_EXIT { + display "Program exit functionality implementations" + requires { 1 >= CYGINT_ISO_EXIT } + } + + cdl_option CYGBLD_ISO_EXIT_HEADER { + display "Program exit functionality implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STDLIB_ENVIRON { + display "Program environment implementations" + requires { 1 >= CYGINT_ISO_STDLIB_ENVIRON } + } + + cdl_option CYGBLD_ISO_STDLIB_ENVIRON_HEADER { + display "Program environment implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STDLIB_SYSTEM { + display "system() implementations" + requires { 1 >= CYGINT_ISO_STDLIB_SYSTEM } + } + + cdl_option CYGBLD_ISO_STDLIB_SYSTEM_HEADER { + display "system() implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_BSEARCH { + display "bsearch() implementations" + requires { 1 >= CYGINT_ISO_BSEARCH } + } + + cdl_option CYGBLD_ISO_BSEARCH_HEADER { + display "bsearch() implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_QSORT { + display "qsort() implementations" + requires { 1 >= CYGINT_ISO_STDLIB_QSORT } + } + + cdl_option CYGBLD_ISO_QSORT_HEADER { + display "qsort() implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_ABS { + display "abs()/labs() implementations" + requires { 1 >= CYGINT_ISO_STDLIB_ABS } + } + + cdl_option CYGBLD_ISO_STDLIB_ABS_HEADER { + display "abs()/labs() implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_DIV { + display "div()/ldiv() implementations" + requires { 1 >= CYGINT_ISO_STDLIB_DIV } + } + + cdl_option CYGBLD_ISO_STDLIB_DIV_HEADER { + display "div()/ldiv() implementation header" + flavor booldata + default_value 0 + } + + cdl_option CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER { + display "Header defining the implementation's MB_CUR_MAX" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STDLIB_MULTIBYTE { + display "Multibyte character implementations" + requires { 1 >= CYGINT_ISO_STDLIB_MULTIBYTE } + } + + cdl_option CYGBLD_ISO_STDLIB_MULTIBYTE_HEADER { + display "Multibyte character implementation header" + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_STRING { + display "String functions" + flavor none + no_define + + cdl_interface CYGINT_ISO_STRERROR { + display "Number of implementations of strerror() function" + requires { 1 >= CYGINT_ISO_STRERROR } + flavor booldata + } + + cdl_option CYGBLD_ISO_STRERROR_HEADER { + display "strerror() implementation header" + flavor booldata + default_value 0 + } + + cdl_option CYGBLD_ISO_MEMCPY_HEADER { + display "memcpy() implementation header" + flavor booldata + default_value 0 + } + + cdl_option CYGBLD_ISO_MEMSET_HEADER { + display "memset() implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STRTOK_R { + display "Number of implementations of strtok_r() function" + requires { 1 >= CYGINT_ISO_STRTOK_R } + flavor booldata + } + + cdl_option CYGBLD_ISO_STRTOK_R_HEADER { + display "strtok_r() implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STRING_LOCALE_FUNCS { + display "Number of implementations of locale-specific string \ + functions" + description " + This covers locale-dependent string functions such as strcoll() + and strxfrm()." + requires { 1 >= CYGINT_ISO_STRING_LOCALE_FUNCS } + flavor booldata + } + + cdl_option CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER { + display "Locale-specific string functions' implementation \ + header" + description " + This covers locale-dependent string functions such as strcoll() + and strxfrm()." + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STRING_BSD_FUNCS { + display "Number of implementations of BSD string functions" + requires { 1 >= CYGINT_ISO_STRING_BSD_FUNCS } + flavor booldata + } + + cdl_option CYGBLD_ISO_STRING_BSD_FUNCS_HEADER { + display "BSD string functions' implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STRING_MEMFUNCS { + display "Number of implementations of other mem*() functions" + requires { 1 >= CYGINT_ISO_STRING_MEMFUNCS } + flavor booldata + } + + cdl_option CYGBLD_ISO_STRING_MEMFUNCS_HEADER { + display "Other mem*() functions' implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_STRING_STRFUNCS { + display "Number of implementations of other ISO C str*() \ + functions" + description " + This covers the other str*() functions defined by ISO C." + requires { 1 >= CYGINT_ISO_STRING_STRFUNCS } + flavor booldata + } + + cdl_option CYGBLD_ISO_STRING_STRFUNCS_HEADER { + display "Other ISO C str*() functions' implementation \ + header" + description " + This covers the other str*() functions defined by ISO C." + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_TIME { + display "Clock and time functionality" + flavor none + no_define + + cdl_option CYGBLD_ISO_TIME_T_HEADER { + display "time_t implementation header" + flavor booldata + default_value 0 + } + + cdl_option CYGBLD_ISO_CLOCK_T_HEADER { + display "clock_t implementation header" + flavor booldata + default_value 0 + } + + cdl_option CYGBLD_ISO_STRUCTTIMEVAL_HEADER { + display "struct timeval implementation header" + flavor booldata + default_value 0 + } + + cdl_option CYGBLD_ISO_FNMATCH_HEADER { + display "fnmatch implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_POSIX_TIMER_TYPES { + display "Number of implementations of POSIX timer types" + requires { 1 >= CYGINT_ISO_POSIX_TIMER_TYPES } + flavor booldata + } + + cdl_option CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER { + display "POSIX timer types implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_POSIX_CLOCK_TYPES { + display "Number of implementations of POSIX clock types" + requires { 1 >= CYGINT_ISO_POSIX_CLOCK_TYPES } + flavor booldata + } + + cdl_option CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER { + display "POSIX clock types implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_C_TIME_TYPES { + display "Number of implementations of ISO C types" + requires { 1 >= CYGINT_ISO_C_TIME_TYPES } + flavor booldata + } + + cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER { + display "ISO C time types implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_POSIX_TIMERS { + display "Number of implementations of POSIX timers" + requires { 1 >= CYGINT_ISO_POSIX_TIMERS } + define _POSIX_TIMERS + flavor booldata + } + + cdl_option CYGBLD_ISO_POSIX_TIMERS_HEADER { + display "POSIX timer implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_POSIX_CLOCKS { + display "Number of implementations of POSIX clocks" + requires { 1 >= CYGINT_ISO_POSIX_CLOCKS } + flavor booldata + } + + cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER { + display "POSIX clocks implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_C_CLOCK_FUNCS { + display "Number of implementations of ISO C clock functions" + requires { 1 >= CYGINT_ISO_C_CLOCK_FUNCS } + flavor booldata + } + + cdl_option CYGBLD_ISO_C_CLOCK_FUNCS_HEADER { + display "ISO C clock functions' implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_TZSET { + display "Number of implementations of tzset() function" + requires { 1 >= CYGINT_ISO_TZSET } + flavor booldata + } + + cdl_option CYGBLD_ISO_TZSET_HEADER { + display "tzset() implementation header" + flavor booldata + default_value 0 + } + } + + +# ==================================================================== + + cdl_component CYGPKG_ISO_SIGNAL { + display "Signal functionality" + flavor none + no_define + + cdl_interface CYGINT_ISO_SIGNAL_NUMBERS { + display "Number of implementations of signal numbers" + requires { 1 >= CYGINT_ISO_SIGNAL_NUMBERS } + } + + cdl_option CYGBLD_ISO_SIGNAL_NUMBERS_HEADER { + display "Signal numbering implementation header" + description "This header provides the mapping of signal + names (e.g. SIGBUS) to numbers." + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_SIGNAL_IMPL { + display "Number of signal implementations" + requires { 1 >= CYGINT_ISO_SIGNAL_IMPL } + } + + cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER { + display "Signals implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_POSIX_REALTIME_SIGNALS { + display "POSIX real time signals feature test macro" + description "This defines the POSIX feature test macro + that indicates that the POSIX real time signals + are present." + requires { 1 >= CYGINT_POSIX_REALTIME_SIGNALS } +# FIXME should use this: define _POSIX_REALTIME_SIGNALS + define_proc { + puts $::cdl_header "#if CYGINT_POSIX_REALTIME_SIGNALS" + puts $::cdl_header "# define _POSIX_REALTIME_SIGNALS 1" + puts $::cdl_header "#endif" + } + } + + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_SETJMP { + display "Non-local jumps functionality" + flavor none + no_define + + cdl_interface CYGINT_ISO_SETJMP { + display "setjmp() / longjmp() implementations" + requires { 1 >= CYGINT_ISO_SETJMP } + } + + cdl_option CYGBLD_ISO_SETJMP_HEADER { + display "setjmp() / longjmp() implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_SIGSETJMP { + display "sigsetjmp() / siglongjmp() implementations" + requires { 1 >= CYGINT_ISO_SIGSETJMP } + } + + cdl_option CYGBLD_ISO_SIGSETJMP_HEADER { + display "sigsetjmp() / siglongjmp() implementation header" + flavor booldata + default_value 0 + } + } + + +# ==================================================================== + + cdl_option CYGBLD_ISO_ASSERT_HEADER { + display "Assertions implementation header" + flavor booldata + default_value 0 + } + + +# ==================================================================== + + cdl_component CYGPKG_ISO_POSIX_FCNTL { + display "POSIX file control" + description "This covers the POSIX file control definitions, + normally found in <fcntl.h>" + flavor none + no_define + + cdl_option CYGBLD_ISO_OFLAG_HEADER { + display "POSIX open flags implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_FCNTL { + display "POSIX fcntl() implementations" + requires { 1 >= CYGINT_ISO_FCNTL } + } + + cdl_option CYGBLD_ISO_FCNTL_HEADER { + display "POSIX fcntl() implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_OPEN { + display "POSIX file open implementations" + requires { 1 >= CYGINT_ISO_OPEN } + } + + cdl_option CYGBLD_ISO_OPEN_HEADER { + display "POSIX file open implementation header" + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_option CYGBLD_ISO_STAT_DEFS_HEADER { + display "<sys/stat.h> definitions implementation header" + flavor booldata + default_value 0 + } + + +# ==================================================================== + + cdl_interface CYGINT_ISO_DIRENT { + display "POSIX directory reading implementation" + requires { 1 >= CYGINT_ISO_DIRENT } + } + + cdl_option CYGBLD_ISO_DIRENT_HEADER { + display "<dirent.h> definitions implementation header" + flavor booldata + default_value 0 + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_POSIX_TYPES { + display "POSIX <sys/types.h> contents" + description "This covers the types required by POSIX to be in + <sys/types.h>" + flavor none + no_define + + cdl_interface CYGINT_ISO_PTHREADTYPES { + display "POSIX thread types implementations" + requires { 1 >= CYGINT_ISO_PTHREADTYPES } + } + + cdl_option CYGBLD_ISO_PTHREADTYPES_HEADER { + display "POSIX thread types implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_PMUTEXTYPES { + display "POSIX mutex types implementations" + requires { 1 >= CYGINT_ISO_PTHREADTYPES } + } + + cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER { + display "POSIX mutex types implementation header" + flavor booldata + default_value 0 + } + + cdl_option CYGBLD_ISO_SSIZE_T_HEADER { + display "ssize_t implementation header" + flavor booldata + default_value 0 + } + cdl_option CYGBLD_ISO_FSTYPES_HEADER { + display "Filesystem types implementation header" + flavor booldata + default_value 0 + } + cdl_option CYGBLD_ISO_SCHEDTYPES_HEADER { + display "gid_t, pid_t, uid_t implementation header" + flavor booldata + default_value 0 + } + } + + +# ==================================================================== + + cdl_component CYGPKG_ISO_EXTRA_TYPES { + display "Non-POSIX <sys/types.h> contents" + description "This covers the extra types required by non-POSIX + packages to be in <sys/types.h>. These would normally + only be visible if _POSIX_SOURCE is not defined." + flavor none + no_define + + cdl_interface CYGINT_ISO_BSDTYPES { + display "BSD compatible types" + requires { 1 >= CYGINT_ISO_BSDTYPES } + } + + cdl_option CYGBLD_ISO_BSDTYPES_HEADER { + display "BSD types header" + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_UTSNAME { + display "Utsname structure" + flavor none + no_define + + cdl_option CYGBLD_ISO_UTSNAME_HEADER { + display "Utsname header" + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_SCHED { + display "POSIX scheduler" + flavor none + no_define + + cdl_interface CYGINT_ISO_SCHED_IMPL { + display "POSIX scheduler implementations" + requires { 1 >= CYGINT_ISO_SCHED_IMPL } + } + + cdl_option CYGBLD_ISO_SCHED_IMPL_HEADER { + display "POSIX scheduler implementation header" + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_SEMAPHORES { + display "POSIX semaphores" + flavor none + no_define + + cdl_interface CYGINT_ISO_SEMAPHORES { + display "POSIX semaphore implementations" + requires { 1 >= CYGINT_ISO_SEMAPHORES } +# FIXME should use this: define _POSIX_SEMAPHORES + define_proc { + puts $::cdl_header "#if CYGINT_ISO_SEMAPHORES" + puts $::cdl_header "# define _POSIX_SEMAPHORES 1" + puts $::cdl_header "#endif" + } + } + + cdl_option CYGBLD_ISO_SEMAPHORES_HEADER { + display "POSIX semaphore implementation header" + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_MQUEUE { + display "POSIX message queues" + flavor none + no_define + + cdl_interface CYGINT_ISO_MQUEUE { + display "Implementations" + requires { 1 >= CYGINT_ISO_MQUEUE } +# FIXME should use this: define _POSIX_MESSAGE_PASSING + define_proc { + puts $::cdl_header "#if CYGINT_ISO_MQUEUE" + puts $::cdl_header "# define _POSIX_MESSAGE_PASSING 1" + puts $::cdl_header "#endif" + } + } + + cdl_option CYGBLD_ISO_MQUEUE_HEADER { + display "Implementation header" + flavor booldata + default_value 0 + } + + cdl_option CYGNUM_ISO_MQUEUE_OPEN_MAX { + display "Maximum number of open message queues" + flavor booldata + active_if CYGINT_ISO_MQUEUE + define MQ_OPEN_MAX +# FIXME: shouldn't be specific to the implementation, see CR + default_value { CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 } + } + + cdl_option CYGNUM_ISO_MQUEUE_PRIO_MAX { + display "Maximum number of message priorities" + flavor booldata +# FIXME: again like CYGNUM_ISO_MQUEUE_OPEN_MAX, should be able to be set by +# the implementation + default_value 65535 + active_if CYGINT_ISO_MQUEUE + define MQ_PRIO_MAX + } + + + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_PTHREAD { + display "POSIX threads" + flavor none + no_define + + cdl_interface CYGINT_ISO_PTHREAD_IMPL { + display "POSIX pthread implementations" + requires { 1 >= CYGINT_ISO_PTHREAD_IMPL } + flavor booldata + } + + cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADER { + display "POSIX pthread implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_PTHREAD_MUTEX { + display "POSIX mutex/cond var implementations" + requires { 1 >= CYGINT_ISO_PTHREAD_MUTEX } + flavor booldata + } + + cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER { + display "POSIX mutex/cond var implementation header" + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_LIMITS { + display "Limits" + flavor none + no_define + + cdl_interface CYGINT_ISO_POSIX_LIMITS { + display "POSIX pthread limits implementations" + requires { 1 >= CYGINT_ISO_POSIX_LIMITS } + } + + cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER { + display "POSIX pthread limits implementation header" + flavor booldata + default_value 0 + } + + cdl_option CYGBLD_ISO_OPEN_MAX_HEADER { + display "OPEN_MAX implementation header" + flavor booldata + default_value 0 + } + cdl_option CYGBLD_ISO_LINK_MAX_HEADER { + display "LINK_MAX implementation header" + flavor booldata + default_value 0 + } + cdl_option CYGBLD_ISO_NAME_MAX_HEADER { + display "NAME_MAX implementation header" + flavor booldata + default_value 0 + } + cdl_option CYGBLD_ISO_PATH_MAX_HEADER { + display "PATH_MAX implementation header" + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_TERMIOS { + display "POSIX termios" + flavor none + no_define + + cdl_interface CYGINT_ISO_TERMIOS { + display "POSIX termios implementations" + requires { 1 >= CYGINT_ISO_TERMIOS } + } + + cdl_option CYGBLD_ISO_TERMIOS_HEADER { + display "POSIX termios implementation header" + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_DLFCN { + display "Dynamic load API" + flavor none + no_define + + cdl_interface CYGINT_ISO_DLFCN { + display "Dynamic load implementations" + requires { 1 >= CYGINT_ISO_DLFCN } + } + + cdl_option CYGBLD_ISO_DLFCN_HEADER { + display "Dynamic load implementation header" + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_UNISTD { + display "UNIX standard functions" + flavor none + no_define + + cdl_interface CYGINT_ISO_POSIX_TIMER_OPS { + display "POSIX timer operations implementations" + flavor booldata + requires { 1 >= CYGINT_ISO_POSIX_TIMER_OPS } + } + + cdl_option CYGBLD_ISO_POSIX_TIMER_OPS_HEADER { + display "POSIX timer operations implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_POSIX_SLEEP { + display "POSIX sleep() implementations" + flavor booldata + requires { 1 >= CYGINT_ISO_POSIX_SLEEP } + } + + cdl_option CYGBLD_ISO_POSIX_SLEEP_HEADER { + display "POSIX sleep() implementation header" + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_SELECT { + display "select()/poll() functions" + flavor none + no_define + + cdl_interface CYGINT_ISO_SELECT { + display "select() implementations" + flavor booldata + requires { 1 >= CYGINT_ISO_SELECT } + } + + cdl_option CYGBLD_ISO_SELECT_HEADER { + display "select() implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_POLL { + display "poll() implementations" + flavor booldata + requires { 1 >= CYGINT_ISO_POLL } + } + + cdl_option CYGBLD_ISO_POLL_HEADER { + display "poll() implementation header" + flavor booldata + default_value 0 + } + } + +# ==================================================================== + + cdl_component CYGPKG_ISO_NETDB { + display "NetDB utility functions" + flavor none + no_define + + cdl_interface CYGINT_ISO_DNS { + display "DNS implementations" + flavor bool + requires { 1 >= CYGINT_ISO_DNS } + } + + cdl_option CYGBLD_ISO_DNS_HEADER { + display "DNS implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_NETDB_PROTO { + display "Protocol network database implementations" + flavor bool + requires { 1 >= CYGINT_ISO_NETDB_PROTO } + } + + cdl_option CYGBLD_ISO_NETDB_PROTO_HEADER { + display "Protocol network database implementation header" + flavor booldata + default_value 0 + } + + cdl_interface CYGINT_ISO_NETDB_SERV { + display "Services network database implementations" + flavor bool + requires { 1 >= CYGINT_ISO_NETDB_SERV } + } + + cdl_option CYGBLD_ISO_NETDB_SERV_HEADER { + display "Services network database implementation header" + flavor booldata + default_value 0 + } + + } + +# ==================================================================== + + cdl_component CYGPKG_ISOINFRA_OPTIONS { + display "Build options" + flavor none + no_define + description " + Package specific build options including control over + compiler flags used only in building this package, + and details of which tests are built." + + + cdl_option CYGPKG_ISOINFRA_CFLAGS_ADD { + display "Additional compiler flags" + flavor data + no_define + default_value { "" } + description " + This option modifies the set of compiler flags for + building the ISO C and POSIX infrastructure package. + These flags are used in addition to the set of global flags." + } + + cdl_option CYGPKG_ISOINFRA_CFLAGS_REMOVE { + display "Suppressed compiler flags" + flavor data + no_define + default_value { "" } + description " + This option modifies the set of compiler flags for + building the ISO C and POSIX infrastructure package. + These flags are removed from the set of global flags + if present." + } + } +} + +# ==================================================================== +# End of isoinfra.cdl diff --git a/ecos/packages/isoinfra/current/include/assert.h b/ecos/packages/isoinfra/current/include/assert.h new file mode 100644 index 0000000..9bc9ecb --- /dev/null +++ b/ecos/packages/isoinfra/current/include/assert.h @@ -0,0 +1,120 @@ +#ifndef CYGONCE_ISO_ASSERT_H +#define CYGONCE_ISO_ASSERT_H +/*======================================================================== +// +// assert.h +// +// ISO C assertions +// +//======================================================================== +// ####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 the assert functions required by +// ISO C and POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <assert.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ +#include <pkgconf/infra.h> /* CYGDBG_USE_ASSERTS */ + +/* INCLUDES */ + +#ifdef CYGBLD_ISO_ASSERT_HEADER +# include CYGBLD_ISO_ASSERT_HEADER +#else + +# ifdef NDEBUG +# define assert( __bool ) ((void)0) +# else /* if NDEBUG is NOT defined */ + +/* First preference is to be standards compliant */ + +#if defined(CYGINT_ISO_STDIO_FORMATTED_IO) && CYGINT_ISO_EXIT + +# include <stdio.h> +# include <stdlib.h> + +# define assert( __bool ) \ + do { \ + if (0 == (__bool)) { \ + fprintf( stderr, "User assertion failed: \"%s\", at %s:%d\n", \ + #__bool, __FILE__, __LINE__); \ + abort(); \ + } \ + } while(0) + + +/* Second preference is to use the common infra assertion support */ + +#elif defined(CYGDBG_USE_ASSERTS) + +# include <cyg/infra/cyg_ass.h> + +# define assert( __bool ) \ + CYG_MACRO_START \ + CYG_ASSERT( __bool, "User assertion failed: \"" #__bool "\"" ); \ + CYG_MACRO_END +#else /* Fallback */ + +# include <cyg/infra/diag.h> + +# define assert( __bool ) \ + do { \ + if (0 == (__bool)) { \ + diag_printf( "User assertion failed: \"%s\", at %s:%d\n", \ + #__bool, __FILE__, __LINE__); \ + for (;;); \ + } \ + } while(0) + +#endif + +# endif /* NDEBUG not defined */ +#endif + +#endif /* CYGONCE_ISO_ASSERT_H multiple inclusion protection */ + +/* EOF assert.h */ diff --git a/ecos/packages/isoinfra/current/include/ctype.h b/ecos/packages/isoinfra/current/include/ctype.h new file mode 100644 index 0000000..32bb852 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/ctype.h @@ -0,0 +1,131 @@ +#ifndef CYGONCE_ISO_CTYPE_H +#define CYGONCE_ISO_CTYPE_H +/*======================================================================== +// +// ctype.h +// +// ISO ctype functions +// +//======================================================================== +// ####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 the ctype functions required by +// ISO C 9899:1990 and POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <ctype.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +#if CYGINT_ISO_CTYPE +# ifdef CYGBLD_ISO_CTYPE_HEADER +# include CYGBLD_ISO_CTYPE_HEADER +# else + +#ifdef __cplusplus +extern "C" { +#endif + +/* FUNCTION PROTOTYPES */ + +//=========================================================================*/ + +/* 7.3.1 Character testing functions */ + +extern int +isalnum( int ); + +extern int +isalpha( int ); + +extern int +iscntrl( int ); + +extern int +isdigit( int ); + +extern int +isgraph( int ); + +extern int +islower( int ); + +extern int +isprint( int ); + +extern int +ispunct( int ); + +extern int +isspace( int ); + +extern int +isupper( int ); + +extern int +isxdigit( int ); + +/*=========================================================================*/ + +/* 7.3.2 Character case mapping functions */ + +extern int +tolower( int ); + +extern int +toupper( int ); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif +#endif + +#endif /* CYGONCE_ISO_CTYPE_H multiple inclusion protection */ + +/* EOF ctype.h */ diff --git a/ecos/packages/isoinfra/current/include/dirent.h b/ecos/packages/isoinfra/current/include/dirent.h new file mode 100644 index 0000000..7bffd00 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/dirent.h @@ -0,0 +1,94 @@ +#ifndef CYGONCE_ISO_DIRENT_H +#define CYGONCE_ISO_DIRENT_H +/*======================================================================== +// +// dirent.h +// +// POSIX file control functions +// +//======================================================================== +// ####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): nickg +// Contributors: +// Date: 2000-06-26 +// Purpose: This file provides the macros, types and functions +// for directory operations required by POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <dirent.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* INCLUDES */ + +#include <pkgconf/isoinfra.h> + +#include <sys/types.h> +#include <limits.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#if CYGINT_ISO_DIRENT +#ifdef CYGBLD_ISO_DIRENT_HEADER +# include CYGBLD_ISO_DIRENT_HEADER +#endif + +/* PROTOTYPES */ + +extern DIR *opendir( const char *dirname ); + +extern struct dirent *readdir( DIR *dirp ); + +extern int readdir_r( DIR *dirp, struct dirent *entry, struct dirent **result ); + +extern void rewinddir( DIR *dirp ); + +extern int closedir( DIR *dirp ); + +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* CYGONCE_ISO_DIRENT_H multiple inclusion protection */ + +/* EOF dirent.h */ diff --git a/ecos/packages/isoinfra/current/include/dlfcn.h b/ecos/packages/isoinfra/current/include/dlfcn.h new file mode 100644 index 0000000..9dd9ef7 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/dlfcn.h @@ -0,0 +1,64 @@ +#ifndef CYGONCE_ISO_DLFCN_H +#define CYGONCE_ISO_DLFCN_H +/*======================================================================== +// +// dlfcn.h +// +// Dynamic load functions +// +//======================================================================== +// ####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): nickg +// Contributors: +// Date: 2000-12-13 +// Purpose: This file provides the dynamic loading macros, types and functions +// required by POSIX 1003.1. +// Usage: #include <dlfcn.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +#ifdef CYGBLD_ISO_DLFCN_HEADER +# include CYGBLD_ISO_DLFCN_HEADER +#endif + +//====================================================================== +#endif /* CYGONCE_ISO_DLFCN_H multiple inclusion protection */ +/* EOF dlfcn.h */ diff --git a/ecos/packages/isoinfra/current/include/errno.h b/ecos/packages/isoinfra/current/include/errno.h new file mode 100644 index 0000000..5627bf6 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/errno.h @@ -0,0 +1,75 @@ +#ifndef CYGONCE_ISO_ERRNO_H +#define CYGONCE_ISO_ERRNO_H +/*======================================================================== +// +// errno.h +// +// ISO errno variable and constants +// +//======================================================================== +// ####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-07 +// Purpose: This file provides the errno variable (or more strictly +// expression) and the E* error codes required by ISO C +// and POSIX 1003.1 +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <errno.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +#if CYGINT_ISO_ERRNO_CODES +# include CYGBLD_ISO_ERRNO_CODES_HEADER +#endif + +#if CYGINT_ISO_ERRNO +# include CYGBLD_ISO_ERRNO_HEADER +#endif + +#endif /* CYGONCE_ISO_ERRNO_H multiple inclusion protection */ + +/* EOF errno.h */ diff --git a/ecos/packages/isoinfra/current/include/fcntl.h b/ecos/packages/isoinfra/current/include/fcntl.h new file mode 100644 index 0000000..2fafadd --- /dev/null +++ b/ecos/packages/isoinfra/current/include/fcntl.h @@ -0,0 +1,168 @@ +#ifndef CYGONCE_ISO_FCNTL_H +#define CYGONCE_ISO_FCNTL_H +/*======================================================================== +// +// fcntl.h +// +// POSIX file control functions +// +//======================================================================== +// ####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-05-05 +// Purpose: This file provides the macros, types and functions +// for file control required by POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <fcntl.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +#ifdef CYGBLD_ISO_OFLAG_HEADER +# include CYGBLD_ISO_OFLAG_HEADER +#else + +/* 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 /* ifndef CYGBLD_ISO_OFLAG_HEADER */ + + +#if CYGINT_ISO_FCNTL +# ifdef CYGBLD_ISO_FCNTL_HEADER +# include CYGBLD_ISO_FCNTL_HEADER +# else + +/* fcntl() command values */ + +#define F_DUPFD (1<<0) /* Duplicate file descriptor */ +#define F_GETFD (1<<1) /* Get file descriptor flags */ +#define F_SETFD (1<<2) /* Set file descriptor flags */ +#define F_GETFL (1<<3) /* Get file status flags */ +#define F_SETFL (1<<4) /* Set file status flags */ +#define F_GETLK (1<<5) /* Get record locking information */ +#define F_SETLK (1<<6) /* Set record locking information */ +#define F_SETLKW (1<<7) /* Set record locking info; wait if blocked */ + +/* fd flags */ +#define FD_CLOEXEC (1<<0) /* Close fd on exec */ + +/* Lock types */ + +#define F_RDLCK (1<<0) /* Shared or read lock */ +#define F_UNLCK (1<<1) /* Unlock */ +#define F_WRLCK (1<<2) /* Exclusive or write lock */ + +#include <sys/types.h> /* off_t, pid_t */ + +struct flock { + short l_type; /* F_RDLCK, F_WRLCK, F_UNLCK */ + short l_whence; /* Flag for starting offset */ + off_t l_start; /* Relative offset in bytes */ + off_t l_len; /* Size; if 0, then until EOF */ + pid_t l_pid; /* Process ID of the process holding the lock, + * returned with F_GETLK. */ +}; + +#ifdef __cplusplus +extern "C" +#else +extern +#endif + +int +fcntl( int /* fildes */, int /* cmd */, ... ); + +# endif /* ifndef CYGBLD_ISO_FCNTL_HEADER */ +#endif /* if CYGINT_ISO_FCNTL */ + + +#if CYGINT_ISO_OPEN +# ifdef CYGBLD_ISO_OPEN_HEADER +# include CYGBLD_ISO_OPEN_HEADER +# else + +#ifdef __cplusplus +extern "C" { +#endif + +#include <sys/types.h> /* mode_t */ + +extern int +open( const char * /* path */, int /* oflag */, ... ); + +extern int +creat( const char * /* path */, mode_t /* mode */ ); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif /* ifndef CYGBLD_ISO_OPEN_HEADER */ +#endif /* if CYGINT_ISO_OPEN */ + +#endif /* CYGONCE_ISO_FCNTL_H multiple inclusion protection */ + +/* EOF fcntl.h */ diff --git a/ecos/packages/isoinfra/current/include/float.h b/ecos/packages/isoinfra/current/include/float.h new file mode 100644 index 0000000..f2e15cb --- /dev/null +++ b/ecos/packages/isoinfra/current/include/float.h @@ -0,0 +1,66 @@ +/* Do not define CYGONCE_ISO_FLOAT_H. It is not appropriate for this file */ +/*======================================================================== +// +// float.h +// +// ISO standard float-point properties +// +//======================================================================== +// ####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 the floating-point related properties +// required by ISO C +// Description: This file is really provided by the compiler, although in +// due course we may override things here. +// +// The main purpose of this file is as a comment to the FAQ +// about where float.h lives: it is provided by the compiler, +// which for current gcc can be found by looking in the +// include directory in the same place as the specs file +// which you can determine from TARGET-gcc -v, +// e.g. arm-elf-gcc -v +// Usage: #include <float.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +#include_next <float.h> + +/* EOF float.h */ diff --git a/ecos/packages/isoinfra/current/include/fnmatch.h b/ecos/packages/isoinfra/current/include/fnmatch.h new file mode 100644 index 0000000..3bd8039 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/fnmatch.h @@ -0,0 +1,70 @@ +#ifndef CYGONCE_ISO_FNMATCH_H +#define CYGONCE_ISO_FNMATCH_H +/*======================================================================== +// +// fnmatch.h +// +// fnmatch() +// +//======================================================================== +// ####ECOSGPLCOPYRIGHTBEGIN#### +// ------------------------------------------- +// This file is part of eCos, the Embedded Configurable Operating System. +// Copyright (C) 2007 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): Peter Korsgaard <peter.korsgaard@barco.com> +// Contributors: +// Date: 2007-01-24 +// Purpose: This file provides the fnmatch() function +// required by POSIX 1003.2-1992, section B.6. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <fnmatch.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +#ifdef CYGBLD_ISO_FNMATCH_HEADER +# include CYGBLD_ISO_FNMATCH_HEADER +#endif + +#endif /* CYGONCE_ISO_FNMATCH_H multiple inclusion protection */ + +/* EOF fnmatch.h */ diff --git a/ecos/packages/isoinfra/current/include/limits.h b/ecos/packages/isoinfra/current/include/limits.h new file mode 100644 index 0000000..e5fc30f --- /dev/null +++ b/ecos/packages/isoinfra/current/include/limits.h @@ -0,0 +1,224 @@ +#ifndef CYGONCE_ISO_LIMITS_H +#define CYGONCE_ISO_LIMITS_H +/*======================================================================== +// +// limits.h +// +// ISO standard limits +// +//======================================================================== +// ####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 the limits properties +// required by ISO C and POSIX 1003.1 +// Description: The real contents of this file get set from the +// configuration (set by the implementation), as well as +// being partially provided by the compiler. +// +// Usage: #include <limits.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* 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_SSIZE_T_HEADER +# include CYGBLD_ISO_SSIZE_T_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 + +#endif /* CYGONCE_ISO_LIMITS_H multiple inclusion protection */ + /* Yes it must be ended here! */ + +/* When using a crosscompiler targeting linux, the next limits.h file + in the include sequence may be the glibc header - which breaks our + world. So skip it by defining _LIBC_LIMITS_H_ */ +#define _LIBC_LIMITS_H_ + +/* Secondly only include if we haven't already been included by it. */ +#ifndef _GCC_LIMITS_H_ +# include_next <limits.h> +#endif + +/* EOF limits.h */ diff --git a/ecos/packages/isoinfra/current/include/locale.h b/ecos/packages/isoinfra/current/include/locale.h new file mode 100644 index 0000000..7eb8ce9 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/locale.h @@ -0,0 +1,147 @@ +#ifndef CYGONCE_ISO_LOCALE_H +#define CYGONCE_ISO_LOCALE_H +/*======================================================================== +// +// locale.h +// +// ISO locale functions +// +//======================================================================== +// ####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 the locale functions required by +// ISO C and POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <locale.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +/* This is the "standard" way to get NULL from stddef.h, + * which is the canonical location of the definitions. + */ +#define __need_NULL +#include <stddef.h> + +#if CYGINT_ISO_LOCALE +# ifdef CYGBLD_ISO_LOCALE_HEADER +# include CYGBLD_ISO_LOCALE_HEADER +# else + +/* TYPE DEFINITIONS */ + +/* struct lconv contains information about numeric and monetary numbers + * and is described in the ISO C standard section 7.4 */ + +struct lconv { + + /* the following affect formatted NONMONETARY QUANTITIES only */ + char *decimal_point; /* decimal point */ + char *thousands_sep; /* separates groups of digits before decimal + point */ + char *grouping; /* string whose elements indicate the size */ + /* of each group of digits */ + + /* the following affect formatted MONETARY QUANTITIES only */ + char *int_curr_symbol; /* international curreny symbol */ + char *currency_symbol; /* local currency symbol */ + char *mon_decimal_point; /* decimal point */ + char *mon_thousands_sep; /* separator for groups of digits + before the decimal point */ + char *mon_grouping; /* string whose elements indicate the size + of each group of digits */ + char *positive_sign; /* string to indicate zero or positive value */ + char *negative_sign; /* string to indicate negative value */ + char int_frac_digits; /* number of digits after decimal point for + internationally formatted monetary nums */ + char frac_digits; /* number of digits after decimal point for + formatted monetary nums */ + char p_cs_precedes; /* 1 if currency_symbol precedes non-negative + monetary quantity. 0 if succeeds */ + char p_sep_by_space; /* 1 if currency_symbol separated from value + of non-negative monetary quantity by space. + Otherwise 0. */ + char n_cs_precedes; /* 1 if currency_symbol precedes negative + monetary quantity. 0 if succeeds */ + char n_sep_by_space; /* 1 if currency_symbol separated from value + of negative monetary quantity by space. + Otherwise 0. */ + char p_sign_posn; /* set according to position of positive_sign */ + char n_sign_posn; /* set according to position of negative_sign */ +}; + +/* CONSTANTS */ + +#define LC_COLLATE (1<<0) +#define LC_CTYPE (1<<1) +#define LC_MONETARY (1<<2) +#define LC_NUMERIC (1<<3) +#define LC_TIME (1<<4) +#define LC_ALL (LC_COLLATE|LC_CTYPE|LC_MONETARY|LC_NUMERIC|LC_TIME) + +/* FUNCTION PROTOTYPES */ + +#ifdef __cplusplus +extern "C" { +#endif + +extern char * +setlocale( int /* category */, const char * /* locale */ ); + +extern struct lconv * +localeconv( void ); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif /* #elif !defined(CYGBLD_ISO_LOCALE_HEADER) */ +#endif /* CYGINT_ISO_LOCALE */ + +#endif /* CYGONCE_ISO_LOCALE_H multiple inclusion protection */ + +/* EOF locale.h */ diff --git a/ecos/packages/isoinfra/current/include/mqueue.h b/ecos/packages/isoinfra/current/include/mqueue.h new file mode 100644 index 0000000..df76d35 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/mqueue.h @@ -0,0 +1,148 @@ +#ifndef CYGONCE_ISO_MQUEUE_H +#define CYGONCE_ISO_MQUEUE_H +/*======================================================================== +// +// mqueue.h +// +// POSIX message queue functions +// +//======================================================================== +// ####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-05-05 +// Purpose: This file provides the macros, types and functions +// for message queues required by POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <mqueue.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ +#include <pkgconf/kernel.h> /* CYGFUN_KERNEL_THREADS_TIMER */ + +/* INCLUDES */ + +#ifdef _POSIX_MESSAGE_PASSING +# ifdef CYGBLD_ISO_MQUEUE_HEADER +# include CYGBLD_ISO_MQUEUE_HEADER +# else + +#include <sys/types.h> /* size_t and ssize_t */ + +/* TYPES */ + +struct mq_attr { + long mq_flags; /* mqueue flags */ + long mq_maxmsg; /* max number of messages */ + long mq_msgsize; /* max message size */ + long mq_curmsgs; /* number of messages currently queued */ +}; + +typedef void *mqd_t; + +#ifdef __cplusplus +extern "C" { +#endif + +/* FUNCTIONS */ + +extern mqd_t +mq_open( const char * /* name */, int /* oflag */, ... ); + +extern int +mq_close( mqd_t /* mqdes */ ); + +extern int +mq_unlink( const char * /* name */ ); + +extern int +mq_send( mqd_t /* mqdes */, const char * /* msg_ptr */, size_t /* msg_len */, + unsigned int /* msg_prio */ ); + +extern ssize_t +mq_receive( mqd_t /* mqdes */, char * /* msg_ptr */, size_t /* msg_len */, + unsigned int * /* msg_prio */ ); + +#ifdef _POSIX_REALTIME_SIGNALS + +struct sigevent; + +extern int +mq_notify( mqd_t /* mqdes */, const struct sigevent * /* notification */ ); +#endif + +extern int +mq_setattr( mqd_t /* mqdes */, const struct mq_attr * /* mqstat */, + struct mq_attr * /* omqstat */ ); + +extern int +mq_getattr( mqd_t /* mqdes */, struct mq_attr * /* mqstat */ ); + +# ifdef CYGFUN_KERNEL_THREADS_TIMER +/* POSIX 1003.1d Draft functions - FIXME: should be conditionalized */ + +struct timespec; /* forward declaration */ + +extern int +mq_timedsend( mqd_t /* mqdes */, const char * /* msg_ptr */, + size_t /* msg_len */, unsigned int /* msg_prio */, + const struct timespec * /* abs_timeout */ ); + +extern ssize_t +mq_timedreceive( mqd_t /* mqdes */, char * /* msg_ptr */, + size_t /* msg_len */, unsigned int * /* msg_prio */, + const struct timespec * /* abs_timeout */ ); +# endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + + +# endif /* ifndef CYGBLD_ISO_MQUEUE_HEADER */ +#endif /* ifdef _POSIX_MESSAGE_PASSING */ + + +#endif /* CYGONCE_ISO_MQUEUE_H multiple inclusion protection */ + +/* EOF mqueue.h */ diff --git a/ecos/packages/isoinfra/current/include/netdb.h b/ecos/packages/isoinfra/current/include/netdb.h new file mode 100644 index 0000000..ccf84d2 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/netdb.h @@ -0,0 +1,106 @@ +#ifndef CYGONCE_ISO_NETDB_H +#define CYGONCE_ISO_NETDB_H +/*========================================================================== +// +// netdb.h +// +// Network database functions +// +//========================================================================== +// ####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): jskov,jlarmour +// Contributors: +// Date: 2001-09-28 +// Purpose: Provides network database types and function API. +// Description: Much of the real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <netdb.h> +// +// +//####DESCRIPTIONEND#### +// +//========================================================================*/ + +#include <pkgconf/isoinfra.h> + +#ifdef CYGINT_ISO_DNS +# ifdef CYGBLD_ISO_DNS_HEADER +# include CYGBLD_ISO_DNS_HEADER +# endif +#else + +/* Provide dummy entries so that legacy code that relies on the presence + of these types/functions still works. */ + +/* Host name / IP mapping fallback when not using a real DNS implementation */ +struct hostent { + char *h_name; /* official name of host */ + char **h_aliases; /* alias list */ + int h_addrtype; /* host address type */ + int h_length; /* length of address */ + char **h_addr_list; /* list of addresses */ +}; +#define h_addr h_addr_list[0] /* for backward compatibility */ + +static inline struct hostent * +gethostbyname( const char *__host ) +{ + return NULL; +} + +static inline struct hostent * +gethostbyaddr( const char * __addr, int __len, int __type ) +{ + return NULL; +} + +#endif /* ifdef CYGINT_ISO_DNS */ + +#ifdef CYGINT_ISO_NETDB_PROTO +# ifdef CYGBLD_ISO_NETDB_PROTO_HEADER +# include CYGBLD_ISO_NETDB_PROTO_HEADER +# endif +#endif + +#ifdef CYGINT_ISO_NETDB_SERV +# ifdef CYGBLD_ISO_NETDB_SERV_HEADER +# include CYGBLD_ISO_NETDB_SERV_HEADER +# endif +#endif + +#endif /* CYGONCE_ISO_NETDB_H multiple inclusion protection */ + +/* EOF netdb.h */ diff --git a/ecos/packages/isoinfra/current/include/pthread.h b/ecos/packages/isoinfra/current/include/pthread.h new file mode 100644 index 0000000..55c44d0 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/pthread.h @@ -0,0 +1,78 @@ +#ifndef CYGONCE_ISO_PTHREAD_H +#define CYGONCE_ISO_PTHREAD_H +/*======================================================================== +// +// pthread.h +// +// POSIX pthread functions +// +//======================================================================== +// ####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 the macros, types and functions +// for pthreads required by POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <pthread.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +#ifdef CYGINT_ISO_PTHREAD_IMPL +# ifdef CYGBLD_ISO_PTHREAD_IMPL_HEADER +# include CYGBLD_ISO_PTHREAD_IMPL_HEADER +# endif +#endif + +#ifdef CYGINT_ISO_PTHREAD_MUTEX +# ifdef CYGBLD_ISO_PTHREAD_MUTEX_HEADER +# include CYGBLD_ISO_PTHREAD_MUTEX_HEADER +# endif +#endif + +#endif /* CYGONCE_ISO_PTHREAD_H multiple inclusion protection */ + +/* EOF pthread.h */ diff --git a/ecos/packages/isoinfra/current/include/sched.h b/ecos/packages/isoinfra/current/include/sched.h new file mode 100644 index 0000000..3a64455 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/sched.h @@ -0,0 +1,124 @@ +#ifndef CYGONCE_ISO_SCHED_H +#define CYGONCE_ISO_SCHED_H +/*======================================================================== +// +// sched.h +// +// POSIX scheduler functions +// +//======================================================================== +// ####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 the scheduler macros, types and functions +// required by POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <sched.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +#include <time.h> + +#if CYGINT_ISO_SCHED_IMPL +# ifdef CYGBLD_ISO_SCHED_IMPL_HEADER +# include CYGBLD_ISO_SCHED_IMPL_HEADER +# else + +//----------------------------------------------------------------------------- +// Scheduling Policys + +#define SCHED_OTHER 1 +#define SCHED_FIFO 2 +#define SCHED_RR 3 + +//----------------------------------------------------------------------------- +//Process scheduling functions. + +#ifdef __cplusplus +extern "C" { +#endif + +// Set scheduling parameters for given process. +extern int sched_setparam (pid_t pid, const struct sched_param *param); + +// Get scheduling parameters for given process. +extern int sched_getparam (pid_t pid, struct sched_param *param); + +// Set scheduling policy and/or parameters for given process. +extern int sched_setscheduler (pid_t pid, + int policy, + const struct sched_param *param); + +// Get scheduling policy for given process. +extern int sched_getscheduler (pid_t pid); + +// Force current thread to relinquish the processor. +extern int sched_yield (void); + +//----------------------------------------------------------------------------- +// Scheduler parameter limits. + +// Get maximum priority value for a policy. +extern int sched_get_priority_max (int policy); + +// Get minimum priority value for a policy. +extern int sched_get_priority_min (int policy); + +// Get the SCHED_RR interval for the given process. +extern int sched_rr_get_interval (pid_t pid, struct timespec *t); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif + +#endif /* if CYGINT_ISO_SCHED_IMPL */ + +#endif /* CYGONCE_ISO_SCHED_H multiple inclusion protection */ + +/* EOF sched.h */ diff --git a/ecos/packages/isoinfra/current/include/semaphore.h b/ecos/packages/isoinfra/current/include/semaphore.h new file mode 100644 index 0000000..136a52c --- /dev/null +++ b/ecos/packages/isoinfra/current/include/semaphore.h @@ -0,0 +1,72 @@ +#ifndef CYGONCE_ISO_SEMAPHORE_H +#define CYGONCE_ISO_SEMAPHORE_H +/*======================================================================== +// +// semaphore.h +// +// POSIX semaphore functions +// +//======================================================================== +// ####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 the semaphor macros, types and functions +// required by POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <semaphore.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +#ifdef _POSIX_SEMAPHORES +# ifdef CYGBLD_ISO_SEMAPHORES_HEADER +# include CYGBLD_ISO_SEMAPHORES_HEADER +# endif +#endif + +#endif /* CYGONCE_ISO_SEMAPHORE_H multiple inclusion protection */ + +/* EOF semaphore.h */ diff --git a/ecos/packages/isoinfra/current/include/setjmp.h b/ecos/packages/isoinfra/current/include/setjmp.h new file mode 100644 index 0000000..df4d338 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/setjmp.h @@ -0,0 +1,74 @@ +#ifndef CYGONCE_ISO_SETJMP_H +#define CYGONCE_ISO_SETJMP_H +/*======================================================================== +// +// setjmp.h +// +// ISO non-local jump functions +// +//======================================================================== +// ####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 the setjmp macros, types and functions +// required by ISO C and POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <setjmp.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +#if CYGINT_ISO_SETJMP +# include CYGBLD_ISO_SETJMP_HEADER +#endif + +#if CYGINT_ISO_SIGSETJMP +# include CYGBLD_ISO_SIGSETJMP_HEADER +#endif + +#endif /* CYGONCE_ISO_SETJMP_H multiple inclusion protection */ + +/* EOF setjmp.h */ diff --git a/ecos/packages/isoinfra/current/include/signal.h b/ecos/packages/isoinfra/current/include/signal.h new file mode 100644 index 0000000..0eb91a2 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/signal.h @@ -0,0 +1,75 @@ +#ifndef CYGONCE_ISO_SIGNAL_H +#define CYGONCE_ISO_SIGNAL_H +/*======================================================================== +// +// signal.h +// +// ISO signal functions +// +//======================================================================== +// ####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 the signal macros, types and functions +// required by ISO C and POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <signal.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +#if CYGINT_ISO_SIGNAL_NUMBERS +# include CYGBLD_ISO_SIGNAL_NUMBERS_HEADER +#endif + +#if CYGINT_ISO_SIGNAL_IMPL +# include CYGBLD_ISO_SIGNAL_IMPL_HEADER +#endif + + +#endif /* CYGONCE_ISO_SIGNAL_H multiple inclusion protection */ + +/* EOF signal.h */ diff --git a/ecos/packages/isoinfra/current/include/stdarg.h b/ecos/packages/isoinfra/current/include/stdarg.h new file mode 100644 index 0000000..5002537 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/stdarg.h @@ -0,0 +1,66 @@ +/* Do not define CYGONCE_ISO_STDARG_H. It is not appropriate for this file */ +/*======================================================================== +// +// stdarg.h +// +// ISO standard variable argument functionality +// +//======================================================================== +// ####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 the variable argument macros required +// by ISO C +// Description: This file is really provided by the compiler, although in +// due course we may override things here. +// +// The main purpose of this file is as a comment to the FAQ +// about where stdarg.h lives: it is provided by the compiler, +// which for current gcc can be found by looking in the +// include directory in the same place as the specs file +// which you can determine from TARGET-gcc -v, +// e.g. arm-elf-gcc -v +// Usage: #include <stdarg.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +#include_next <stdarg.h> + +/* EOF stdarg.h */ diff --git a/ecos/packages/isoinfra/current/include/stddef.h b/ecos/packages/isoinfra/current/include/stddef.h new file mode 100644 index 0000000..37fd38e --- /dev/null +++ b/ecos/packages/isoinfra/current/include/stddef.h @@ -0,0 +1,65 @@ +/* Do not define CYGONCE_ISO_STDDEF_H. It is not appropriate for this file */ +/*======================================================================== +// +// stddef.h +// +// ISO standard defines +// +//======================================================================== +// ####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 the standard defines required by ISO C +// Description: This file is really provided by the compiler, although in +// due course we may override things here. +// +// The main purpose of this file is as a comment to the FAQ +// about where stddef.h lives: it is provided by the compiler, +// which for current gcc can be found by looking in the +// include directory in the same place as the specs file +// which you can determine from TARGET-gcc -v, +// e.g. arm-elf-gcc -v +// Usage: #include <stddef.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +#include_next <stddef.h> + +/* EOF stddef.h */ diff --git a/ecos/packages/isoinfra/current/include/stdio.h b/ecos/packages/isoinfra/current/include/stdio.h new file mode 100644 index 0000000..93e278b --- /dev/null +++ b/ecos/packages/isoinfra/current/include/stdio.h @@ -0,0 +1,155 @@ +#ifndef CYGONCE_ISO_STDIO_H +#define CYGONCE_ISO_STDIO_H +/*======================================================================== +// +// stdio.h +// +// ISO standard I/O functions +// +//======================================================================== +// ####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 the stdio functions required by +// ISO C and POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <stdio.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +/* This is the "standard" way to get NULL and size_t from stddef.h, + * which is the canonical location of the definitions. + */ +#define __need_NULL +#define __need_size_t +#include <stddef.h> + +/* Misc functions below use varargs stuff, so pull it in from the compiler + * here to save duplication. + */ + +#define __need___va_list +#include <stdarg.h> + +#ifdef CYGINT_ISO_STDIO_FILETYPES +# ifdef CYGBLD_ISO_STDIO_FILETYPES_HEADER +# include CYGBLD_ISO_STDIO_FILETYPES_HEADER +# endif +#endif + +#ifdef CYGINT_ISO_STDIO_STREAMS +# ifdef CYGBLD_ISO_STDIO_STREAMS_HEADER +# include CYGBLD_ISO_STDIO_STREAMS_HEADER +# endif +#endif + +#ifdef CYGINT_ISO_STDIO_FILEOPS +# ifdef CYGBLD_ISO_STDIO_FILEOPS_HEADER +# include CYGBLD_ISO_STDIO_FILEOPS_HEADER +# endif +#endif + +#ifdef CYGINT_ISO_STDIO_FILEACCESS +# ifdef CYGBLD_ISO_STDIO_FILEACCESS_HEADER +# include CYGBLD_ISO_STDIO_FILEACCESS_HEADER +# endif +#endif + +#ifdef CYGINT_ISO_STDIO_FORMATTED_IO +# ifdef CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER +# include CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER +# endif +#endif + +#ifdef CYGINT_ISO_STDIO_CHAR_IO +# ifdef CYGBLD_ISO_STDIO_CHAR_IO_HEADER +# include CYGBLD_ISO_STDIO_CHAR_IO_HEADER +# endif +#endif + +#ifdef CYGINT_ISO_STDIO_DIRECT_IO +# ifdef CYGBLD_ISO_STDIO_DIRECT_IO_HEADER +# include CYGBLD_ISO_STDIO_DIRECT_IO_HEADER +# endif +#endif + +#ifdef CYGINT_ISO_STDIO_FILEPOS +# ifdef CYGBLD_ISO_STDIO_FILEPOS_HEADER +# include CYGBLD_ISO_STDIO_FILEPOS_HEADER +# endif +#endif + +#ifdef CYGINT_ISO_STDIO_ERROR +# ifdef CYGBLD_ISO_STDIO_ERROR_HEADER +# include CYGBLD_ISO_STDIO_ERROR_HEADER +# endif +#endif + +#ifdef CYGINT_ISO_STDIO_POSIX_FDFUNCS +# ifdef CYGBLD_ISO_STDIO_POSIX_FDFUNCS_HEADER +# include CYGBLD_ISO_STDIO_POSIX_FDFUNCS_HEADER +# else + +# ifdef __cplusplus +extern "C" { +# endif + +extern int +fileno( FILE *__stream ) __THROW; + +extern FILE * +fdopen( int __fildes, const char *__type ) __THROW; + +# ifdef __cplusplus +} // extern "C" +# endif +# endif +#endif + +#endif /* CYGONCE_ISO_STDIO_H multiple inclusion protection */ + +/* EOF stdio.h */ diff --git a/ecos/packages/isoinfra/current/include/stdlib.h b/ecos/packages/isoinfra/current/include/stdlib.h new file mode 100644 index 0000000..32ae4ea --- /dev/null +++ b/ecos/packages/isoinfra/current/include/stdlib.h @@ -0,0 +1,507 @@ +#ifndef CYGONCE_ISO_STDLIB_H +#define CYGONCE_ISO_STDLIB_H +/*======================================================================== +// +// stdlib.h +// +// ISO standard library functions +// +//======================================================================== +// ####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 the stdlib functions required by +// ISO C and POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <stdlib.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +/* This is the "standard" way to get NULL, wchar_t and size_t from stddef.h, + * which is the canonical location of the definitions. + */ +#define __need_NULL +#define __need_size_t +#define __need_wchar_t +#include <stddef.h> + +#include <cyg/infra/cyg_type.h> /* For CYGBLD_ATTRIB_NORET etc. */ + +/*==========================================================================*/ + +#if CYGINT_ISO_STDLIB_STRCONV +# ifdef CYGBLD_ISO_STDLIB_STRCONV_HEADER +# include CYGBLD_ISO_STDLIB_STRCONV_HEADER +# else + +/* ISO C 7.10.1 - String conversion functions */ + +#ifdef __cplusplus +extern "C" { +#endif + +extern int +atoi( const char * /* int_str */ ); + +extern long +atol( const char * /* long_str */ ); + +extern long +strtol( const char * /* long_str */, char ** /* endptr */, + int /* base */ ); + +extern unsigned long +strtoul( const char * /* ulong_str */, char ** /* endptr */, + int /* base */ ); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + + +# endif +#endif + +/*==========================================================================*/ + +#if CYGINT_ISO_STDLIB_STRCONV_FLOAT +# ifdef CYGBLD_ISO_STDLIB_STRCONV_FLOAT_HEADER +# include CYGBLD_ISO_STDLIB_STRCONV_FLOAT_HEADER +# else + +/* ISO C 7.10.1 - String conversion functions */ + +#ifdef __cplusplus +extern "C" { +#endif + +extern double +atof( const char * /* double_str */ ); + +extern double +strtod( const char * /* double_str */, char ** /* endptr */ ); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + + +# endif +#endif + +/*==========================================================================*/ + +#if CYGINT_ISO_RAND +# ifdef CYGBLD_ISO_RAND_HEADER +# include CYGBLD_ISO_RAND_HEADER +# else + +/* ISO C 7.10.2 - Pseudo-random sequence generation functions */ + +/* Maximum value returned by rand(). */ +#define RAND_MAX 2147483647 + +#ifdef __cplusplus +extern "C" { +#endif + +extern int +rand( void ); + +extern void +srand( unsigned int /* seed */ ); + +/* POSIX 1003.1 section 8.3.8 rand_r() */ +extern int +rand_r( unsigned int * /* seed */ ); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif +#endif + +/*==========================================================================*/ + +#if CYGINT_ISO_MALLOC +# ifdef CYGBLD_ISO_MALLOC_HEADER +# include CYGBLD_ISO_MALLOC_HEADER +# else + +/* ISO C 7.10.3 - Memory management functions */ + +#ifdef __cplusplus +extern "C" { +#endif + +extern void * +calloc( size_t /* num_objects */, size_t /* object_size */ ); + +extern void +free( void * /* ptr */ ); + +extern void * +malloc( size_t /* size */ ); + +extern void * +realloc( void * /* ptr */, size_t /* size */ ); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif +#endif + +/*==========================================================================*/ + +#if CYGINT_ISO_MALLINFO +# ifdef CYGBLD_ISO_MALLINFO_HEADER +# include CYGBLD_ISO_MALLINFO_HEADER +# else + +#ifdef __cplusplus +extern "C" { +#endif + +/* SVID2/XPG mallinfo structure */ + +struct mallinfo { + int arena; /* total size of memory arena */ + int ordblks; /* number of ordinary memory blocks */ + int smblks; /* number of small memory blocks */ + int hblks; /* number of mmapped regions */ + int hblkhd; /* total space in mmapped regions */ + int usmblks; /* space used by small memory blocks */ + int fsmblks; /* space available for small memory blocks */ + int uordblks; /* space used by ordinary memory blocks */ + int fordblks; /* space free for ordinary blocks */ + int keepcost; /* top-most, releasable (via malloc_trim) space */ + int maxfree; /* (NON-STANDARD EXTENSION) size of largest free block */ +}; + +extern struct mallinfo +mallinfo( void ); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif +#endif + +/*==========================================================================*/ + +#if CYGINT_ISO_EXIT +# ifdef CYGBLD_ISO_EXIT_HEADER +# include CYGBLD_ISO_EXIT_HEADER +# else + +/* ISO C 7.10.4 - Communication with the environment */ + +/* codes to pass to exit() */ + +/* Successful exit status - must be zero (POSIX 1003.1 8.1) */ +#define EXIT_SUCCESS 0 +/* Failing exit status - must be non-zero (POSIX 1003.1 8.1) */ +#define EXIT_FAILURE 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* Type of function used by atexit() */ +typedef void (*__atexit_fn_t)( void ); + +extern void +abort( void ) CYGBLD_ATTRIB_NORET; + +extern int +atexit( __atexit_fn_t /* func_to_register */ ); + +extern void +exit( int /* status */ ) CYGBLD_ATTRIB_NORET; + +/* POSIX 1003.1 section 3.2.2 "Terminate a process" */ + +//@@@ FIXME unistd.h +extern void +_exit( int /* status */ ) CYGBLD_ATTRIB_NORET; + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif +#endif + +/*==========================================================================*/ + +#if CYGINT_ISO_STDLIB_ENVIRON +# ifdef CYGBLD_ISO_STDLIB_ENVIRON_HEADER +# include CYGBLD_ISO_STDLIB_ENVIRON_HEADER +# else + +/* ISO C 7.10.4 - Communication with the environment */ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _POSIX_SOURCE + +extern char **environ; /* standard definition of environ */ + +#endif + +extern char * +getenv( const char * /* name */ ); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif +#endif + +/*==========================================================================*/ + +#if CYGINT_ISO_STDLIB_SYSTEM +# ifdef CYGBLD_ISO_STDLIB_SYSTEM_HEADER +# include CYGBLD_ISO_STDLIB_SYSTEM_HEADER +# else + +/* ISO C 7.10.4 - Communication with the environment */ + +#ifdef __cplusplus +extern "C" { +#endif + +extern int +system( const char * /* command */ ); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif +#endif + +/*==========================================================================*/ + +#if CYGINT_ISO_BSEARCH +# ifdef CYGBLD_ISO_BSEARCH_HEADER +# include CYGBLD_ISO_BSEARCH_HEADER +# else + +/* ISO C 7.10.5 - Searching and sorting utilities */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef int (*__bsearch_comparison_fn_t)(const void * /* object1 */, + const void * /* object2 */); + +extern void * +bsearch( const void * /* search_key */, const void * /* first_object */, + size_t /* num_objects */, size_t /* object_size */, + __bsearch_comparison_fn_t /* comparison_fn */ ); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif +#endif + +/*==========================================================================*/ + +#if CYGINT_ISO_QSORT +# ifdef CYGBLD_ISO_QSORT_HEADER +# include CYGBLD_ISO_QSORT_HEADER +# else + +/* ISO C 7.10.5 - Searching and sorting utilities */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef int (*__qsort_comparison_fn_t)(const void * /* object1 */, + const void * /* object2 */); + +extern void +qsort( void * /* first_object */, size_t /* num_objects */, + size_t /* object_size */, __qsort_comparison_fn_t /* comparison_fn */ ); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif +#endif + +/*======================================================================*/ + +#if CYGINT_ISO_ABS +# ifdef CYGBLD_ISO_STDLIB_ABS_HEADER +# include CYGBLD_ISO_STDLIB_ABS_HEADER +# else + +/* TYPE DEFINITIONS */ + +/* ISO C 7.10 and 7.10.6 - Integer Arithmetic Functions */ + +#ifdef __cplusplus +extern "C" { +#endif + +extern int +abs( int /* val */ ) __attribute__((__const__)); + +extern long +labs( long /* val */ ) __attribute__((__const__)); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif +#endif + +/*======================================================================*/ + +#if CYGINT_ISO_DIV +# ifdef CYGBLD_ISO_STDLIB_DIV_HEADER +# include CYGBLD_ISO_STDLIB_DIV_HEADER +# else + +/* ISO C 7.10 and 7.10.6 - Integer Arithmetic Functions */ + +/* return type of the div() function */ + +typedef struct { + int quot; /* quotient */ + int rem; /* remainder */ +} div_t; + + +/* return type of the ldiv() function */ + +typedef struct { + long quot; /* quotient */ + long rem; /* remainder */ +} ldiv_t; + +#ifdef __cplusplus +extern "C" { +#endif + +extern div_t +div( int /* numerator */, int /* denominator */ ) __attribute__((__const__)); + +extern ldiv_t +ldiv( long /* numerator */, long /* denominator */ ) __attribute__((__const__)); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif +#endif + +/*==========================================================================*/ + +/* Maximum number of bytes in a multibyte character for the current locale */ + +#ifdef CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER +# include CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER +#else +# define MB_CUR_MAX 1 +#endif + +#if CYGINT_ISO_STDLIB_MULTIBYTE +# ifdef CYGBLD_ISO_STDLIB_MULTIBYTE_HEADER +# include CYGBLD_ISO_STDLIB_MULTIBYTE_HEADER +# else + +/* ISO C 7.10.7 - Multibyte character functions */ + + +#ifdef __cplusplus +extern "C" { +#endif + +extern int +mblen( const char * /* s */, size_t /* n */ ); + +extern int +mbtowc( wchar_t * /* pwc */, const char * /* s */, size_t /* n */ ); + +extern int +wctomb( char * /* s */, wchar_t /* wchar */ ); + +extern size_t +mbstowcs( wchar_t * /* pwcs */, const char * /* s */, size_t /* n */ ); + +extern size_t +wcstombs( char * /* s */, const wchar_t * /* pwcs */, size_t /* n */ ); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif +#endif + +/*==========================================================================*/ + +#endif /* CYGONCE_ISO_STDLIB_H multiple inclusion protection */ + +/* EOF stdlib.h */ diff --git a/ecos/packages/isoinfra/current/include/string.h b/ecos/packages/isoinfra/current/include/string.h new file mode 100644 index 0000000..0ceb7da --- /dev/null +++ b/ecos/packages/isoinfra/current/include/string.h @@ -0,0 +1,129 @@ +#ifndef CYGONCE_ISO_STRING_H +#define CYGONCE_ISO_STRING_H +/*======================================================================== +// +// string.h +// +// ISO string functions +// +//======================================================================== +// ####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 the string macros, types and functions +// required by ISO C and POSIX 1003.1. It may also provide +// other compatibility functions like BSD-style string +// functions +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <string.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +/* This is the "standard" way to get NULL and size_t from stddef.h, + * which is the canonical location of the definitions. + */ +#define __need_NULL +#define __need_size_t +#include <stddef.h> + +#ifdef CYGINT_ISO_STRERROR +# include CYGBLD_ISO_STRERROR_HEADER +#endif + +/* memcpy() and memset() are special as they are used internally by + * the compiler, so they *must* exist. So if no-one claims to implement + * them, prototype them anyway */ + +#ifdef CYGBLD_ISO_MEMCPY_HEADER +# include CYGBLD_ISO_MEMCPY_HEADER +#else + +extern +# ifdef __cplusplus +"C" +# endif +void * +memcpy( void *, const void *, size_t ); + +#endif + +#ifdef CYGBLD_ISO_MEMSET_HEADER +# include CYGBLD_ISO_MEMSET_HEADER +#else + +extern +# ifdef __cplusplus +"C" +# endif +void * +memset( void *, int, size_t ); + +#endif + +#ifdef CYGINT_ISO_STRTOK_R +# include CYGBLD_ISO_STRTOK_R_HEADER +#endif + +#ifdef CYGINT_ISO_STRING_LOCALE_FUNCS +# include CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER +#endif + +#ifdef CYGINT_ISO_STRING_BSD_FUNCS +# include CYGBLD_ISO_STRING_BSD_FUNCS_HEADER +#endif + +#ifdef CYGINT_ISO_STRING_MEMFUNCS +# include CYGBLD_ISO_STRING_MEMFUNCS_HEADER +#endif + +#ifdef CYGINT_ISO_STRING_STRFUNCS +# include CYGBLD_ISO_STRING_STRFUNCS_HEADER +#endif + +#endif /* CYGONCE_ISO_STRING_H multiple inclusion protection */ + +/* EOF string.h */ diff --git a/ecos/packages/isoinfra/current/include/sys/select.h b/ecos/packages/isoinfra/current/include/sys/select.h new file mode 100644 index 0000000..532d17a --- /dev/null +++ b/ecos/packages/isoinfra/current/include/sys/select.h @@ -0,0 +1,162 @@ +/*======================================================================== +// +// sys/select.h +// +// POSIX definitions for select() +// +//======================================================================== +// ####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: 2001-07-26 +// Purpose: This file provides the macros, types and functions +// required by POSIX 1003.1. +// Description: Much of the real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <sys/select.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/system.h> +#include <pkgconf/isoinfra.h> /* Configuration header */ + +#ifdef CYGPKG_IO_FILEIO + #include <pkgconf/io_fileio.h> + #define FD_SETSIZE CYGNUM_FILEIO_NFD +#endif + +/* ------------------------------------------------------------------- */ + +#if !defined(_POSIX_SOURCE) + +#ifdef CYGINT_ISO_SELECT +# ifdef CYGBLD_ISO_SELECT_HEADER +# include CYGBLD_ISO_SELECT_HEADER +# else + +# ifndef CYGONCE_ISO_SYS_SELECT_FD_SETS +# define CYGONCE_ISO_SYS_SELECT_FD_SETS + +#define NBBY 8 /* number of bits in a byte */ + +/* + * Select uses bit masks of file descriptors in longs. These macros + * manipulate such bit fields (the filesystem macros use chars). + * FD_SETSIZE may be defined by the user, but the default here should + * be enough for most uses. + */ +#ifndef FD_SETSIZE +#define FD_SETSIZE 256 +#endif + +typedef unsigned int fd_mask; +#define __NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */ + +#ifndef __howmany +#define __howmany(__x, __y) (((__x) + ((__y) - 1)) / (__y)) +#endif + +typedef struct fd_set { + fd_mask fds_bits[__howmany(FD_SETSIZE, __NFDBITS)]; +} fd_set; + +#define FD_SET(__n, __p) ((__p)->fds_bits[(__n)/__NFDBITS] |= (1 << ((__n) % __NFDBITS))) +#define FD_CLR(__n, __p) ((__p)->fds_bits[(__n)/__NFDBITS] &= ~(1 << ((__n) % __NFDBITS))) +#define FD_ISSET(__n, __p) ((__p)->fds_bits[(__n)/__NFDBITS] & (1 << ((__n) % __NFDBITS))) + +#define FD_COPY(__f, __t) \ +{ \ + unsigned int _i; \ + for( _i = 0; _i < __howmany(FD_SETSIZE, __NFDBITS) ; _i++ ) \ + (__t)->fds_bits[_i] = (__f)->fds_bits[_i]; \ +} + +#define FD_ZERO(__p) \ +{ \ + unsigned int _i; \ + for( _i = 0; _i < __howmany(FD_SETSIZE, __NFDBITS) ; _i++ ) \ + (__p)->fds_bits[_i] = 0; \ +} + +# endif /* CYGONCE_ISO_SYS_SELECT_FD_SETS */ + +# ifndef __NEED_FD_SETS_ONLY + +# ifndef CYGONCE_ISO_SYS_SELECT_H +# define CYGONCE_ISO_SYS_SELECT_H + +# ifdef __cplusplus +extern "C" { +# endif + +struct timeval; +extern int +select( int /* nfd */, fd_set * /* in */, fd_set * /* out */, + fd_set * /* ex */, struct timeval * /* tv */ ); + +#ifdef CYGPKG_POSIX +# include <pkgconf/posix.h> +# ifdef CYGPKG_POSIX_SIGNALS +# include <signal.h> +struct timespec; +extern int +pselect( int /* nfd */, fd_set * /* in */, fd_set * /* out */, + fd_set * /* ex */, const struct timespec * /* ts */, + const sigset_t * /* mask */); +# endif +#endif + +# ifdef __cplusplus +} /* extern "C" */ +# endif + +# endif /* CYGONCE_ISO_SYS_SELECT_H multiple inclusion protection */ + +# endif /* __NEED_FD_SETS_ONLY */ + +# endif +#endif + + +#endif /* if !defined(_POSIX_SOURCE) */ +/* ------------------------------------------------------------------- */ + +/* EOF sys/select.h */ diff --git a/ecos/packages/isoinfra/current/include/sys/stat.h b/ecos/packages/isoinfra/current/include/sys/stat.h new file mode 100644 index 0000000..d87f3b5 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/sys/stat.h @@ -0,0 +1,157 @@ +#ifndef CYGONCE_ISO_STAT_H +#define CYGONCE_ISO_STAT_H +/*======================================================================== +// +// stat.h +// +// POSIX file characteristics +// +//======================================================================== +// ####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-05-08 +// Purpose: This file provides the macros, types and functions +// for file characteristics required by POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <sys/stat.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +#include <cyg/infra/cyg_type.h> /* __externC */ + +#ifdef CYGBLD_ISO_STAT_DEFS_HEADER +# include CYGBLD_ISO_STAT_DEFS_HEADER +#else + +#include <sys/types.h> /* ino_t, dev_t, etc. */ +#include <time.h> /* time_t */ + +#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) + + +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 */ +}; + +#endif /* ifndef CYGBLD_ISO_STAT_DEFS_HEADER */ + +/* PROTOTYPES */ + +__externC int stat( const char *path, struct stat *buf ); + +__externC int fstat( int fd, struct stat *buf ); + +__externC int mkdir(const char *path, mode_t mode); + +__externC int chmod(const char *path, mode_t mode); + +#endif /* CYGONCE_ISO_STAT_H multiple inclusion protection */ + +/* EOF stat.h */ diff --git a/ecos/packages/isoinfra/current/include/sys/time.h b/ecos/packages/isoinfra/current/include/sys/time.h new file mode 100644 index 0000000..4123c89 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/sys/time.h @@ -0,0 +1,90 @@ +#ifndef CYGONCE_ISO_SYS_TIME_H +#define CYGONCE_ISO_SYS_TIME_H +/*======================================================================== +// +// sys/time.h +// +// struct timeval and gettimeofday() +// +//======================================================================== +// ####ECOSGPLCOPYRIGHTBEGIN#### +// ------------------------------------------- +// This file is part of eCos, the Embedded Configurable Operating System. +// Copyright (C) 2005 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): Alexander Neundorf <neundorf@kde.org> +// Contributors: +// Date: 2005-10-04 +// Purpose: This file provides the time macros, types and functions +// required by ISO C and POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <sys/time.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +/* This is the "standard" way to get NULL and size_t from stddef.h, + * which is the canonical location of the definitions. + */ +#define __need_NULL +#define __need_size_t +#include <stddef.h> + +#include <time.h> +#ifdef CYGBLD_ISO_STRUCTTIMEVAL_HEADER +# include CYGBLD_ISO_STRUCTTIMEVAL_HEADER +#else + +/* + * Structure returned by gettimeofday(2), + * and used in other calls such as select(2). + */ +struct timeval { + time_t tv_sec; /* seconds */ + suseconds_t tv_usec; /* and microseconds */ +}; + +#endif + + +#endif /* CYGONCE_ISO_SYS_TIME_H multiple inclusion protection */ + +/* EOF sys/time.h */ diff --git a/ecos/packages/isoinfra/current/include/sys/types.h b/ecos/packages/isoinfra/current/include/sys/types.h new file mode 100644 index 0000000..3fb2489 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/sys/types.h @@ -0,0 +1,117 @@ +#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> + +#ifdef CYGBLD_ISO_SSIZE_T_HEADER +# include CYGBLD_ISO_SSIZE_T_HEADER +#else +typedef long ssize_t; +#endif + +#ifdef CYGBLD_ISO_FSTYPES_HEADER +# include CYGBLD_ISO_FSTYPES_HEADER +#else +typedef short dev_t; +typedef unsigned int ino_t; +typedef unsigned int mode_t; +typedef unsigned short nlink_t; +typedef long off_t; +#endif + +#ifdef CYGBLD_ISO_SCHEDTYPES_HEADER +# include CYGBLD_ISO_SCHEDTYPES_HEADER +#else +typedef unsigned short gid_t; +typedef unsigned short uid_t; +typedef int pid_t; +#endif + +#if CYGINT_ISO_PMUTEXTYPES +# include CYGBLD_ISO_PMUTEXTYPES_HEADER +#endif + +#if CYGINT_ISO_PTHREADTYPES +# include CYGBLD_ISO_PTHREADTYPES_HEADER +#endif + +/* Include <sys/select.h> for backward compatibility for now */ +#define __NEED_FD_SETS_ONLY +#include <sys/select.h> +#undef __NEED_FD_SETS_ONLY + +#if !defined(_POSIX_SOURCE) +# if CYGINT_ISO_BSDTYPES +# ifdef CYGBLD_ISO_BSDTYPES_HEADER +# include CYGBLD_ISO_BSDTYPES_HEADER +# endif +# endif +#endif // !defined(_POSIX_SOURCE) + +#endif /* CYGONCE_ISO_SYS_TYPES_H multiple inclusion protection */ + +/* EOF sys/types.h */ diff --git a/ecos/packages/isoinfra/current/include/sys/utsname.h b/ecos/packages/isoinfra/current/include/sys/utsname.h new file mode 100644 index 0000000..75fb290 --- /dev/null +++ b/ecos/packages/isoinfra/current/include/sys/utsname.h @@ -0,0 +1,68 @@ +#ifndef CYGONCE_ISO_SYS_UTSNAME_H +#define CYGONCE_ISO_SYS_UTSNAME_H +/*======================================================================== +// +// sys/utsname.h +// +// POSIX utsname header +// +//======================================================================== +// ####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 the utsname struct required by POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <sys/utsname.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/system.h> +#include <pkgconf/isoinfra.h> /* Configuration header */ + +#ifdef CYGBLD_ISO_UTSNAME_HEADER +# include CYGBLD_ISO_UTSNAME_HEADER +#endif + +#endif /* CYGONCE_ISO_SYS_UTSNAME_H multiple inclusion protection */ + +/* EOF sys/utsname.h */ diff --git a/ecos/packages/isoinfra/current/include/termios.h b/ecos/packages/isoinfra/current/include/termios.h new file mode 100644 index 0000000..d2ab68d --- /dev/null +++ b/ecos/packages/isoinfra/current/include/termios.h @@ -0,0 +1,251 @@ +#ifndef CYGONCE_ISO_TERMIOS_H +#define CYGONCE_ISO_TERMIOS_H +/* ==================================================================== +// +// termios.h +// +// POSIX termios +// +// ==================================================================== +// ####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-07-22 +// Purpose: POSIX termios support +// Description: +// +//####DESCRIPTIONEND#### +// +// ==================================================================*/ + +#include <pkgconf/isoinfra.h> + +#if CYGINT_ISO_TERMIOS +# ifdef CYGBLD_ISO_TERMIOS_HEADER +# include CYGBLD_ISO_TERMIOS_HEADER +# else + +/* TYPES */ + +typedef unsigned int tcflag_t; /* terminal flags type */ +typedef unsigned char cc_t; /* control chars type */ +typedef unsigned int speed_t; /* baud rate type */ + +#define NCCS 16 /* May as well hard-code - ASCII isn't that configurable! */ + +struct termios { + tcflag_t c_iflag; /* Input mode flags */ + tcflag_t c_oflag; /* Output mode flags */ + tcflag_t c_cflag; /* Control mode flags */ + tcflag_t c_lflag; /* Local mode flags */ + cc_t c_cc[NCCS]; /* Control characters */ + speed_t c_ispeed; /* input speed */ + speed_t c_ospeed; /* output speed */ +}; + +/* CONSTANTS */ + +/* Input mode flags */ + +#define BRKINT (1<<0) +#define ICRNL (1<<1) +#define IGNBRK (1<<2) +#define IGNCR (1<<3) +#define IGNPAR (1<<4) +#define INLCR (1<<5) +#define INPCK (1<<6) +#define ISTRIP (1<<7) +#define IXOFF (1<<8) +#define IXON (1<<9) +#define PARMRK (1<<10) + +/* Output mode flags */ + +#define OPOST (1<<0) +#define ONLCR (1<<1) /* Note: This isn't POSIX */ + +/* Control mode flags */ + +#define CLOCAL (1<<0) +#define CREAD (1<<1) +#define CS5 (0) +#define CS6 (1<<2) +#define CS7 (1<<3) +#define CS8 (CS6|CS7) +#define CSIZE (CS8) +#define CSTOPB (1<<4) +#define HUPCL (1<<5) +#define PARENB (1<<6) +#define PARODD (1<<7) +#ifndef _POSIX_SOURCE_ +# define CRTSCTS (1<<8) +#endif + +/* Local mode flags */ + +#define ECHO (1<<0) +#define ECHOE (1<<1) +#define ECHOK (1<<2) +#define ECHONL (1<<3) +#define ICANON (1<<4) +#define IEXTEN (1<<5) +#define ISIG (1<<6) +#define NOFLSH (1<<7) +#define TOSTOP (1<<8) + +/* Special control characters */ + +#define VEOF 0 +#define VEOL 1 +#define VERASE 2 +#define VINTR 3 +#define VKILL 4 +#define VMIN 5 +#define VQUIT 6 +#define VSUSP 7 +#define VTIME 8 +#define VSTART 9 +#define VSTOP 10 + +/* Baud rates */ +/* There may be tables in the implementation that rely on the + * values here, so only append to this table - do not insert values! + */ +#define B0 0 +#define B50 1 +#define B75 2 +#define B110 3 +#define B134 4 +#define B150 5 +#define B200 6 +#define B300 7 +#define B600 8 +#define B1200 9 +#define B1800 10 +#define B2400 11 +#define B3600 12 +#define B4800 13 +#define B7200 14 +#define B9600 15 +#define B14400 16 +#define B19200 17 +#define B38400 18 +#define B57600 19 +#define B115200 20 +#define B230400 21 +#define B460800 22 +#define B500000 23 +#define B576000 24 +#define B921600 25 +#define B1000000 26 +#define B1152000 27 +#define B1500000 28 +#define B2000000 29 +#define B2500000 30 +#define B3000000 31 +#define B3500000 32 +#define B4000000 33 + + +/* Optional actions to tcsetattr() */ + +#define TCSANOW 0 +#define TCSADRAIN 1 +#define TCSAFLUSH 2 + +/* Queue selectors for tcflush() */ + +#define TCIFLUSH 0 +#define TCOFLUSH 1 +#define TCIOFLUSH 2 + +/* Actions for tcflow() */ + +#define TCOOFF 0 +#define TCOON 1 +#define TCIOFF 2 +#define TCION 3 + + +/* FUNCTIONS */ + +#ifdef __cplusplus +extern "C" { +#endif + +extern speed_t +cfgetospeed( const struct termios *__termios_p ); + +extern int +cfsetospeed( struct termios *__termios_p, speed_t __speed ); + +extern speed_t +cfgetispeed( const struct termios *__termios_p ); + +extern int +cfsetispeed( struct termios *__termios_p, speed_t __speed ); + +extern int +tcgetattr( int __fildes, struct termios *__termios_p ); + +extern int +tcsetattr( int __fildes, int __optact, const struct termios *__termios_p ); + +extern int +tcsendbreak( int __fildes, int __duration ); + +extern int +tcdrain( int __fildes ); + +extern int +tcflush( int __fildes, int __queue_sel ); + +extern int +tcflow( int __fildes, int __action ); + +/* tcgetpgrp() and tcsetpgrp() not included in the absence of job control */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +# endif /* ifndef CYGBLD_ISO_TERMIOS_HEADER */ +#endif /* if CYGINT_ISO_TERMIOS */ + + +#endif /* ifndef CYGONCE_ISO_TERMIOS_H */ + +/* EOF termios.h */ diff --git a/ecos/packages/isoinfra/current/include/time.h b/ecos/packages/isoinfra/current/include/time.h new file mode 100644 index 0000000..1ab583c --- /dev/null +++ b/ecos/packages/isoinfra/current/include/time.h @@ -0,0 +1,158 @@ +#ifndef CYGONCE_ISO_TIME_H +#define CYGONCE_ISO_TIME_H +/*======================================================================== +// +// time.h +// +// ISO time functions +// +//======================================================================== +// ####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 the time macros, types and functions +// required by ISO C and POSIX 1003.1. +// Description: The real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <time.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + +/* INCLUDES */ + +/* This is the "standard" way to get NULL and size_t from stddef.h, + * which is the canonical location of the definitions. + */ +#define __need_NULL +#define __need_size_t +#include <stddef.h> + +#ifdef CYGBLD_ISO_TIME_T_HEADER +# include CYGBLD_ISO_TIME_T_HEADER +#else + +/* Define time_t as per ISO C para 7.12.1 + * It is conventionally given the meaning of seconds since the + * Epoch (00:00:00 GMT, 1970-01-01), but don't rely on this - always use + * the type opaquely + */ +typedef long time_t; + +/* Additional POSIX-derived types. Not the ideal place as these should + * also be defined in <sys/types.h>, along with time_t but that will + * require major upheaval to resolve these sorts of minor strict + * compliance issues properly. + */ +typedef long suseconds_t; +typedef long useconds_t; + +# define __time_t_defined + +#endif + +#ifdef CYGBLD_ISO_CLOCK_T_HEADER +# include CYGBLD_ISO_CLOCK_T_HEADER +#else + +/* What to divide clock_t by to get seconds (para 7.12.1) + * According to SUS3, CLOCKS_PER_SEC must be 1 million on all + * XSI-conformant systems. + */ +# define CLOCKS_PER_SEC 1000000 + +/* Define clock_t as per ISO C para 7.12.1 */ + +typedef long clock_t; +# define __clock_t_defined +#endif + +#ifdef CYGINT_ISO_POSIX_CLOCK_TYPES +# include CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER +#else + +/* Provide a default struct timespec. */ + +struct timespec +{ + time_t tv_sec; + long tv_nsec; +}; +#endif + +#ifdef CYGINT_ISO_POSIX_TIMER_TYPES +# include CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER +#else + +/* Provide a default struct itimerspec. */ +struct itimerspec +{ + struct timespec it_interval; + struct timespec it_value; +}; + +#endif + +#ifdef CYGINT_ISO_C_TIME_TYPES +# include CYGBLD_ISO_C_TIME_TYPES_HEADER +#endif + +#ifdef CYGINT_ISO_POSIX_CLOCKS +# include CYGBLD_ISO_POSIX_CLOCKS_HEADER +#endif + +#ifdef CYGINT_ISO_POSIX_TIMERS +# include CYGBLD_ISO_POSIX_TIMERS_HEADER +#endif + +#ifdef CYGINT_ISO_C_CLOCK_FUNCS +# include CYGBLD_ISO_C_CLOCK_FUNCS_HEADER +#endif + +#ifdef CYGINT_ISO_TZSET +# include CYGBLD_ISO_TZSET_HEADER +#endif + +#endif /* CYGONCE_ISO_TIME_H multiple inclusion protection */ + +/* EOF time.h */ diff --git a/ecos/packages/isoinfra/current/include/unistd.h b/ecos/packages/isoinfra/current/include/unistd.h new file mode 100644 index 0000000..690b41c --- /dev/null +++ b/ecos/packages/isoinfra/current/include/unistd.h @@ -0,0 +1,276 @@ +#ifndef CYGONCE_ISO_UNISTD_H +#define CYGONCE_ISO_UNISTD_H +/*======================================================================== +// +// unistd.h +// +// POSIX UNIX standard 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): nickg +// Contributors: +// Date: 2000-06-01 +// Purpose: This file provides the macros, types and functions +// required by POSIX 1003.1. +// Description: Much of the real contents of this file get set from the +// configuration (set by the implementation) +// Usage: #include <unistd.h> +// +//####DESCRIPTIONEND#### +// +//====================================================================== +*/ + +/* CONFIGURATION */ + +#include <pkgconf/isoinfra.h> /* Configuration header */ + + +/* INCLUDES */ + +#include <sys/types.h> + +/* This is the "standard" way to get NULL and size_t from stddef.h, + * which is the canonical location of the definitions. + */ +#define __need_NULL +#define __need_size_t +#include <stddef.h> + + +#ifdef CYGINT_ISO_POSIX_TIMER_OPS +# ifdef CYGBLD_ISO_POSIX_TIMER_OPS_HEADER +# include CYGBLD_ISO_POSIX_TIMER_OPS_HEADER +# else + +# ifdef __cplusplus +extern "C" { +# endif + +extern unsigned int +alarm( unsigned int /* seconds */ ); + +extern int +pause( void ); + +# ifdef __cplusplus +} /* extern "C" */ +# endif + +# endif +#endif + +#ifdef CYGINT_ISO_POSIX_SLEEP +# ifdef CYGBLD_ISO_POSIX_SLEEP_HEADER +# include CYGBLD_ISO_POSIX_SLEEP_HEADER +# else +# ifdef __cplusplus +extern "C" { +# endif + +unsigned int +sleep( unsigned int /* seconds */ ); + +# ifdef __cplusplus +} /* extern "C" */ +# endif +# endif +#endif + + +/* ------------------------------------------------------------------- */ + +/* FIXME: The below was copied in verbatim by Nick, but needs to be grouped + by functionality and linked with interfaces as with everything else +*/ + +/* CONSTANTS */ + +/* Configuration constants */ + +#define _POSIX_VERSION 199506L + +/* constants for access() */ +#define R_OK 1 +#define W_OK 2 +#define X_OK 4 +#define F_OK 8 + +/* constants for lseek */ +#ifndef SEEK_SET +#define SEEK_SET 0 +#define SEEK_CUR 1 +#define SEEK_END 2 +#endif + +#define STDIN_FILENO 0 +#define STDOUT_FILENO 1 +#define STDERR_FILENO 2 + +/* Variable names for sysconf() */ +#define _SC_AIO_LISTIO_MAX 1 +#define _SC_AIO_MAX 2 +#define _SC_AIO_PRIO_DELTA_MAX 3 +#define _SC_ARG_MAX 4 +#define _SC_ASYNCHRONOUS_IO 5 +#define _SC_CHILD_MAX 6 +#define _SC_CLK_TCK 7 +#define _SC_DELAYTIMER_MAX 8 +#define _SC_FSYNC 9 +#define _SC_GETGR_R_SIZE_MAX 10 +#define _SC_GETPW_R_SIZE_MAX 11 +#define _SC_JOB_CONTROL 12 +#define _SC_LOGIN_NAME_MAX 13 +#define _SC_MAPPED_FILES 14 +#define _SC_MEMLOCK 15 +#define _SC_MEMLOCK_RANGE 16 +#define _SC_MEMORY_PROTECTION 17 +#define _SC_MESSAGE_PASSING 18 +#define _SC_MQ_OPEN_MAX 19 +#define _SC_MQ_PRIO_MAX 20 +#define _SC_NGROUPS_MAX 21 +#define _SC_OPEN_MAX 22 +#define _SC_PAGESIZE 23 +#define _SC_PRIORITIZED_IO 24 +#define _SC_PRIORITY_SCHEDULING 25 +#define _SC_REALTIME_SIGNALS 26 +#define _SC_RTSIG_MAX 27 +#define _SC_SAVED_IDS 28 +#define _SC_SEMAPHORES 29 +#define _SC_SEM_NSEMS_MAX 30 +#define _SC_SEM_VALUE_MAX 31 +#define _SC_SHARED_MEMORY_OBJECTS 32 +#define _SC_SIGQUEUE_MAX 33 +#define _SC_STREAM_MAX 34 +#define _SC_SYNCHRONIZED_IO 35 +#define _SC_THREADS 36 +#define _SC_THREAD_ATTR_STACKADDR 37 +#define _SC_THREAD_ATTR_STACKSIZE 38 +#define _SC_THREAD_DESTRUCTOR_ITERATIONS 39 +#define _SC_THREAD_KEYS_MAX 40 +#define _SC_THREAD_PRIO_INHERIT 41 +#define _SC_THREAD_PRIO_PROTECT 42 +#define _SC_THREAD_PRIORITY_SCHEDULING 43 +#define _SC_THREAD_PROCESS_SHARED 44 +#define _SC_THREAD_SAFE_FUNCTIONS 45 +#define _SC_THREAD_STACK_MIN 46 +#define _SC_THREAD_THREADS_MAX 47 +#define _SC_TIMERS 48 +#define _SC_TIMER_MAX 49 +#define _SC_TTY_NAME_MAX 50 +#define _SC_TZNAME_MAX 51 +#define _SC_VERSION 52 + +/* 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 + + +/* Standard function prototypes */ + + +#ifdef __cplusplus +extern "C" { +#endif + + +extern int link(const char *path1, const char *path2); +extern int unlink(const char *path); +extern int rmdir(const char *path); +extern int access(const char *path, int amode); +extern int chown(const char *path, uid_t owner, uid_t group); +extern long pathconf(const char *path, int name); +extern long fpathconf(int fd, int name); +extern int pipe(int fildes[2]); +extern int dup(int fd); +extern int dup2(int fd,int fd2); +extern int close(int fd); +extern ssize_t read(int fd, void *buf, size_t nbyte); +extern ssize_t write(int fd, const void *buf, size_t nbyte); +extern off_t lseek(int fd, off_t offset, int whence); +extern int fsync( int fd ); +extern int ftruncate(int fd, off_t length); + +extern int chdir(const char *path); +extern char *getcwd(char *buf, size_t size); + +extern pid_t getpid(void); +extern pid_t getppid(void); +extern uid_t getuid(void); +extern uid_t geteuid(void); +extern uid_t getgid(void); +extern uid_t getegid(void); +extern int setuid(uid_t uid); +extern int setgid(uid_t uid); +extern int getgroups(int setsize, uid_t *list); +extern char *getlogin(void); +extern char *cuserid(char *s); +extern pid_t getpgrp(void); +extern pid_t setsid(void); +extern int setpgid(pid_t pid, pid_t pgid); +extern char *getenv(const char *name); +extern char *ctermid(char *s); +extern char *ttyname(int fd); +extern int isatty(int fd); +extern long sysconf(int name); + +extern int vfork(void); +extern int execl(const char *path, const char *arg, ...); +extern int execv(const char *path,char **argv); +extern int execle(const char *path, const char *arg , ... ); +extern int execlp(const char *file, const char * argv, ...); +extern int execvp(const char *file, char **argv); +extern int execve(const char *name, char **argv, char **envv); +extern void _exit(int code); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* CYGONCE_ISO_UNISTD_H multiple inclusion protection */ + +/* EOF unistd.h */ |