[PATCH] [RTEMS] Move header files
Joel Sherrill
joel.sherrill at oarcorp.com
Mon Jul 27 19:50:50 UTC 2015
This file is RTEMS specific and I am OK with it.
Sebastian is about to go on holiday so it would be appreciated
to get this approved before he leaves.
OK to commit?
On 07/27/2015 04:31 AM, Sebastian Huber wrote:
> During libgcc build the first include search path for<...> is
> "../newlib/libc/sys/rtems/include". Move all RTEMS specific header
> files to "libc/sys/rtems/include" so that they can be found. Later
> during libc build the header files in the previous location were somehow
> present, but for libgcc build they were invisible. This change is
> necessary to use<pthread.h> for the GCC thread model implementation.
>
> newlib/ChangeLog
> 2015-07-27 Sebastian Huber<sebastian.huber at embedded-brains.de>
>
> libc/sys/rtems/machine/_types.h: Move to ...
> libc/sys/rtems/include/machine/_types.h: ... here.
> libc/sys/rtems/machine/limits.h: Move to ...
> libc/sys/rtems/include/machine/limits.h: ... here.
> libc/sys/rtems/machine/param.h: Move to ...
> libc/sys/rtems/include/machine/param.h: ... here.
> libc/sys/rtems/sys/cpuset.h: Move to ...
> libc/sys/rtems/include/sys/cpuset.h: ... here.
> libc/sys/rtems/sys/dirent.h: Move to ...
> libc/sys/rtems/include/sys/dirent.h: ... here.
> libc/sys/rtems/sys/param.h: Move to ...
> libc/sys/rtems/include/sys/param.h: ... here.
> libc/sys/rtems/sys/syslimits.h: Move to ...
> libc/sys/rtems/include/sys/syslimits.h: ... here.
> libc/sys/rtems/sys/utime.h: Move to ...
> libc/sys/rtems/include/sys/utime.h: ... here.
> ---
> newlib/libc/sys/rtems/include/machine/_types.h | 38 +++
> newlib/libc/sys/rtems/include/machine/limits.h | 6 +
> newlib/libc/sys/rtems/include/machine/param.h | 101 ++++++++
> newlib/libc/sys/rtems/include/sys/cpuset.h | 311 +++++++++++++++++++++++++
> newlib/libc/sys/rtems/include/sys/dirent.h | 64 +++++
> newlib/libc/sys/rtems/include/sys/param.h | 217 +++++++++++++++++
> newlib/libc/sys/rtems/include/sys/syslimits.h | 64 +++++
> newlib/libc/sys/rtems/include/sys/utime.h | 34 +++
> newlib/libc/sys/rtems/machine/_types.h | 38 ---
> newlib/libc/sys/rtems/machine/limits.h | 6 -
> newlib/libc/sys/rtems/machine/param.h | 101 --------
> newlib/libc/sys/rtems/sys/cpuset.h | 311 -------------------------
> newlib/libc/sys/rtems/sys/dirent.h | 64 -----
> newlib/libc/sys/rtems/sys/param.h | 217 -----------------
> newlib/libc/sys/rtems/sys/syslimits.h | 64 -----
> newlib/libc/sys/rtems/sys/utime.h | 34 ---
> 16 files changed, 835 insertions(+), 835 deletions(-)
> create mode 100644 newlib/libc/sys/rtems/include/machine/_types.h
> create mode 100644 newlib/libc/sys/rtems/include/machine/limits.h
> create mode 100644 newlib/libc/sys/rtems/include/machine/param.h
> create mode 100644 newlib/libc/sys/rtems/include/sys/cpuset.h
> create mode 100644 newlib/libc/sys/rtems/include/sys/dirent.h
> create mode 100644 newlib/libc/sys/rtems/include/sys/param.h
> create mode 100644 newlib/libc/sys/rtems/include/sys/syslimits.h
> create mode 100644 newlib/libc/sys/rtems/include/sys/utime.h
> delete mode 100644 newlib/libc/sys/rtems/machine/_types.h
> delete mode 100644 newlib/libc/sys/rtems/machine/limits.h
> delete mode 100644 newlib/libc/sys/rtems/machine/param.h
> delete mode 100644 newlib/libc/sys/rtems/sys/cpuset.h
> delete mode 100644 newlib/libc/sys/rtems/sys/dirent.h
> delete mode 100644 newlib/libc/sys/rtems/sys/param.h
> delete mode 100644 newlib/libc/sys/rtems/sys/syslimits.h
> delete mode 100644 newlib/libc/sys/rtems/sys/utime.h
>
> diff --git a/newlib/libc/sys/rtems/include/machine/_types.h b/newlib/libc/sys/rtems/include/machine/_types.h
> new file mode 100644
> index 0000000..1711c7a
> --- /dev/null
> +++ b/newlib/libc/sys/rtems/include/machine/_types.h
> @@ -0,0 +1,38 @@
> +/*
> + * $Id$
> + */
> +
> +#ifndef _MACHINE__TYPES_H
> +#define _MACHINE__TYPES_H
> +
> +/* This disables some conflicting type definitions in<machine/types.h> */
> +#define _HAVE_SYSTYPES
> +
> +#include<machine/_default_types.h>
> +
> +typedef __int32_t blksize_t;
> +typedef __int32_t blkcnt_t;
> +
> +typedef __uint64_t __dev_t;
> +#define __dev_t_defined 1
> +
> +#if defined(__arm__) || defined(__i386__) || defined(__m68k__) || defined(__mips__) || defined(__PPC__) || defined(__sparc__)
> +/* Use 64bit types */
> +typedef __int64_t _off_t;
> +#define __off_t_defined 1
> +
> +typedef __int64_t _fpos_t;
> +#define __fpos_t_defined 1
> +#else
> +/* Use 32bit types */
> +typedef __int32_t _off_t;
> +#define __off_t_defined 1
> +
> +typedef __int32_t _fpos_t;
> +#define __fpos_t_defined 1
> +#endif
> +
> +typedef __uint32_t _mode_t;
> +#define __mode_t_defined 1
> +
> +#endif
> diff --git a/newlib/libc/sys/rtems/include/machine/limits.h b/newlib/libc/sys/rtems/include/machine/limits.h
> new file mode 100644
> index 0000000..5a6ee03
> --- /dev/null
> +++ b/newlib/libc/sys/rtems/include/machine/limits.h
> @@ -0,0 +1,6 @@
> +/*
> + * $Id$
> + */
> +
> +/* intentionally empty file */
> +
> diff --git a/newlib/libc/sys/rtems/include/machine/param.h b/newlib/libc/sys/rtems/include/machine/param.h
> new file mode 100644
> index 0000000..74891f5
> --- /dev/null
> +++ b/newlib/libc/sys/rtems/include/machine/param.h
> @@ -0,0 +1,101 @@
> +/*
> + * $Id$
> + */
> +
> +#ifndef _MACHINE_PARAM_H_
> +#define _MACHINE_PARAM_H_
> +
> +/*
> + * These aren't really machine-dependent for RTEMS.....
> + */
> +
> +/*
> +#define MACHINE "i386"
> +#define MID_MACHINE MID_I386
> +*/
> +
> +/*
> + * Round p (pointer or byte index) up to a correctly-aligned value
> + * for all data types (int, long, ...). The result is unsigned int
> + * and must be cast to any desired pointer type.
> + */
> +#if defined(__sparc__)
> +#define ALIGNBYTES (sizeof(double) - 1)
> +#else
> +#define ALIGNBYTES (sizeof(int) - 1)
> +#endif
> +#define ALIGN(p) (((unsigned)(p) + ALIGNBYTES)& ~ALIGNBYTES)
> +
> +#define PAGE_SHIFT 12 /* LOG2(PAGE_SIZE) */
> +#define PAGE_SIZE (1<<PAGE_SHIFT) /* bytes/page */
> +#define PAGE_MASK (PAGE_SIZE-1)
> +#define NPTEPG (PAGE_SIZE/(sizeof (pt_entry_t)))
> +
> +#define NPDEPG (PAGE_SIZE/(sizeof (pd_entry_t)))
> +#define PDRSHIFT 22 /* LOG2(NBPDR) */
> +#define NBPDR (1<<PDRSHIFT) /* bytes/page dir */
> +
> +#define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */
> +#define DEV_BSIZE (1<<DEV_BSHIFT)
> +
> +#if defined(__AVR__) || defined(__h8300__)
> +#define BLKDEV_IOSIZE 1024
> +#define MAXPHYS (1 * 1024) /* max raw I/O transfer size */
> +#else
> +#define BLKDEV_IOSIZE 2048
> +#define MAXPHYS (64 * 1024) /* max raw I/O transfer size */
> +#endif
> +
> +#define UPAGES 2 /* pages of u-area */
> +
> +/*
> + * Constants related to network buffer management.
> + * MCLBYTES must be no larger than CLBYTES (the software page size), and,
> + * on machines that exchange pages of input or output buffers with mbuf
> + * clusters (MAPPED_MBUFS), MCLBYTES must also be an integral multiple
> + * of the hardware page size.
> + */
> +#ifndef MSIZE
> +#define MSIZE 128 /* size of an mbuf */
> +#endif /* MSIZE */
> +
> +#ifndef MCLSHIFT
> +#define MCLSHIFT 11 /* convert bytes to m_buf clusters */
> +#endif /* MCLSHIFT */
> +#define MCLBYTES (1<< MCLSHIFT) /* size of an m_buf cluster */
> +#define MCLOFSET (MCLBYTES - 1) /* offset within an m_buf cluster */
> +
> +/*
> + * Some macros for units conversion
> + */
> +
> +/* clicks to bytes */
> +#define ctob(x) ((x)<<PAGE_SHIFT)
> +
> +/* bytes to clicks */
> +#define btoc(x) (((unsigned)(x)+PAGE_MASK)>>PAGE_SHIFT)
> +
> +/*
> + * btodb() is messy and perhaps slow because `bytes' may be an off_t. We
> + * want to shift an unsigned type to avoid sign extension and we don't
> + * want to widen `bytes' unnecessarily. Assume that the result fits in
> + * a daddr_t.
> + */
> +#define btodb(bytes) /* calculates (bytes / DEV_BSIZE) */ \
> + (sizeof (bytes)> sizeof(long) \
> + ? (daddr_t)((unsigned long long)(bytes)>> DEV_BSHIFT) \
> + : (daddr_t)((unsigned long)(bytes)>> DEV_BSHIFT))
> +
> +#define dbtob(db) /* calculates (db * DEV_BSIZE) */ \
> + ((off_t)(db)<< DEV_BSHIFT)
> +
> +/*
> + * Mach derived conversion macros
> + */
> +#define trunc_page(x) ((unsigned)(x)& ~PAGE_MASK)
> +#define round_page(x) ((((unsigned)(x)) + PAGE_MASK)& ~PAGE_MASK)
> +
> +#define atop(x) ((unsigned)(x)>> PAGE_SHIFT)
> +#define ptoa(x) ((unsigned)(x)<< PAGE_SHIFT)
> +
> +#endif /* !_MACHINE_PARAM_H_ */
> diff --git a/newlib/libc/sys/rtems/include/sys/cpuset.h b/newlib/libc/sys/rtems/include/sys/cpuset.h
> new file mode 100644
> index 0000000..8fae475
> --- /dev/null
> +++ b/newlib/libc/sys/rtems/include/sys/cpuset.h
> @@ -0,0 +1,311 @@
> +/*
> + * Copyright (c) 2013 On-Line Applications Research Corporation.
> + * All rights reserved.
> + *
> + * On-Line Applications Research Corporation
> + * 7047 Old Madison Pike Suite 320
> + * Huntsville Alabama 35806
> + *<info at oarcorp.com>
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + * notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + * notice, this list of conditions and the following disclaimer in the
> + * documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> + * SUCH DAMAGE.
> + */
> +
> +/*
> + * This file implements an API compatible with static portion of
> + * the GNU/Linux cpu_set_t macros but is independently implemented.
> + * The GNU/Linux manual page and the FreeBSD cpuset_t implementation
> + * were used as reference material.
> + *
> + * Not implemented:
> + * + Linux CPU_XXX_S
> + * + FreeBSD CPU_SUBSET
> + * + FreeBSD CPU_OVERLAP
> + */
> +
> +
> +#ifndef _SYS_CPUSET_H_
> +#define _SYS_CPUSET_H_
> +
> +#include<sys/cdefs.h>
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif /* __cplusplus */
> +
> +/* RTEMS supports a maximum of 32 CPU cores */
> +#ifndef CPU_SETSIZE
> +#define CPU_SETSIZE 32
> +#endif
> +
> +/* word in the cpu set */
> +typedef __uint32_t cpu_set_word_t;
> +
> +/* Number of bits per cpu_set_t element */
> +#define _NCPUBITS (sizeof(cpu_set_word_t) * 8)
> +
> +/* Number of words in the cpu_set_t array */
> +#define _NCPUWORDS (((CPU_SETSIZE)+((_NCPUBITS)-1))/(_NCPUBITS))
> +
> +/* Define the cpu set structure */
> +typedef struct _cpuset {
> + cpu_set_word_t __bits[_NCPUWORDS];
> +} cpu_set_t;
> +
> +/* determine the mask for a particular cpu within the element */
> +static __inline cpu_set_word_t __cpuset_mask(int cpu)
> +{
> + return (cpu_set_word_t)1<< ((size_t)cpu % _NCPUBITS);
> +}
> +
> +/* determine the index for this cpu within the cpu set array */
> +static __inline size_t __cpuset_index(int cpu)
> +{
> + return (size_t)cpu / _NCPUBITS;
> +}
> +
> +#define CPU_ALLOC_SIZE(_num_cpus) \
> + (sizeof(cpu_set_word_t) * (((_num_cpus) + _NCPUBITS - 1) / _NCPUBITS))
> +
> +cpu_set_t *__cpuset_alloc(int num_cpus);
> +
> +static __inline cpu_set_t *CPU_ALLOC(int num_cpus)
> +{
> + return __cpuset_alloc(num_cpus);
> +}
> +
> +void __cpuset_free(cpu_set_t *set);
> +
> +static __inline void CPU_FREE(cpu_set_t *set)
> +{
> + __cpuset_free(set);
> +}
> +
> +static __inline void CPU_ZERO_S(size_t setsize, cpu_set_t *set)
> +{
> + cpu_set_word_t *w =&set->__bits[0];
> + size_t n = setsize / sizeof(*w);
> + size_t i;
> +
> + for (i = 0; i< n; ++i)
> + w[i] = 0;
> +}
> +
> +static __inline void CPU_ZERO(cpu_set_t *set)
> +{
> + CPU_ZERO_S(sizeof(*set), set);
> +}
> +
> +static __inline void CPU_FILL_S(size_t setsize, cpu_set_t *set)
> +{
> + cpu_set_word_t *w =&set->__bits[0];
> + size_t n = setsize / sizeof(*w);
> + size_t i;
> +
> + for (i = 0; i< n; ++i)
> + w[i] = ~(cpu_set_word_t)0;
> +}
> +
> +static __inline void CPU_FILL(cpu_set_t *set)
> +{
> + CPU_FILL_S(sizeof(*set), set);
> +}
> +
> +static __inline void CPU_SET_S(int cpu, size_t setsize, cpu_set_t *set)
> +{
> + cpu_set_word_t *w =&set->__bits[0];
> +
> + w[__cpuset_index(cpu)] |= __cpuset_mask(cpu);
> +}
> +
> +static __inline void CPU_SET(int cpu, cpu_set_t *set)
> +{
> + CPU_SET_S(cpu, sizeof(*set), set);
> +}
> +
> +static __inline void CPU_CLR_S(int cpu, size_t setsize, cpu_set_t *set)
> +{
> + cpu_set_word_t *w =&set->__bits[0];
> +
> + w[__cpuset_index(cpu)]&= ~__cpuset_mask(cpu);
> +}
> +
> +static __inline void CPU_CLR(int cpu, cpu_set_t *set)
> +{
> + CPU_CLR_S(cpu, sizeof(*set), set);
> +}
> +
> +static __inline int CPU_ISSET_S(int cpu, size_t setsize, const cpu_set_t *set)
> +{
> + const cpu_set_word_t *w =&set->__bits[0];
> +
> + return ((w[__cpuset_index(cpu)]& __cpuset_mask(cpu)) != 0);
> +}
> +
> +static __inline int CPU_ISSET(int cpu, const cpu_set_t *set)
> +{
> + return CPU_ISSET_S(cpu, sizeof(*set), set);
> +}
> +
> +/* copy src set to dest set */
> +static __inline void CPU_COPY( cpu_set_t *dest, const cpu_set_t *src )
> +{
> + *dest = *src;
> +}
> +
> +static __inline void CPU_AND_S(size_t setsize, cpu_set_t *destset,
> + const cpu_set_t *srcset1, const cpu_set_t *srcset2)
> +{
> + cpu_set_word_t *wdest =&destset->__bits[0];
> + const cpu_set_word_t *wsrc1 =&srcset1->__bits[0];
> + const cpu_set_word_t *wsrc2 =&srcset2->__bits[0];
> + size_t n = setsize / sizeof(*wdest);
> + size_t i;
> +
> + for (i = 0; i< n; ++i)
> + wdest[i] = wsrc1[i]& wsrc2[i];
> +}
> +
> +static __inline void CPU_AND(cpu_set_t *destset, const cpu_set_t *srcset1,
> + const cpu_set_t *srcset2)
> +{
> + CPU_AND_S(sizeof(*destset), destset, srcset1, srcset2);
> +}
> +
> +static __inline void CPU_OR_S(size_t setsize, cpu_set_t *destset,
> + const cpu_set_t *srcset1, const cpu_set_t *srcset2)
> +{
> + cpu_set_word_t *wdest =&destset->__bits[0];
> + const cpu_set_word_t *wsrc1 =&srcset1->__bits[0];
> + const cpu_set_word_t *wsrc2 =&srcset2->__bits[0];
> + size_t n = setsize / sizeof(*wdest);
> + size_t i;
> +
> + for (i = 0; i< n; ++i)
> + wdest[i] = wsrc1[i] | wsrc2[i];
> +}
> +
> +static __inline void CPU_OR(cpu_set_t *destset, const cpu_set_t *srcset1,
> + const cpu_set_t *srcset2)
> +{
> + CPU_OR_S(sizeof(*destset), destset, srcset1, srcset2);
> +}
> +
> +static __inline void CPU_XOR_S(size_t setsize, cpu_set_t *destset,
> + const cpu_set_t *srcset1, const cpu_set_t *srcset2)
> +{
> + cpu_set_word_t *wdest =&destset->__bits[0];
> + const cpu_set_word_t *wsrc1 =&srcset1->__bits[0];
> + const cpu_set_word_t *wsrc2 =&srcset2->__bits[0];
> + size_t n = setsize / sizeof(*wdest);
> + size_t i;
> +
> + for (i = 0; i< n; ++i)
> + wdest[i] = wsrc1[i] ^ wsrc2[i];
> +}
> +
> +static __inline void CPU_XOR(cpu_set_t *destset, const cpu_set_t *srcset1,
> + const cpu_set_t *srcset2)
> +{
> + CPU_XOR_S(sizeof(*destset), destset, srcset1, srcset2);
> +}
> +
> +static __inline void CPU_NAND_S(size_t setsize, cpu_set_t *destset,
> + const cpu_set_t *srcset1, const cpu_set_t *srcset2)
> +{
> + cpu_set_word_t *wdest =&destset->__bits[0];
> + const cpu_set_word_t *wsrc1 =&srcset1->__bits[0];
> + const cpu_set_word_t *wsrc2 =&srcset2->__bits[0];
> + size_t n = setsize / sizeof(*wdest);
> + size_t i;
> +
> + for (i = 0; i< n; ++i)
> + wdest[i] = ~(wsrc1[i]& wsrc2[i]);
> +}
> +
> +static __inline void CPU_NAND(cpu_set_t *destset, const cpu_set_t *srcset1,
> + const cpu_set_t *srcset2)
> +{
> + CPU_NAND_S(sizeof(*destset), destset, srcset1, srcset2);
> +}
> +
> +static __inline int CPU_COUNT_S(size_t setsize, const cpu_set_t *set)
> +{
> + int count = 0;
> + const cpu_set_word_t *w =&set->__bits[0];
> + size_t n = setsize / sizeof(*w);
> + size_t i;
> + int cpu;
> +
> + for (i = 0; i< n; ++i)
> + for (cpu = 0; cpu< (int)_NCPUBITS; ++cpu)
> + count += (w[i]& __cpuset_mask(cpu)) != 0;
> +
> + return count;
> +}
> +
> +static __inline int CPU_COUNT(const cpu_set_t *set)
> +{
> + return CPU_COUNT_S(sizeof(*set), set);
> +}
> +
> +static __inline int CPU_EQUAL_S(size_t setsize, const cpu_set_t *set1,
> + const cpu_set_t *set2)
> +{
> + const cpu_set_word_t *w1 =&set1->__bits[0];
> + const cpu_set_word_t *w2 =&set2->__bits[0];
> + size_t n = setsize / sizeof(*w1);
> + size_t i;
> +
> + for (i = 0; i< n; ++i)
> + if (w1[i] != w2[i])
> + return 0;
> +
> + return 1;
> +}
> +
> +static __inline int CPU_EQUAL(const cpu_set_t *set1, const cpu_set_t *set2)
> +{
> + return CPU_EQUAL_S(sizeof(*set1), set1, set2);
> +}
> +
> +/* return 1 if the sets set1 and set2 are equal, otherwise return 0 */
> +static __inline int CPU_CMP( const cpu_set_t *set1, const cpu_set_t *set2 )
> +{
> + return CPU_EQUAL(set1, set2);
> +}
> +
> +/* return 1 if the set is empty, otherwise return 0 */
> +static __inline int CPU_EMPTY( const cpu_set_t *set )
> +{
> + size_t i;
> +
> + for (i=0; i< _NCPUWORDS; i++)
> + if (set->__bits[i] != 0 )
> + return 0;
> + return 1;
> +}
> +
> +#ifdef __cplusplus
> +}
> +#endif /* __cplusplus */
> +
> +#endif
> diff --git a/newlib/libc/sys/rtems/include/sys/dirent.h b/newlib/libc/sys/rtems/include/sys/dirent.h
> new file mode 100644
> index 0000000..8d2aa38
> --- /dev/null
> +++ b/newlib/libc/sys/rtems/include/sys/dirent.h
> @@ -0,0 +1,64 @@
> +#ifndef _SYS_DIRENT_H
> +# define _SYS_DIRENT_H
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +/*
> + * This file was written to be compatible with the BSD directory
> + * routines, so it looks like it. But it was written from scratch.
> + * Sean Eric Fagan, sef at Kithrup.COM
> + *
> + * Copied to RTEMS configuration without modification.
> + */
> +
> +typedef struct _dirdesc {
> + int dd_fd;
> + long dd_loc;
> + long dd_size;
> + char *dd_buf;
> + int dd_len;
> + long dd_seek;
> +} DIR;
> +
> +# define __dirfd(dp) ((dp)->dd_fd)
> +
> +DIR *opendir(const char *);
> +struct dirent *readdir(DIR *);
> +int readdir_r(DIR *__restrict, struct dirent *__restrict,
> + struct dirent **__restrict);
> +void rewinddir(DIR *);
> +int closedir(DIR *);
> +void seekdir(DIR *dir, long loc);
> +long telldir(DIR *dir);
> +
> +#ifdef _COMPILING_NEWLIB
> +void _seekdir(DIR *dir, long offset);
> +#endif
> +
> +#include<sys/types.h>
> +
> +#include<limits.h>
> +
> +struct dirent {
> + long d_ino;
> + off_t d_off;
> + unsigned short d_reclen;
> + /* we need better syntax for variable-sized arrays */
> + unsigned short d_namlen;
> + char d_name[NAME_MAX + 1];
> +};
> +
> +int scandir ( const char *dirname,
> + struct dirent *** namelist,
> + int (*select)(const struct dirent *),
> + int (*dcomp)(const struct dirent **, const struct dirent **)
> +);
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +
> +#endif
> diff --git a/newlib/libc/sys/rtems/include/sys/param.h b/newlib/libc/sys/rtems/include/sys/param.h
> new file mode 100644
> index 0000000..808745f
> --- /dev/null
> +++ b/newlib/libc/sys/rtems/include/sys/param.h
> @@ -0,0 +1,217 @@
> +/*-
> + * Copyright (c) 1982, 1986, 1989, 1993
> + * The Regents of the University of California. All rights reserved.
> + * (c) UNIX System Laboratories, Inc.
> + * All or some portions of this file are derived from material licensed
> + * to the University of California by American Telephone and Telegraph
> + * Co. or Unix System Laboratories, Inc. and are reproduced herein with
> + * the permission of UNIX System Laboratories, Inc.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + * notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + * notice, this list of conditions and the following disclaimer in the
> + * documentation and/or other materials provided with the distribution.
> + * 4. Neither the name of the University nor the names of its contributors
> + * may be used to endorse or promote products derived from this software
> + * without specific prior written permission.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> + * SUCH DAMAGE.
> + *
> + * @(#)param.h 8.3 (Berkeley) 4/4/95
> + * $Id$
> + */
> +
> +#ifndef _SYS_PARAM_H_
> +#define _SYS_PARAM_H_
> +
> +/* from newlib's<sys/param.h> */
> +
> +#include<sys/config.h>
> +#include<machine/endian.h>
> +
> +# define PATHSIZE (1024)
> +
> +/* end of from newlib's<sys/param.h> */
> +
> +#include<unistd.h>
> +
> +#define BSD 199506 /* System version (year& month). */
> +#define BSD4_3 1
> +#define BSD4_4 1
> +
> +#ifndef NULL
> +#define NULL 0
> +#endif
> +
> +#ifndef LOCORE
> +#include<sys/types.h>
> +#endif
> +
> +/*
> + * Machine-independent constants (some used in following include files).
> + * Redefined constants are from POSIX 1003.1 limits file.
> + *
> + * MAXCOMLEN should be>= sizeof(ac_comm) (see<acct.h>)
> + */
> +#include<sys/syslimits.h>
> +
> +#define MAXCOMLEN 19 /* max command name remembered */
> +#define MAXINTERP PATH_MAX /* max interpreter file name length */
> +#define MAXLOGNAME 33 /* max login name length (incl. NUL) */
> +#define MAXUPRC CHILD_MAX /* max simultaneous processes */
> +#define NCARGS ARG_MAX /* max bytes for an exec function */
> +#define NGROUPS (NGROUPS_MAX+1) /* max number groups */
> +#define NOFILE OPEN_MAX /* max open files per process */
> +#define NOGROUP 65535 /* marker for empty group set member */
> +#define MAXHOSTNAMELEN 256 /* max hostname size */
> +#define SPECNAMELEN 63 /* max length of devicename */
> +
> +/* More types and definitions used throughout the kernel. */
> +#if defined(KERNEL) || defined(_KERNEL)
> +#include<sys/cdefs.h>
> +#include<sys/errno.h>
> +#include<sys/time.h>
> +#include<sys/resource.h>
> +#include<sys/uio.h>
> +#include<sys/priority.h>
> +
> +#ifndef FALSE
> +#define FALSE 0
> +#endif
> +#ifndef TRUE
> +#define TRUE 1
> +#endif
> +#endif
> +
> +/* Signals. */
> +#include<sys/signal.h>
> +
> +/* Machine type dependent parameters. */
> +#include<machine/param.h>
> +#include<machine/limits.h>
> +
> +#define PRIMASK 0x0ff
> +#define PCATCH 0x100 /* OR'd with pri for tsleep to check signals */
> +
> +#define NZERO 0 /* default "nice" */
> +
> +#define NBPW sizeof(int) /* number of bytes per word (integer) */
> +
> +#define CMASK 022 /* default file mask: S_IWGRP|S_IWOTH */
> +#define NODEV (dev_t)(-1) /* non-existent device */
> +
> +#define CBLOCK 128 /* Clist block size, must be a power of 2. */
> +#define CBQSIZE (CBLOCK/NBBY) /* Quote bytes/cblock - can do better. */
> + /* Data chars/clist. */
> +#define CBSIZE (CBLOCK - sizeof(struct cblock *) - CBQSIZE)
> +#define CROUND (CBLOCK - 1) /* Clist rounding. */
> +
> +/*
> + * File system parameters and macros.
> + *
> + * MAXBSIZE - Filesystems are made out of blocks of at most MAXBSIZE bytes
> + * per block. MAXBSIZE may be made larger without effecting
> + * any existing filesystems as long as it does not exceed MAXPHYS,
> + * and may be made smaller at the risk of not being able to use
> + * filesystems which require a block size exceeding MAXBSIZE.
> + *
> + * BKVASIZE - Nominal buffer space per buffer, in bytes. BKVASIZE is the
> + * minimum KVM memory reservation the kernel is willing to make.
> + * Filesystems can of course request smaller chunks. Actual
> + * backing memory uses a chunk size of a page (PAGE_SIZE).
> + *
> + * If you make BKVASIZE too small you risk seriously fragmenting
> + * the buffer KVM map which may slow things down a bit. If you
> + * make it too big the kernel will not be able to optimally use
> + * the KVM memory reserved for the buffer cache and will wind
> + * up with too-few buffers.
> + *
> + * The default is 16384, roughly 2x the block size used by a
> + * normal UFS filesystem.
> + */
> +#define MAXBSIZE 65536 /* must be power of 2 */
> +#define BKVASIZE 16384 /* must be power of 2 */
> +#define BKVAMASK (BKVASIZE-1)
> +
> +/*
> + * MAXPATHLEN defines the longest permissible path length after expanding
> + * symbolic links. It is used to allocate a temporary buffer from the buffer
> + * pool in which to do the name expansion, hence should be a power of two,
> + * and must be less than or equal to MAXBSIZE. MAXSYMLINKS defines the
> + * maximum number of symbolic links that may be expanded in a path name.
> + * It should be set high enough to allow all legitimate uses, but halt
> + * infinite loops reasonably quickly.
> + */
> +#define MAXPATHLEN PATH_MAX
> +#define MAXSYMLINKS 32
> +
> +/* Bit map related macros. */
> +#define setbit(a,i) (((unsigned char *)(a))[(i)/NBBY] |= 1<<((i)%NBBY))
> +#define clrbit(a,i) (((unsigned char *)(a))[(i)/NBBY]&= ~(1<<((i)%NBBY)))
> +#define isset(a,i) \
> + (((const unsigned char *)(a))[(i)/NBBY]& (1<<((i)%NBBY)))
> +#define isclr(a,i) \
> + ((((const unsigned char *)(a))[(i)/NBBY]& (1<<((i)%NBBY))) == 0)
> +
> +/* Macros for counting and rounding. */
> +#ifndef howmany
> +#define howmany(x, y) (((x)+((y)-1))/(y))
> +#endif
> +#define rounddown(x, y) (((x)/(y))*(y))
> +#define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) /* to any y */
> +#define roundup2(x, y) (((x)+((y)-1))&(~((y)-1))) /* if y is powers of two */
> +#define powerof2(x) ((((x)-1)&(x))==0)
> +
> +/* Macros for min/max. */
> +#if !(defined(KERNEL) || defined(_KERNEL))
> +#define MIN(a,b) (((a)<(b))?(a):(b))
> +#define MAX(a,b) (((a)>(b))?(a):(b))
> +#endif
> +
> +/*
> + * Constants for setting the parameters of the kernel memory allocator.
> + *
> + * 2 ** MINBUCKET is the smallest unit of memory that will be
> + * allocated. It must be at least large enough to hold a pointer.
> + *
> + * Units of memory less or equal to MAXALLOCSAVE will permanently
> + * allocate physical memory; requests for these size pieces of
> + * memory are quite fast. Allocations greater than MAXALLOCSAVE must
> + * always allocate and free physical memory; requests for these
> + * size allocations should be done infrequently as they will be slow.
> + *
> + * Constraints: PAGE_SIZE<= MAXALLOCSAVE<= 2 ** (MINBUCKET + 14), and
> + * MAXALLOCSIZE must be a power of two.
> + */
> +#define MINBUCKET 4 /* 4 => min allocation of 16 bytes */
> +#define MAXALLOCSAVE (2 * PAGE_SIZE)
> +
> +/*
> + * Scale factor for scaled integers used to count %cpu time and load avgs.
> + *
> + * The number of CPU `tick's that map to a unique `%age' can be expressed
> + * by the formula (1 / (2 ^ (FSHIFT - 11))). The maximum load average that
> + * can be calculated (assuming 32 bits) can be closely approximated using
> + * the formula (2 ^ (2 * (16 - FSHIFT))) for (FSHIFT< 15).
> + *
> + * For the scheduler to maintain a 1:1 mapping of CPU `tick' to `%age',
> + * FSHIFT must be at least 11; this gives us a maximum load avg of ~1024.
> + */
> +#define FSHIFT 11 /* bits to right of fixed binary point */
> +#define FSCALE (1<<FSHIFT)
> +
> +#endif /* _SYS_PARAM_H_ */
> diff --git a/newlib/libc/sys/rtems/include/sys/syslimits.h b/newlib/libc/sys/rtems/include/sys/syslimits.h
> new file mode 100644
> index 0000000..2295afe
> --- /dev/null
> +++ b/newlib/libc/sys/rtems/include/sys/syslimits.h
> @@ -0,0 +1,64 @@
> +/*
> + * Copyright (c) 1988, 1993
> + * The Regents of the University of California. All rights reserved.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + * notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + * notice, this list of conditions and the following disclaimer in the
> + * documentation and/or other materials provided with the distribution.
> + * 3. All advertising materials mentioning features or use of this software
> + * must display the following acknowledgement:
> + * This product includes software developed by the University of
> + * California, Berkeley and its contributors.
> + * 4. Neither the name of the University nor the names of its contributors
> + * may be used to endorse or promote products derived from this software
> + * without specific prior written permission.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> + * SUCH DAMAGE.
> + *
> + * @(#)syslimits.h 8.1 (Berkeley) 6/2/93
> + * $Id$
> + */
> +
> +#ifndef _SYS_SYSLIMITS_H_
> +#define _SYS_SYSLIMITS_H_
> +
> +#define ARG_MAX 4096 /* max bytes for an exec function */
> +#ifndef CHILD_MAX
> +#define CHILD_MAX 6 /* max simultaneous processes */
> +#endif
> +#define LINK_MAX 8 /* max file link count */
> +#define MAX_CANON 255 /* max bytes in term canon input line */
> +#define MAX_INPUT 255 /* max bytes in terminal input */
> +#define NAME_MAX 255 /* max bytes in a file name */
> +#define NGROUPS_MAX 15 /* max supplemental group id's */
> +#ifndef OPEN_MAX
> +#define OPEN_MAX 64 /* max open files per process */
> +#endif
> +#define PATH_MAX 255 /* max bytes in pathname */
> +#define PIPE_BUF 512 /* max bytes for atomic pipe writes */
> +#define IOV_MAX 1024 /* max elements in i/o vector */
> +#define BC_BASE_MAX 99 /* max ibase/obase values in bc(1) */
> +#define BC_DIM_MAX 2048 /* max array elements in bc(1) */
> +#define BC_SCALE_MAX 99 /* max scale value in bc(1) */
> +#define BC_STRING_MAX 1000 /* max const string length in bc(1) */
> +#define COLL_WEIGHTS_MAX 0 /* max weights for order keyword */
> +#define EXPR_NEST_MAX 32 /* max expressions nested in expr(1) */
> +#define LINE_MAX 2048 /* max bytes in an input line */
> +#define RE_DUP_MAX 255 /* max RE's in interval notation */
> +
> +#endif
> diff --git a/newlib/libc/sys/rtems/include/sys/utime.h b/newlib/libc/sys/rtems/include/sys/utime.h
> new file mode 100644
> index 0000000..561136b
> --- /dev/null
> +++ b/newlib/libc/sys/rtems/include/sys/utime.h
> @@ -0,0 +1,34 @@
> +/*
> + * $Id$
> + */
> +
> +#ifndef __UTIME_h__
> +#define __UTIME_h__
> +
> +#include<sys/types.h>
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +/*
> + * POSIX 1003.1b 5.6.6 Set File Access and Modification Times
> + */
> +
> +struct utimbuf {
> + time_t actime; /* Access time */
> + time_t modtime; /* Modification time */
> +};
> +
> +/* Functions */
> +
> +int utime(
> + const char *path,
> + const struct utimbuf *times
> +);
> +
> +#ifdef __cplusplus
> +};
> +#endif
> +
> +#endif /* _SYS_UTIME_H */
> diff --git a/newlib/libc/sys/rtems/machine/_types.h b/newlib/libc/sys/rtems/machine/_types.h
> deleted file mode 100644
> index 1711c7a..0000000
> --- a/newlib/libc/sys/rtems/machine/_types.h
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -/*
> - * $Id$
> - */
> -
> -#ifndef _MACHINE__TYPES_H
> -#define _MACHINE__TYPES_H
> -
> -/* This disables some conflicting type definitions in<machine/types.h> */
> -#define _HAVE_SYSTYPES
> -
> -#include<machine/_default_types.h>
> -
> -typedef __int32_t blksize_t;
> -typedef __int32_t blkcnt_t;
> -
> -typedef __uint64_t __dev_t;
> -#define __dev_t_defined 1
> -
> -#if defined(__arm__) || defined(__i386__) || defined(__m68k__) || defined(__mips__) || defined(__PPC__) || defined(__sparc__)
> -/* Use 64bit types */
> -typedef __int64_t _off_t;
> -#define __off_t_defined 1
> -
> -typedef __int64_t _fpos_t;
> -#define __fpos_t_defined 1
> -#else
> -/* Use 32bit types */
> -typedef __int32_t _off_t;
> -#define __off_t_defined 1
> -
> -typedef __int32_t _fpos_t;
> -#define __fpos_t_defined 1
> -#endif
> -
> -typedef __uint32_t _mode_t;
> -#define __mode_t_defined 1
> -
> -#endif
> diff --git a/newlib/libc/sys/rtems/machine/limits.h b/newlib/libc/sys/rtems/machine/limits.h
> deleted file mode 100644
> index 5a6ee03..0000000
> --- a/newlib/libc/sys/rtems/machine/limits.h
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -/*
> - * $Id$
> - */
> -
> -/* intentionally empty file */
> -
> diff --git a/newlib/libc/sys/rtems/machine/param.h b/newlib/libc/sys/rtems/machine/param.h
> deleted file mode 100644
> index 74891f5..0000000
> --- a/newlib/libc/sys/rtems/machine/param.h
> +++ /dev/null
> @@ -1,101 +0,0 @@
> -/*
> - * $Id$
> - */
> -
> -#ifndef _MACHINE_PARAM_H_
> -#define _MACHINE_PARAM_H_
> -
> -/*
> - * These aren't really machine-dependent for RTEMS.....
> - */
> -
> -/*
> -#define MACHINE "i386"
> -#define MID_MACHINE MID_I386
> -*/
> -
> -/*
> - * Round p (pointer or byte index) up to a correctly-aligned value
> - * for all data types (int, long, ...). The result is unsigned int
> - * and must be cast to any desired pointer type.
> - */
> -#if defined(__sparc__)
> -#define ALIGNBYTES (sizeof(double) - 1)
> -#else
> -#define ALIGNBYTES (sizeof(int) - 1)
> -#endif
> -#define ALIGN(p) (((unsigned)(p) + ALIGNBYTES)& ~ALIGNBYTES)
> -
> -#define PAGE_SHIFT 12 /* LOG2(PAGE_SIZE) */
> -#define PAGE_SIZE (1<<PAGE_SHIFT) /* bytes/page */
> -#define PAGE_MASK (PAGE_SIZE-1)
> -#define NPTEPG (PAGE_SIZE/(sizeof (pt_entry_t)))
> -
> -#define NPDEPG (PAGE_SIZE/(sizeof (pd_entry_t)))
> -#define PDRSHIFT 22 /* LOG2(NBPDR) */
> -#define NBPDR (1<<PDRSHIFT) /* bytes/page dir */
> -
> -#define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */
> -#define DEV_BSIZE (1<<DEV_BSHIFT)
> -
> -#if defined(__AVR__) || defined(__h8300__)
> -#define BLKDEV_IOSIZE 1024
> -#define MAXPHYS (1 * 1024) /* max raw I/O transfer size */
> -#else
> -#define BLKDEV_IOSIZE 2048
> -#define MAXPHYS (64 * 1024) /* max raw I/O transfer size */
> -#endif
> -
> -#define UPAGES 2 /* pages of u-area */
> -
> -/*
> - * Constants related to network buffer management.
> - * MCLBYTES must be no larger than CLBYTES (the software page size), and,
> - * on machines that exchange pages of input or output buffers with mbuf
> - * clusters (MAPPED_MBUFS), MCLBYTES must also be an integral multiple
> - * of the hardware page size.
> - */
> -#ifndef MSIZE
> -#define MSIZE 128 /* size of an mbuf */
> -#endif /* MSIZE */
> -
> -#ifndef MCLSHIFT
> -#define MCLSHIFT 11 /* convert bytes to m_buf clusters */
> -#endif /* MCLSHIFT */
> -#define MCLBYTES (1<< MCLSHIFT) /* size of an m_buf cluster */
> -#define MCLOFSET (MCLBYTES - 1) /* offset within an m_buf cluster */
> -
> -/*
> - * Some macros for units conversion
> - */
> -
> -/* clicks to bytes */
> -#define ctob(x) ((x)<<PAGE_SHIFT)
> -
> -/* bytes to clicks */
> -#define btoc(x) (((unsigned)(x)+PAGE_MASK)>>PAGE_SHIFT)
> -
> -/*
> - * btodb() is messy and perhaps slow because `bytes' may be an off_t. We
> - * want to shift an unsigned type to avoid sign extension and we don't
> - * want to widen `bytes' unnecessarily. Assume that the result fits in
> - * a daddr_t.
> - */
> -#define btodb(bytes) /* calculates (bytes / DEV_BSIZE) */ \
> - (sizeof (bytes)> sizeof(long) \
> - ? (daddr_t)((unsigned long long)(bytes)>> DEV_BSHIFT) \
> - : (daddr_t)((unsigned long)(bytes)>> DEV_BSHIFT))
> -
> -#define dbtob(db) /* calculates (db * DEV_BSIZE) */ \
> - ((off_t)(db)<< DEV_BSHIFT)
> -
> -/*
> - * Mach derived conversion macros
> - */
> -#define trunc_page(x) ((unsigned)(x)& ~PAGE_MASK)
> -#define round_page(x) ((((unsigned)(x)) + PAGE_MASK)& ~PAGE_MASK)
> -
> -#define atop(x) ((unsigned)(x)>> PAGE_SHIFT)
> -#define ptoa(x) ((unsigned)(x)<< PAGE_SHIFT)
> -
> -#endif /* !_MACHINE_PARAM_H_ */
> diff --git a/newlib/libc/sys/rtems/sys/cpuset.h b/newlib/libc/sys/rtems/sys/cpuset.h
> deleted file mode 100644
> index 8fae475..0000000
> --- a/newlib/libc/sys/rtems/sys/cpuset.h
> +++ /dev/null
> @@ -1,311 +0,0 @@
> -/*
> - * Copyright (c) 2013 On-Line Applications Research Corporation.
> - * All rights reserved.
> - *
> - * On-Line Applications Research Corporation
> - * 7047 Old Madison Pike Suite 320
> - * Huntsville Alabama 35806
> - *<info at oarcorp.com>
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions
> - * are met:
> - * 1. Redistributions of source code must retain the above copyright
> - * notice, this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright
> - * notice, this list of conditions and the following disclaimer in the
> - * documentation and/or other materials provided with the distribution.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
> - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
> - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> - * SUCH DAMAGE.
> - */
> -
> -/*
> - * This file implements an API compatible with static portion of
> - * the GNU/Linux cpu_set_t macros but is independently implemented.
> - * The GNU/Linux manual page and the FreeBSD cpuset_t implementation
> - * were used as reference material.
> - *
> - * Not implemented:
> - * + Linux CPU_XXX_S
> - * + FreeBSD CPU_SUBSET
> - * + FreeBSD CPU_OVERLAP
> - */
> -
> -
> -#ifndef _SYS_CPUSET_H_
> -#define _SYS_CPUSET_H_
> -
> -#include<sys/cdefs.h>
> -
> -#ifdef __cplusplus
> -extern "C" {
> -#endif /* __cplusplus */
> -
> -/* RTEMS supports a maximum of 32 CPU cores */
> -#ifndef CPU_SETSIZE
> -#define CPU_SETSIZE 32
> -#endif
> -
> -/* word in the cpu set */
> -typedef __uint32_t cpu_set_word_t;
> -
> -/* Number of bits per cpu_set_t element */
> -#define _NCPUBITS (sizeof(cpu_set_word_t) * 8)
> -
> -/* Number of words in the cpu_set_t array */
> -#define _NCPUWORDS (((CPU_SETSIZE)+((_NCPUBITS)-1))/(_NCPUBITS))
> -
> -/* Define the cpu set structure */
> -typedef struct _cpuset {
> - cpu_set_word_t __bits[_NCPUWORDS];
> -} cpu_set_t;
> -
> -/* determine the mask for a particular cpu within the element */
> -static __inline cpu_set_word_t __cpuset_mask(int cpu)
> -{
> - return (cpu_set_word_t)1<< ((size_t)cpu % _NCPUBITS);
> -}
> -
> -/* determine the index for this cpu within the cpu set array */
> -static __inline size_t __cpuset_index(int cpu)
> -{
> - return (size_t)cpu / _NCPUBITS;
> -}
> -
> -#define CPU_ALLOC_SIZE(_num_cpus) \
> - (sizeof(cpu_set_word_t) * (((_num_cpus) + _NCPUBITS - 1) / _NCPUBITS))
> -
> -cpu_set_t *__cpuset_alloc(int num_cpus);
> -
> -static __inline cpu_set_t *CPU_ALLOC(int num_cpus)
> -{
> - return __cpuset_alloc(num_cpus);
> -}
> -
> -void __cpuset_free(cpu_set_t *set);
> -
> -static __inline void CPU_FREE(cpu_set_t *set)
> -{
> - __cpuset_free(set);
> -}
> -
> -static __inline void CPU_ZERO_S(size_t setsize, cpu_set_t *set)
> -{
> - cpu_set_word_t *w =&set->__bits[0];
> - size_t n = setsize / sizeof(*w);
> - size_t i;
> -
> - for (i = 0; i< n; ++i)
> - w[i] = 0;
> -}
> -
> -static __inline void CPU_ZERO(cpu_set_t *set)
> -{
> - CPU_ZERO_S(sizeof(*set), set);
> -}
> -
> -static __inline void CPU_FILL_S(size_t setsize, cpu_set_t *set)
> -{
> - cpu_set_word_t *w =&set->__bits[0];
> - size_t n = setsize / sizeof(*w);
> - size_t i;
> -
> - for (i = 0; i< n; ++i)
> - w[i] = ~(cpu_set_word_t)0;
> -}
> -
> -static __inline void CPU_FILL(cpu_set_t *set)
> -{
> - CPU_FILL_S(sizeof(*set), set);
> -}
> -
> -static __inline void CPU_SET_S(int cpu, size_t setsize, cpu_set_t *set)
> -{
> - cpu_set_word_t *w =&set->__bits[0];
> -
> - w[__cpuset_index(cpu)] |= __cpuset_mask(cpu);
> -}
> -
> -static __inline void CPU_SET(int cpu, cpu_set_t *set)
> -{
> - CPU_SET_S(cpu, sizeof(*set), set);
> -}
> -
> -static __inline void CPU_CLR_S(int cpu, size_t setsize, cpu_set_t *set)
> -{
> - cpu_set_word_t *w =&set->__bits[0];
> -
> - w[__cpuset_index(cpu)]&= ~__cpuset_mask(cpu);
> -}
> -
> -static __inline void CPU_CLR(int cpu, cpu_set_t *set)
> -{
> - CPU_CLR_S(cpu, sizeof(*set), set);
> -}
> -
> -static __inline int CPU_ISSET_S(int cpu, size_t setsize, const cpu_set_t *set)
> -{
> - const cpu_set_word_t *w =&set->__bits[0];
> -
> - return ((w[__cpuset_index(cpu)]& __cpuset_mask(cpu)) != 0);
> -}
> -
> -static __inline int CPU_ISSET(int cpu, const cpu_set_t *set)
> -{
> - return CPU_ISSET_S(cpu, sizeof(*set), set);
> -}
> -
> -/* copy src set to dest set */
> -static __inline void CPU_COPY( cpu_set_t *dest, const cpu_set_t *src )
> -{
> - *dest = *src;
> -}
> -
> -static __inline void CPU_AND_S(size_t setsize, cpu_set_t *destset,
> - const cpu_set_t *srcset1, const cpu_set_t *srcset2)
> -{
> - cpu_set_word_t *wdest =&destset->__bits[0];
> - const cpu_set_word_t *wsrc1 =&srcset1->__bits[0];
> - const cpu_set_word_t *wsrc2 =&srcset2->__bits[0];
> - size_t n = setsize / sizeof(*wdest);
> - size_t i;
> -
> - for (i = 0; i< n; ++i)
> - wdest[i] = wsrc1[i]& wsrc2[i];
> -}
> -
> -static __inline void CPU_AND(cpu_set_t *destset, const cpu_set_t *srcset1,
> - const cpu_set_t *srcset2)
> -{
> - CPU_AND_S(sizeof(*destset), destset, srcset1, srcset2);
> -}
> -
> -static __inline void CPU_OR_S(size_t setsize, cpu_set_t *destset,
> - const cpu_set_t *srcset1, const cpu_set_t *srcset2)
> -{
> - cpu_set_word_t *wdest =&destset->__bits[0];
> - const cpu_set_word_t *wsrc1 =&srcset1->__bits[0];
> - const cpu_set_word_t *wsrc2 =&srcset2->__bits[0];
> - size_t n = setsize / sizeof(*wdest);
> - size_t i;
> -
> - for (i = 0; i< n; ++i)
> - wdest[i] = wsrc1[i] | wsrc2[i];
> -}
> -
> -static __inline void CPU_OR(cpu_set_t *destset, const cpu_set_t *srcset1,
> - const cpu_set_t *srcset2)
> -{
> - CPU_OR_S(sizeof(*destset), destset, srcset1, srcset2);
> -}
> -
> -static __inline void CPU_XOR_S(size_t setsize, cpu_set_t *destset,
> - const cpu_set_t *srcset1, const cpu_set_t *srcset2)
> -{
> - cpu_set_word_t *wdest =&destset->__bits[0];
> - const cpu_set_word_t *wsrc1 =&srcset1->__bits[0];
> - const cpu_set_word_t *wsrc2 =&srcset2->__bits[0];
> - size_t n = setsize / sizeof(*wdest);
> - size_t i;
> -
> - for (i = 0; i< n; ++i)
> - wdest[i] = wsrc1[i] ^ wsrc2[i];
> -}
> -
> -static __inline void CPU_XOR(cpu_set_t *destset, const cpu_set_t *srcset1,
> - const cpu_set_t *srcset2)
> -{
> - CPU_XOR_S(sizeof(*destset), destset, srcset1, srcset2);
> -}
> -
> -static __inline void CPU_NAND_S(size_t setsize, cpu_set_t *destset,
> - const cpu_set_t *srcset1, const cpu_set_t *srcset2)
> -{
> - cpu_set_word_t *wdest =&destset->__bits[0];
> - const cpu_set_word_t *wsrc1 =&srcset1->__bits[0];
> - const cpu_set_word_t *wsrc2 =&srcset2->__bits[0];
> - size_t n = setsize / sizeof(*wdest);
> - size_t i;
> -
> - for (i = 0; i< n; ++i)
> - wdest[i] = ~(wsrc1[i]& wsrc2[i]);
> -}
> -
> -static __inline void CPU_NAND(cpu_set_t *destset, const cpu_set_t *srcset1,
> - const cpu_set_t *srcset2)
> -{
> - CPU_NAND_S(sizeof(*destset), destset, srcset1, srcset2);
> -}
> -
> -static __inline int CPU_COUNT_S(size_t setsize, const cpu_set_t *set)
> -{
> - int count = 0;
> - const cpu_set_word_t *w =&set->__bits[0];
> - size_t n = setsize / sizeof(*w);
> - size_t i;
> - int cpu;
> -
> - for (i = 0; i< n; ++i)
> - for (cpu = 0; cpu< (int)_NCPUBITS; ++cpu)
> - count += (w[i]& __cpuset_mask(cpu)) != 0;
> -
> - return count;
> -}
> -
> -static __inline int CPU_COUNT(const cpu_set_t *set)
> -{
> - return CPU_COUNT_S(sizeof(*set), set);
> -}
> -
> -static __inline int CPU_EQUAL_S(size_t setsize, const cpu_set_t *set1,
> - const cpu_set_t *set2)
> -{
> - const cpu_set_word_t *w1 =&set1->__bits[0];
> - const cpu_set_word_t *w2 =&set2->__bits[0];
> - size_t n = setsize / sizeof(*w1);
> - size_t i;
> -
> - for (i = 0; i< n; ++i)
> - if (w1[i] != w2[i])
> - return 0;
> -
> - return 1;
> -}
> -
> -static __inline int CPU_EQUAL(const cpu_set_t *set1, const cpu_set_t *set2)
> -{
> - return CPU_EQUAL_S(sizeof(*set1), set1, set2);
> -}
> -
> -/* return 1 if the sets set1 and set2 are equal, otherwise return 0 */
> -static __inline int CPU_CMP( const cpu_set_t *set1, const cpu_set_t *set2 )
> -{
> - return CPU_EQUAL(set1, set2);
> -}
> -
> -/* return 1 if the set is empty, otherwise return 0 */
> -static __inline int CPU_EMPTY( const cpu_set_t *set )
> -{
> - size_t i;
> -
> - for (i=0; i< _NCPUWORDS; i++)
> - if (set->__bits[i] != 0 )
> - return 0;
> - return 1;
> -}
> -
> -#ifdef __cplusplus
> -}
> -#endif /* __cplusplus */
> -
> -#endif
> diff --git a/newlib/libc/sys/rtems/sys/dirent.h b/newlib/libc/sys/rtems/sys/dirent.h
> deleted file mode 100644
> index 8d2aa38..0000000
> --- a/newlib/libc/sys/rtems/sys/dirent.h
> +++ /dev/null
> @@ -1,64 +0,0 @@
> -#ifndef _SYS_DIRENT_H
> -# define _SYS_DIRENT_H
> -
> -#ifdef __cplusplus
> -extern "C" {
> -#endif
> -
> -/*
> - * This file was written to be compatible with the BSD directory
> - * routines, so it looks like it. But it was written from scratch.
> - * Sean Eric Fagan, sef at Kithrup.COM
> - *
> - * Copied to RTEMS configuration without modification.
> - */
> -
> -typedef struct _dirdesc {
> - int dd_fd;
> - long dd_loc;
> - long dd_size;
> - char *dd_buf;
> - int dd_len;
> - long dd_seek;
> -} DIR;
> -
> -# define __dirfd(dp) ((dp)->dd_fd)
> -
> -DIR *opendir(const char *);
> -struct dirent *readdir(DIR *);
> -int readdir_r(DIR *__restrict, struct dirent *__restrict,
> - struct dirent **__restrict);
> -void rewinddir(DIR *);
> -int closedir(DIR *);
> -void seekdir(DIR *dir, long loc);
> -long telldir(DIR *dir);
> -
> -#ifdef _COMPILING_NEWLIB
> -void _seekdir(DIR *dir, long offset);
> -#endif
> -
> -#include<sys/types.h>
> -
> -#include<limits.h>
> -
> -struct dirent {
> - long d_ino;
> - off_t d_off;
> - unsigned short d_reclen;
> - /* we need better syntax for variable-sized arrays */
> - unsigned short d_namlen;
> - char d_name[NAME_MAX + 1];
> -};
> -
> -int scandir ( const char *dirname,
> - struct dirent *** namelist,
> - int (*select)(const struct dirent *),
> - int (*dcomp)(const struct dirent **, const struct dirent **)
> -);
> -
> -#ifdef __cplusplus
> -}
> -#endif
> -
> -
> -#endif
> diff --git a/newlib/libc/sys/rtems/sys/param.h b/newlib/libc/sys/rtems/sys/param.h
> deleted file mode 100644
> index 808745f..0000000
> --- a/newlib/libc/sys/rtems/sys/param.h
> +++ /dev/null
> @@ -1,217 +0,0 @@
> -/*-
> - * Copyright (c) 1982, 1986, 1989, 1993
> - * The Regents of the University of California. All rights reserved.
> - * (c) UNIX System Laboratories, Inc.
> - * All or some portions of this file are derived from material licensed
> - * to the University of California by American Telephone and Telegraph
> - * Co. or Unix System Laboratories, Inc. and are reproduced herein with
> - * the permission of UNIX System Laboratories, Inc.
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions
> - * are met:
> - * 1. Redistributions of source code must retain the above copyright
> - * notice, this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright
> - * notice, this list of conditions and the following disclaimer in the
> - * documentation and/or other materials provided with the distribution.
> - * 4. Neither the name of the University nor the names of its contributors
> - * may be used to endorse or promote products derived from this software
> - * without specific prior written permission.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
> - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
> - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> - * SUCH DAMAGE.
> - *
> - * @(#)param.h 8.3 (Berkeley) 4/4/95
> - * $Id$
> - */
> -
> -#ifndef _SYS_PARAM_H_
> -#define _SYS_PARAM_H_
> -
> -/* from newlib's<sys/param.h> */
> -
> -#include<sys/config.h>
> -#include<machine/endian.h>
> -
> -# define PATHSIZE (1024)
> -
> -/* end of from newlib's<sys/param.h> */
> -
> -#include<unistd.h>
> -
> -#define BSD 199506 /* System version (year& month). */
> -#define BSD4_3 1
> -#define BSD4_4 1
> -
> -#ifndef NULL
> -#define NULL 0
> -#endif
> -
> -#ifndef LOCORE
> -#include<sys/types.h>
> -#endif
> -
> -/*
> - * Machine-independent constants (some used in following include files).
> - * Redefined constants are from POSIX 1003.1 limits file.
> - *
> - * MAXCOMLEN should be>= sizeof(ac_comm) (see<acct.h>)
> - */
> -#include<sys/syslimits.h>
> -
> -#define MAXCOMLEN 19 /* max command name remembered */
> -#define MAXINTERP PATH_MAX /* max interpreter file name length */
> -#define MAXLOGNAME 33 /* max login name length (incl. NUL) */
> -#define MAXUPRC CHILD_MAX /* max simultaneous processes */
> -#define NCARGS ARG_MAX /* max bytes for an exec function */
> -#define NGROUPS (NGROUPS_MAX+1) /* max number groups */
> -#define NOFILE OPEN_MAX /* max open files per process */
> -#define NOGROUP 65535 /* marker for empty group set member */
> -#define MAXHOSTNAMELEN 256 /* max hostname size */
> -#define SPECNAMELEN 63 /* max length of devicename */
> -
> -/* More types and definitions used throughout the kernel. */
> -#if defined(KERNEL) || defined(_KERNEL)
> -#include<sys/cdefs.h>
> -#include<sys/errno.h>
> -#include<sys/time.h>
> -#include<sys/resource.h>
> -#include<sys/uio.h>
> -#include<sys/priority.h>
> -
> -#ifndef FALSE
> -#define FALSE 0
> -#endif
> -#ifndef TRUE
> -#define TRUE 1
> -#endif
> -#endif
> -
> -/* Signals. */
> -#include<sys/signal.h>
> -
> -/* Machine type dependent parameters. */
> -#include<machine/param.h>
> -#include<machine/limits.h>
> -
> -#define PRIMASK 0x0ff
> -#define PCATCH 0x100 /* OR'd with pri for tsleep to check signals */
> -
> -#define NZERO 0 /* default "nice" */
> -
> -#define NBPW sizeof(int) /* number of bytes per word (integer) */
> -
> -#define CMASK 022 /* default file mask: S_IWGRP|S_IWOTH */
> -#define NODEV (dev_t)(-1) /* non-existent device */
> -
> -#define CBLOCK 128 /* Clist block size, must be a power of 2. */
> -#define CBQSIZE (CBLOCK/NBBY) /* Quote bytes/cblock - can do better. */
> - /* Data chars/clist. */
> -#define CBSIZE (CBLOCK - sizeof(struct cblock *) - CBQSIZE)
> -#define CROUND (CBLOCK - 1) /* Clist rounding. */
> -
> -/*
> - * File system parameters and macros.
> - *
> - * MAXBSIZE - Filesystems are made out of blocks of at most MAXBSIZE bytes
> - * per block. MAXBSIZE may be made larger without effecting
> - * any existing filesystems as long as it does not exceed MAXPHYS,
> - * and may be made smaller at the risk of not being able to use
> - * filesystems which require a block size exceeding MAXBSIZE.
> - *
> - * BKVASIZE - Nominal buffer space per buffer, in bytes. BKVASIZE is the
> - * minimum KVM memory reservation the kernel is willing to make.
> - * Filesystems can of course request smaller chunks. Actual
> - * backing memory uses a chunk size of a page (PAGE_SIZE).
> - *
> - * If you make BKVASIZE too small you risk seriously fragmenting
> - * the buffer KVM map which may slow things down a bit. If you
> - * make it too big the kernel will not be able to optimally use
> - * the KVM memory reserved for the buffer cache and will wind
> - * up with too-few buffers.
> - *
> - * The default is 16384, roughly 2x the block size used by a
> - * normal UFS filesystem.
> - */
> -#define MAXBSIZE 65536 /* must be power of 2 */
> -#define BKVASIZE 16384 /* must be power of 2 */
> -#define BKVAMASK (BKVASIZE-1)
> -
> -/*
> - * MAXPATHLEN defines the longest permissible path length after expanding
> - * symbolic links. It is used to allocate a temporary buffer from the buffer
> - * pool in which to do the name expansion, hence should be a power of two,
> - * and must be less than or equal to MAXBSIZE. MAXSYMLINKS defines the
> - * maximum number of symbolic links that may be expanded in a path name.
> - * It should be set high enough to allow all legitimate uses, but halt
> - * infinite loops reasonably quickly.
> - */
> -#define MAXPATHLEN PATH_MAX
> -#define MAXSYMLINKS 32
> -
> -/* Bit map related macros. */
> -#define setbit(a,i) (((unsigned char *)(a))[(i)/NBBY] |= 1<<((i)%NBBY))
> -#define clrbit(a,i) (((unsigned char *)(a))[(i)/NBBY]&= ~(1<<((i)%NBBY)))
> -#define isset(a,i) \
> - (((const unsigned char *)(a))[(i)/NBBY]& (1<<((i)%NBBY)))
> -#define isclr(a,i) \
> - ((((const unsigned char *)(a))[(i)/NBBY]& (1<<((i)%NBBY))) == 0)
> -
> -/* Macros for counting and rounding. */
> -#ifndef howmany
> -#define howmany(x, y) (((x)+((y)-1))/(y))
> -#endif
> -#define rounddown(x, y) (((x)/(y))*(y))
> -#define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) /* to any y */
> -#define roundup2(x, y) (((x)+((y)-1))&(~((y)-1))) /* if y is powers of two */
> -#define powerof2(x) ((((x)-1)&(x))==0)
> -
> -/* Macros for min/max. */
> -#if !(defined(KERNEL) || defined(_KERNEL))
> -#define MIN(a,b) (((a)<(b))?(a):(b))
> -#define MAX(a,b) (((a)>(b))?(a):(b))
> -#endif
> -
> -/*
> - * Constants for setting the parameters of the kernel memory allocator.
> - *
> - * 2 ** MINBUCKET is the smallest unit of memory that will be
> - * allocated. It must be at least large enough to hold a pointer.
> - *
> - * Units of memory less or equal to MAXALLOCSAVE will permanently
> - * allocate physical memory; requests for these size pieces of
> - * memory are quite fast. Allocations greater than MAXALLOCSAVE must
> - * always allocate and free physical memory; requests for these
> - * size allocations should be done infrequently as they will be slow.
> - *
> - * Constraints: PAGE_SIZE<= MAXALLOCSAVE<= 2 ** (MINBUCKET + 14), and
> - * MAXALLOCSIZE must be a power of two.
> - */
> -#define MINBUCKET 4 /* 4 => min allocation of 16 bytes */
> -#define MAXALLOCSAVE (2 * PAGE_SIZE)
> -
> -/*
> - * Scale factor for scaled integers used to count %cpu time and load avgs.
> - *
> - * The number of CPU `tick's that map to a unique `%age' can be expressed
> - * by the formula (1 / (2 ^ (FSHIFT - 11))). The maximum load average that
> - * can be calculated (assuming 32 bits) can be closely approximated using
> - * the formula (2 ^ (2 * (16 - FSHIFT))) for (FSHIFT< 15).
> - *
> - * For the scheduler to maintain a 1:1 mapping of CPU `tick' to `%age',
> - * FSHIFT must be at least 11; this gives us a maximum load avg of ~1024.
> - */
> -#define FSHIFT 11 /* bits to right of fixed binary point */
> -#define FSCALE (1<<FSHIFT)
> -
> -#endif /* _SYS_PARAM_H_ */
> diff --git a/newlib/libc/sys/rtems/sys/syslimits.h b/newlib/libc/sys/rtems/sys/syslimits.h
> deleted file mode 100644
> index 2295afe..0000000
> --- a/newlib/libc/sys/rtems/sys/syslimits.h
> +++ /dev/null
> @@ -1,64 +0,0 @@
> -/*
> - * Copyright (c) 1988, 1993
> - * The Regents of the University of California. All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions
> - * are met:
> - * 1. Redistributions of source code must retain the above copyright
> - * notice, this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright
> - * notice, this list of conditions and the following disclaimer in the
> - * documentation and/or other materials provided with the distribution.
> - * 3. All advertising materials mentioning features or use of this software
> - * must display the following acknowledgement:
> - * This product includes software developed by the University of
> - * California, Berkeley and its contributors.
> - * 4. Neither the name of the University nor the names of its contributors
> - * may be used to endorse or promote products derived from this software
> - * without specific prior written permission.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
> - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
> - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> - * SUCH DAMAGE.
> - *
> - * @(#)syslimits.h 8.1 (Berkeley) 6/2/93
> - * $Id$
> - */
> -
> -#ifndef _SYS_SYSLIMITS_H_
> -#define _SYS_SYSLIMITS_H_
> -
> -#define ARG_MAX 4096 /* max bytes for an exec function */
> -#ifndef CHILD_MAX
> -#define CHILD_MAX 6 /* max simultaneous processes */
> -#endif
> -#define LINK_MAX 8 /* max file link count */
> -#define MAX_CANON 255 /* max bytes in term canon input line */
> -#define MAX_INPUT 255 /* max bytes in terminal input */
> -#define NAME_MAX 255 /* max bytes in a file name */
> -#define NGROUPS_MAX 15 /* max supplemental group id's */
> -#ifndef OPEN_MAX
> -#define OPEN_MAX 64 /* max open files per process */
> -#endif
> -#define PATH_MAX 255 /* max bytes in pathname */
> -#define PIPE_BUF 512 /* max bytes for atomic pipe writes */
> -#define IOV_MAX 1024 /* max elements in i/o vector */
> -#define BC_BASE_MAX 99 /* max ibase/obase values in bc(1) */
> -#define BC_DIM_MAX 2048 /* max array elements in bc(1) */
> -#define BC_SCALE_MAX 99 /* max scale value in bc(1) */
> -#define BC_STRING_MAX 1000 /* max const string length in bc(1) */
> -#define COLL_WEIGHTS_MAX 0 /* max weights for order keyword */
> -#define EXPR_NEST_MAX 32 /* max expressions nested in expr(1) */
> -#define LINE_MAX 2048 /* max bytes in an input line */
> -#define RE_DUP_MAX 255 /* max RE's in interval notation */
> -
> -#endif
> diff --git a/newlib/libc/sys/rtems/sys/utime.h b/newlib/libc/sys/rtems/sys/utime.h
> deleted file mode 100644
> index 561136b..0000000
> --- a/newlib/libc/sys/rtems/sys/utime.h
> +++ /dev/null
> @@ -1,34 +0,0 @@
> -/*
> - * $Id$
> - */
> -
> -#ifndef __UTIME_h__
> -#define __UTIME_h__
> -
> -#include<sys/types.h>
> -
> -#ifdef __cplusplus
> -extern "C" {
> -#endif
> -
> -/*
> - * POSIX 1003.1b 5.6.6 Set File Access and Modification Times
> - */
> -
> -struct utimbuf {
> - time_t actime; /* Access time */
> - time_t modtime; /* Modification time */
> -};
> -
> -/* Functions */
> -
> -int utime(
> - const char *path,
> - const struct utimbuf *times
> -);
> -
> -#ifdef __cplusplus
> -};
> -#endif
> -
> -#endif /* _SYS_UTIME_H */
> --
> 1.8.4.5
>
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
--
-- Joel Sherrill
Ask me about RTEMS: a free RTOS
Support and Training Available
More information about the devel
mailing list