[PATCH] [RTEMS] Move header files

Jeff Johnston jjohnstn@redhat.com
Tue Jul 28 00:29:00 GMT 2015


I am also fine with this.

-- Jeff J.

----- Original Message -----
> 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@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@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@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@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@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@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 Newlib mailing list