This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: [PATCH] [RTEMS] Move header files
- From: Jeff Johnston <jjohnstn at redhat dot com>
- To: Joel Sherrill <joel dot sherrill at oarcorp dot com>
- Cc: Sebastian Huber <sebastian dot huber at embedded-brains dot de>, newlib at sourceware dot org, devel at rtems dot org
- Date: Mon, 27 Jul 2015 16:37:22 -0400 (EDT)
- Subject: Re: [PATCH] [RTEMS] Move header files
- Authentication-results: sourceware.org; auth=none
- References: <1437989486-31750-1-git-send-email-sebastian dot huber at embedded-brains dot de> <55B68B9A dot 20103 at oarcorp dot com>
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
>
>