[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