Ticket #2897: 0002-Updating-termios-headers-to-latest-FREEBSD-verion.patch

File 0002-Updating-termios-headers-to-latest-FREEBSD-verion.patch, 54.2 KB (added by Kevin Kirspel, on 02/01/17 at 21:28:27)
  • cpukit/Makefile.am

    From 04c9d1e01b36a6394b68ffc64ecec02a55794cfa Mon Sep 17 00:00:00 2001
    From: Kevin Kirspel <kevin-kirspel@idexx.com>
    Date: Wed, 1 Feb 2017 16:12:23 -0500
    Subject: [PATCH 2/2] Updating termios headers to latest FREEBSD verion
    
    ---
     cpukit/Makefile.am                           |   5 +-
     cpukit/libcsupport/include/sys/_termios.h    | 222 +++++++++
     cpukit/libcsupport/include/sys/_types.h      | 106 ++++
     cpukit/libcsupport/include/sys/cdefs.h       | 697 +++++++++++++++++++++++++++
     cpukit/libcsupport/include/sys/termios.h     | 280 +++--------
     cpukit/libcsupport/include/sys/ttydefaults.h | 104 ++++
     cpukit/libnetworking/Makefile.am             |   1 -
     cpukit/libnetworking/preinstall.am           |   4 -
     cpukit/preinstall.am                         |  20 +-
     9 files changed, 1229 insertions(+), 210 deletions(-)
     mode change 100644 => 100755 cpukit/Makefile.am
     create mode 100755 cpukit/libcsupport/include/sys/_termios.h
     create mode 100755 cpukit/libcsupport/include/sys/_types.h
     create mode 100755 cpukit/libcsupport/include/sys/cdefs.h
     mode change 100644 => 100755 cpukit/libcsupport/include/sys/termios.h
     create mode 100755 cpukit/libcsupport/include/sys/ttydefaults.h
     mode change 100644 => 100755 cpukit/libnetworking/Makefile.am
     mode change 100644 => 100755 cpukit/libnetworking/preinstall.am
     mode change 100644 => 100755 cpukit/preinstall.am
    
    diff --git a/cpukit/Makefile.am b/cpukit/Makefile.am
    old mode 100644
    new mode 100755
    index cb46f20..5980433
    a b include_sys_HEADERS += libcsupport/include/sys/ioctl.h 
    6666include_sys_HEADERS += libcsupport/include/sys/poll.h
    6767include_sys_HEADERS += libcsupport/include/sys/statvfs.h
    6868include_sys_HEADERS += libcsupport/include/sys/sockio.h
     69include_sys_HEADERS += libcsupport/include/sys/_types.h
     70include_sys_HEADERS += libcsupport/include/sys/cdefs.h
    6971include_sys_HEADERS += libcsupport/include/sys/ttycom.h
     72include_sys_HEADERS += libcsupport/include/sys/ttydefaults.h
     73include_sys_HEADERS += libcsupport/include/sys/_termios.h
    7074include_sys_HEADERS += libcsupport/include/sys/termios.h
    7175include_sys_HEADERS += libcsupport/include/sys/utsname.h
    7276
    include_sys_HEADERS += include/sys/priority.h 
    7882if LIBNETWORKING
    7983include_rtems_bsdnetdir = $(includedir)/rtems/bsdnet
    8084include_rtems_bsdnet_HEADERS = libnetworking/rtems/bsdnet/servers.h
    81 include_rtems_bsdnet_HEADERS += libnetworking/rtems/bsdnet/_types.h
    8285endif
    8386
    8487if LIBDL
  • new file cpukit/libcsupport/include/sys/_termios.h

    diff --git a/cpukit/libcsupport/include/sys/_termios.h b/cpukit/libcsupport/include/sys/_termios.h
    new file mode 100755
    index 0000000..3fb5bf4
    - +  
     1/*-
     2 * Copyright (c) 1988, 1989, 1993, 1994
     3 *      The Regents of the University of California.  All rights reserved.
     4 *
     5 * Redistribution and use in source and binary forms, with or without
     6 * modification, are permitted provided that the following conditions
     7 * are met:
     8 * 1. Redistributions of source code must retain the above copyright
     9 *    notice, this list of conditions and the following disclaimer.
     10 * 2. Redistributions in binary form must reproduce the above copyright
     11 *    notice, this list of conditions and the following disclaimer in the
     12 *    documentation and/or other materials provided with the distribution.
     13 * 4. Neither the name of the University nor the names of its contributors
     14 *    may be used to endorse or promote products derived from this software
     15 *    without specific prior written permission.
     16 *
     17 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     20 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     27 * SUCH DAMAGE.
     28 *
     29 *      @(#)termios.h   8.3 (Berkeley) 3/28/94
     30 * $FreeBSD$
     31 */
     32
     33#ifndef _SYS__TERMIOS_H_
     34#define _SYS__TERMIOS_H_
     35
     36/*
     37 * Special Control Characters
     38 *
     39 * Index into c_cc[] character array.
     40 *
     41 *      Name         Subscript  Enabled by
     42 */
     43#define VEOF            0       /* ICANON */
     44#define VEOL            1       /* ICANON */
     45#ifndef _POSIX_SOURCE
     46#define VEOL2           2       /* ICANON together with IEXTEN */
     47#endif
     48#define VERASE          3       /* ICANON */
     49#ifndef _POSIX_SOURCE
     50#define VWERASE         4       /* ICANON together with IEXTEN */
     51#endif
     52#define VKILL           5       /* ICANON */
     53#ifndef _POSIX_SOURCE
     54#define VREPRINT        6       /* ICANON together with IEXTEN */
     55#define VERASE2         7       /* ICANON */
     56#endif
     57/*                      7          ex-spare 1 */
     58#define VINTR           8       /* ISIG */
     59#define VQUIT           9       /* ISIG */
     60#define VSUSP           10      /* ISIG */
     61#ifndef _POSIX_SOURCE
     62#define VDSUSP          11      /* ISIG together with IEXTEN */
     63#endif
     64#define VSTART          12      /* IXON, IXOFF */
     65#define VSTOP           13      /* IXON, IXOFF */
     66#ifndef _POSIX_SOURCE
     67#define VLNEXT          14      /* IEXTEN */
     68#define VDISCARD        15      /* IEXTEN */
     69#endif
     70#define VMIN            16      /* !ICANON */
     71#define VTIME           17      /* !ICANON */
     72#ifndef _POSIX_SOURCE
     73#define VSTATUS         18      /* ICANON together with IEXTEN */
     74/*                      19         spare 2 */
     75#endif
     76#define NCCS            20
     77
     78#define _POSIX_VDISABLE 0xff
     79
     80/*
     81 * Input flags - software input processing
     82 */
     83#define IGNBRK          0x00000001      /* ignore BREAK condition */
     84#define BRKINT          0x00000002      /* map BREAK to SIGINTR */
     85#define IGNPAR          0x00000004      /* ignore (discard) parity errors */
     86#define PARMRK          0x00000008      /* mark parity and framing errors */
     87#define INPCK           0x00000010      /* enable checking of parity errors */
     88#define ISTRIP          0x00000020      /* strip 8th bit off chars */
     89#define INLCR           0x00000040      /* map NL into CR */
     90#define IGNCR           0x00000080      /* ignore CR */
     91#define ICRNL           0x00000100      /* map CR to NL (ala CRMOD) */
     92#define IXON            0x00000200      /* enable output flow control */
     93#define IXOFF           0x00000400      /* enable input flow control */
     94#ifndef _POSIX_SOURCE
     95#define IXANY           0x00000800      /* any char will restart after stop */
     96#define IMAXBEL         0x00002000      /* ring bell on input queue full */
     97#endif  /*_POSIX_SOURCE */
     98
     99/*
     100 * Output flags - software output processing
     101 */
     102#define OPOST           0x00000001      /* enable following output processing */
     103#ifndef _POSIX_SOURCE
     104#define ONLCR           0x00000002      /* map NL to CR-NL (ala CRMOD) */
     105#define TABDLY          0x00000004      /* tab delay mask */
     106#define     TAB0            0x00000000      /* no tab delay and expansion */
     107#define     TAB3            0x00000004      /* expand tabs to spaces */
     108#define ONOEOT          0x00000008      /* discard EOT's (^D) on output) */
     109#define OCRNL           0x00000010      /* map CR to NL on output */
     110#define ONOCR           0x00000020      /* no CR output at column 0 */
     111#define ONLRET          0x00000040      /* NL performs CR function */
     112#endif  /*_POSIX_SOURCE */
     113
     114/*
     115 * Control flags - hardware control of terminal
     116 */
     117#ifndef _POSIX_SOURCE
     118#define CIGNORE         0x00000001      /* ignore control flags */
     119#endif
     120#define CSIZE           0x00000300      /* character size mask */
     121#define     CS5             0x00000000      /* 5 bits (pseudo) */
     122#define     CS6             0x00000100      /* 6 bits */
     123#define     CS7             0x00000200      /* 7 bits */
     124#define     CS8             0x00000300      /* 8 bits */
     125#define CSTOPB          0x00000400      /* send 2 stop bits */
     126#define CREAD           0x00000800      /* enable receiver */
     127#define PARENB          0x00001000      /* parity enable */
     128#define PARODD          0x00002000      /* odd parity, else even */
     129#define HUPCL           0x00004000      /* hang up on last close */
     130#define CLOCAL          0x00008000      /* ignore modem status lines */
     131#ifndef _POSIX_SOURCE
     132#define CCTS_OFLOW      0x00010000      /* CTS flow control of output */
     133#define CRTSCTS         (CCTS_OFLOW | CRTS_IFLOW)
     134#define CRTS_IFLOW      0x00020000      /* RTS flow control of input */
     135#define CDTR_IFLOW      0x00040000      /* DTR flow control of input */
     136#define CDSR_OFLOW      0x00080000      /* DSR flow control of output */
     137#define CCAR_OFLOW      0x00100000      /* DCD flow control of output */
     138#endif
     139
     140
     141/*
     142 * "Local" flags - dumping ground for other state
     143 *
     144 * Warning: some flags in this structure begin with
     145 * the letter "I" and look like they belong in the
     146 * input flag.
     147 */
     148
     149#ifndef _POSIX_SOURCE
     150#define ECHOKE          0x00000001      /* visual erase for line kill */
     151#endif  /*_POSIX_SOURCE */
     152#define ECHOE           0x00000002      /* visually erase chars */
     153#define ECHOK           0x00000004      /* echo NL after line kill */
     154#define ECHO            0x00000008      /* enable echoing */
     155#define ECHONL          0x00000010      /* echo NL even if ECHO is off */
     156#ifndef _POSIX_SOURCE
     157#define ECHOPRT         0x00000020      /* visual erase mode for hardcopy */
     158#define ECHOCTL         0x00000040      /* echo control chars as ^(Char) */
     159#endif  /*_POSIX_SOURCE */
     160#define ISIG            0x00000080      /* enable signals INTR, QUIT, [D]SUSP */
     161#define ICANON          0x00000100      /* canonicalize input lines */
     162#ifndef _POSIX_SOURCE
     163#define ALTWERASE       0x00000200      /* use alternate WERASE algorithm */
     164#endif  /*_POSIX_SOURCE */
     165#define IEXTEN          0x00000400      /* enable DISCARD and LNEXT */
     166#define EXTPROC         0x00000800      /* external processing */
     167#define TOSTOP          0x00400000      /* stop background jobs from output */
     168#ifndef _POSIX_SOURCE
     169#define FLUSHO          0x00800000      /* output being flushed (state) */
     170#define NOKERNINFO      0x02000000      /* no kernel output from VSTATUS */
     171#define PENDIN          0x20000000      /* XXX retype pending input (state) */
     172#endif  /*_POSIX_SOURCE */
     173#define NOFLSH          0x80000000      /* don't flush after interrupt */
     174
     175/*
     176 * Standard speeds
     177 */
     178#define B0      0
     179#define B50     50
     180#define B75     75
     181#define B110    110
     182#define B134    134
     183#define B150    150
     184#define B200    200
     185#define B300    300
     186#define B600    600
     187#define B1200   1200
     188#define B1800   1800
     189#define B2400   2400
     190#define B4800   4800
     191#define B9600   9600
     192#define B19200  19200
     193#define B38400  38400
     194#ifndef _POSIX_SOURCE
     195#define B7200   7200
     196#define B14400  14400
     197#define B28800  28800
     198#define B57600  57600
     199#define B76800  76800
     200#define B115200 115200
     201#define B230400 230400
     202#define B460800 460800
     203#define B921600 921600
     204#define EXTA    19200
     205#define EXTB    38400
     206#endif  /* !_POSIX_SOURCE */
     207
     208typedef unsigned int    tcflag_t;
     209typedef unsigned char   cc_t;
     210typedef unsigned int    speed_t;
     211
     212struct termios {
     213        tcflag_t        c_iflag;        /* input flags */
     214        tcflag_t        c_oflag;        /* output flags */
     215        tcflag_t        c_cflag;        /* control flags */
     216        tcflag_t        c_lflag;        /* local flags */
     217        cc_t            c_cc[NCCS];     /* control chars */
     218        speed_t         c_ispeed;       /* input speed */
     219        speed_t         c_ospeed;       /* output speed */
     220};
     221
     222#endif /* !_SYS__TERMIOS_H_ */
  • new file cpukit/libcsupport/include/sys/_types.h

    diff --git a/cpukit/libcsupport/include/sys/_types.h b/cpukit/libcsupport/include/sys/_types.h
    new file mode 100755
    index 0000000..83fc91c
    - +  
     1/*-
     2 * Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
     3 * All rights reserved.
     4 *
     5 * Redistribution and use in source and binary forms, with or without
     6 * modification, are permitted provided that the following conditions
     7 * are met:
     8 * 1. Redistributions of source code must retain the above copyright
     9 *    notice, this list of conditions and the following disclaimer.
     10 * 2. Redistributions in binary form must reproduce the above copyright
     11 *    notice, this list of conditions and the following disclaimer in the
     12 *    documentation and/or other materials provided with the distribution.
     13 *
     14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
     15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     17 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
     18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     24 * SUCH DAMAGE.
     25 *
     26 * $FreeBSD$
     27 */
     28
     29#ifndef _SYS__TYPES_H_
     30#define _SYS__TYPES_H_
     31
     32#include <sys/cdefs.h>
     33//#include <machine/_types.h>
     34
     35/*
     36 * Standard type definitions.
     37 */
     38typedef __uint32_t      __blksize_t;    /* file block size */
     39typedef __int64_t       __blkcnt_t;     /* file block count */
     40typedef __int32_t       __clockid_t;    /* clock_gettime()... */
     41typedef __uint64_t      __cap_rights_t; /* capability rights */
     42typedef __uint32_t      __fflags_t;     /* file flags */
     43typedef __uint64_t      __fsblkcnt_t;
     44typedef __uint64_t      __fsfilcnt_t;
     45typedef __uint32_t      __gid_t;
     46typedef __int64_t       __id_t;         /* can hold a gid_t, pid_t, or uid_t */
     47typedef __uint32_t      __ino_t;        /* inode number */
     48typedef long            __key_t;        /* IPC key (for Sys V IPC) */
     49typedef __int32_t       __lwpid_t;      /* Thread ID (a.k.a. LWP) */
     50typedef __uint16_t      __mode_t;       /* permissions */
     51typedef int             __accmode_t;    /* access permissions */
     52typedef int             __nl_item;
     53typedef __uint16_t      __nlink_t;      /* link count */
     54typedef __int64_t       __off_t;        /* file offset */
     55typedef __int32_t       __pid_t;        /* process [group] */
     56typedef __int64_t       __rlim_t;       /* resource limit - intentionally */
     57                                        /* signed, because of legacy code */
     58                                        /* that uses -1 for RLIM_INFINITY */
     59typedef __uint8_t       __sa_family_t;
     60typedef __uint32_t      __socklen_t;
     61typedef long            __suseconds_t;  /* microseconds (signed) */
     62typedef struct __timer  *__timer_t;     /* timer_gettime()... */
     63typedef struct __mq     *__mqd_t;       /* mq_open()... */
     64typedef __uint32_t      __uid_t;
     65typedef unsigned int    __useconds_t;   /* microseconds (unsigned) */
     66typedef int             __cpuwhich_t;   /* which parameter for cpuset. */
     67typedef int             __cpulevel_t;   /* level parameter for cpuset. */
     68typedef int             __cpusetid_t;   /* cpuset identifier. */
     69
     70/*
     71 * Unusual type definitions.
     72 */
     73/*
     74 * rune_t is declared to be an ``int'' instead of the more natural
     75 * ``unsigned long'' or ``long''.  Two things are happening here.  It is not
     76 * unsigned so that EOF (-1) can be naturally assigned to it and used.  Also,
     77 * it looks like 10646 will be a 31 bit standard.  This means that if your
     78 * ints cannot hold 32 bits, you will be in trouble.  The reason an int was
     79 * chosen over a long is that the is*() and to*() routines take ints (says
     80 * ANSI C), but they use __ct_rune_t instead of int.
     81 *
     82 * NOTE: rune_t is not covered by ANSI nor other standards, and should not
     83 * be instantiated outside of lib/libc/locale.  Use wchar_t.  wchar_t and
     84 * rune_t must be the same type.  Also, wint_t must be no narrower than
     85 * wchar_t, and should be able to hold all members of the largest
     86 * character set plus one extra value (WEOF), and must be at least 16 bits.
     87 */
     88typedef int             __ct_rune_t;    /* arg type for ctype funcs */
     89typedef __ct_rune_t     __rune_t;       /* rune_t (see above) */
     90typedef __ct_rune_t     ___wchar_t;     /* wchar_t (see above) */
     91typedef __ct_rune_t     __wint_t;       /* wint_t (see above) */
     92
     93typedef __uint32_t      __dev_t;        /* device number */
     94
     95typedef __uint32_t      __fixpt_t;      /* fixed point number */
     96
     97/*
     98 * mbstate_t is an opaque object to keep conversion state during multibyte
     99 * stream conversions.
     100 */
     101typedef union {
     102        char            __mbstate8[128];
     103        __int64_t       _mbstateL;      /* for alignment */
     104} __mbstate_t;
     105
     106#endif /* !_SYS__TYPES_H_ */
  • new file cpukit/libcsupport/include/sys/cdefs.h

    diff --git a/cpukit/libcsupport/include/sys/cdefs.h b/cpukit/libcsupport/include/sys/cdefs.h
    new file mode 100755
    index 0000000..a3cc14b
    - +  
     1/*-
     2 * Copyright (c) 1991, 1993
     3 *      The Regents of the University of California.  All rights reserved.
     4 *
     5 * This code is derived from software contributed to Berkeley by
     6 * Berkeley Software Design, Inc.
     7 *
     8 * Redistribution and use in source and binary forms, with or without
     9 * modification, are permitted provided that the following conditions
     10 * are met:
     11 * 1. Redistributions of source code must retain the above copyright
     12 *    notice, this list of conditions and the following disclaimer.
     13 * 2. Redistributions in binary form must reproduce the above copyright
     14 *    notice, this list of conditions and the following disclaimer in the
     15 *    documentation and/or other materials provided with the distribution.
     16 * 4. Neither the name of the University nor the names of its contributors
     17 *    may be used to endorse or promote products derived from this software
     18 *    without specific prior written permission.
     19 *
     20 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     21 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     23 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     24 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     30 * SUCH DAMAGE.
     31 *
     32 *      @(#)cdefs.h     8.8 (Berkeley) 1/9/95
     33 * $FreeBSD$
     34 */
     35
     36#ifndef _SYS_CDEFS_H_
     37#define _SYS_CDEFS_H_
     38
     39#if defined(__cplusplus)
     40#define __BEGIN_DECLS   extern "C" {
     41#define __END_DECLS     }
     42#else
     43#define __BEGIN_DECLS
     44#define __END_DECLS
     45#endif
     46
     47/*
     48 * This code has been put in place to help reduce the addition of
     49 * compiler specific defines in FreeBSD code.  It helps to aid in
     50 * having a compiler-agnostic source tree.
     51 */
     52
     53#if defined(__GNUC__) || defined(__INTEL_COMPILER)
     54
     55#if __GNUC__ >= 3 || defined(__INTEL_COMPILER)
     56#define __GNUCLIKE_ASM 3
     57#define __GNUCLIKE_MATH_BUILTIN_CONSTANTS
     58#else
     59#define __GNUCLIKE_ASM 2
     60#endif
     61#define __GNUCLIKE___TYPEOF 1
     62#define __GNUCLIKE___OFFSETOF 1
     63#define __GNUCLIKE___SECTION 1
     64
     65#ifndef __INTEL_COMPILER
     66# define __GNUCLIKE_CTOR_SECTION_HANDLING 1
     67#endif
     68
     69#define __GNUCLIKE_BUILTIN_CONSTANT_P 1
     70# if defined(__INTEL_COMPILER) && defined(__cplusplus) \
     71    && __INTEL_COMPILER < 800
     72#  undef __GNUCLIKE_BUILTIN_CONSTANT_P
     73# endif
     74
     75#if (__GNUC_MINOR__ > 95 || __GNUC__ >= 3) && !defined(__INTEL_COMPILER)
     76# define __GNUCLIKE_BUILTIN_VARARGS 1
     77# define __GNUCLIKE_BUILTIN_STDARG 1
     78# define __GNUCLIKE_BUILTIN_VAALIST 1
     79#endif
     80
     81#if defined(__GNUC__)
     82# define __GNUC_VA_LIST_COMPATIBILITY 1
     83#endif
     84
     85/*
     86 * Compiler memory barriers, specific to gcc and clang.
     87 */
     88#if defined(__GNUC__)
     89#define __compiler_membar()     __asm __volatile(" " : : : "memory")
     90#endif
     91
     92#ifndef __INTEL_COMPILER
     93# define __GNUCLIKE_BUILTIN_NEXT_ARG 1
     94# define __GNUCLIKE_MATH_BUILTIN_RELOPS
     95#endif
     96
     97#define __GNUCLIKE_BUILTIN_MEMCPY 1
     98
     99/* XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced */
     100#define __CC_SUPPORTS_INLINE 1
     101#define __CC_SUPPORTS___INLINE 1
     102#define __CC_SUPPORTS___INLINE__ 1
     103
     104#define __CC_SUPPORTS___FUNC__ 1
     105#define __CC_SUPPORTS_WARNING 1
     106
     107#define __CC_SUPPORTS_VARADIC_XXX 1 /* see varargs.h */
     108
     109#define __CC_SUPPORTS_DYNAMIC_ARRAY_INIT 1
     110
     111#endif /* __GNUC__ || __INTEL_COMPILER */
     112
     113/*
     114 * Macro to test if we're using a specific version of gcc or later.
     115 */
     116#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
     117#define __GNUC_PREREQ__(ma, mi) \
     118        (__GNUC__ > (ma) || __GNUC__ == (ma) && __GNUC_MINOR__ >= (mi))
     119#else
     120#define __GNUC_PREREQ__(ma, mi) 0
     121#endif
     122
     123/*
     124 * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
     125 * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
     126 * The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
     127 * mode -- there must be no spaces between its arguments, and for nested
     128 * __CONCAT's, all the __CONCAT's must be at the left.  __CONCAT can also
     129 * concatenate double-quoted strings produced by the __STRING macro, but
     130 * this only works with ANSI C.
     131 *
     132 * __XSTRING is like __STRING, but it expands any macros in its argument
     133 * first.  It is only available with ANSI C.
     134 */
     135#if defined(__STDC__) || defined(__cplusplus)
     136#define __P(protos)     protos          /* full-blown ANSI C */
     137#define __CONCAT1(x,y)  x ## y
     138#define __CONCAT(x,y)   __CONCAT1(x,y)
     139#define __STRING(x)     #x              /* stringify without expanding x */
     140#define __XSTRING(x)    __STRING(x)     /* expand x, then stringify */
     141
     142#define __const         const           /* define reserved names to standard */
     143#define __signed        signed
     144#define __volatile      volatile
     145#if defined(__cplusplus)
     146#define __inline        inline          /* convert to C++ keyword */
     147#else
     148#if !(defined(__CC_SUPPORTS___INLINE))
     149#define __inline                        /* delete GCC keyword */
     150#endif /* ! __CC_SUPPORTS___INLINE */
     151#endif /* !__cplusplus */
     152
     153#else   /* !(__STDC__ || __cplusplus) */
     154#define __P(protos)     ()              /* traditional C preprocessor */
     155#define __CONCAT(x,y)   x/**/y
     156#define __STRING(x)     "x"
     157
     158#if !defined(__CC_SUPPORTS___INLINE)
     159#define __const                         /* delete pseudo-ANSI C keywords */
     160#define __inline
     161#define __signed
     162#define __volatile
     163/*
     164 * In non-ANSI C environments, new programs will want ANSI-only C keywords
     165 * deleted from the program and old programs will want them left alone.
     166 * When using a compiler other than gcc, programs using the ANSI C keywords
     167 * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
     168 * When using "gcc -traditional", we assume that this is the intent; if
     169 * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
     170 */
     171#ifndef NO_ANSI_KEYWORDS
     172#define const                           /* delete ANSI C keywords */
     173#define inline
     174#define signed
     175#define volatile
     176#endif  /* !NO_ANSI_KEYWORDS */
     177#endif  /* !__CC_SUPPORTS___INLINE */
     178#endif  /* !(__STDC__ || __cplusplus) */
     179
     180/*
     181 * Compiler-dependent macros to help declare dead (non-returning) and
     182 * pure (no side effects) functions, and unused variables.  They are
     183 * null except for versions of gcc that are known to support the features
     184 * properly (old versions of gcc-2 supported the dead and pure features
     185 * in a different (wrong) way).  If we do not provide an implementation
     186 * for a given compiler, let the compile fail if it is told to use
     187 * a feature that we cannot live without.
     188 */
     189#ifdef lint
     190#define __dead2
     191#define __pure2
     192#define __unused
     193#define __packed
     194#define __aligned(x)
     195#define __section(x)
     196#else
     197#if !__GNUC_PREREQ__(2, 5) && !defined(__INTEL_COMPILER)
     198#define __dead2
     199#define __pure2
     200#define __unused
     201#endif
     202#if __GNUC__ == 2 && __GNUC_MINOR__ >= 5 && __GNUC_MINOR__ < 7 && !defined(__INTEL_COMPILER)
     203#define __dead2         __attribute__((__noreturn__))
     204#define __pure2         __attribute__((__const__))
     205#define __unused
     206/* XXX Find out what to do for __packed, __aligned and __section */
     207#endif
     208#if __GNUC_PREREQ__(2, 7)
     209#define __dead2         __attribute__((__noreturn__))
     210#define __pure2         __attribute__((__const__))
     211#define __unused        __attribute__((__unused__))
     212#define __used          __attribute__((__used__))
     213#define __packed        __attribute__((__packed__))
     214#define __aligned(x)    __attribute__((__aligned__(x)))
     215#define __section(x)    __attribute__((__section__(x)))
     216#endif
     217#if defined(__INTEL_COMPILER)
     218#define __dead2         __attribute__((__noreturn__))
     219#define __pure2         __attribute__((__const__))
     220#define __unused        __attribute__((__unused__))
     221#define __used          __attribute__((__used__))
     222#define __packed        __attribute__((__packed__))
     223#define __aligned(x)    __attribute__((__aligned__(x)))
     224#define __section(x)    __attribute__((__section__(x)))
     225#endif
     226#endif
     227
     228#if !__GNUC_PREREQ__(2, 95)
     229#define __alignof(x)    __offsetof(struct { char __a; x __b; }, __b)
     230#endif
     231
     232/*
     233 * Keywords added in C11.
     234 */
     235#if defined(__cplusplus) && __cplusplus >= 201103L
     236#define _Alignas(e)             alignas(e)
     237#define _Alignof(e)             alignof(e)
     238#define _Noreturn               [[noreturn]]
     239#define _Static_assert(e, s)    static_assert(e, s)
     240/* FIXME: change this to thread_local when clang in base supports it */
     241#define _Thread_local           __thread
     242#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(lint)
     243/* Do nothing.  They are language keywords. */
     244#else
     245/* Not supported.  Implement them using our versions. */
     246#define _Alignas(x)             __aligned(x)
     247#define _Alignof(x)             __alignof(x)
     248#define _Noreturn               __dead2
     249#define _Thread_local           __thread
     250#ifdef __COUNTER__
     251#define _Static_assert(x, y)    __Static_assert(x, __COUNTER__)
     252#define __Static_assert(x, y)   ___Static_assert(x, y)
     253#define ___Static_assert(x, y)  typedef char __assert_ ## y[(x) ? 1 : -1] \
     254                                __unused
     255#else
     256#define _Static_assert(x, y)    struct __hack
     257#endif
     258#endif
     259
     260/*
     261 * Emulation of C11 _Generic().  Unlike the previously defined C11
     262 * keywords, it is not possible to implement this using exactly the same
     263 * syntax.  Therefore implement something similar under the name
     264 * __generic().  Unlike _Generic(), this macro can only distinguish
     265 * between a single type, so it requires nested invocations to
     266 * distinguish multiple cases.
     267 */
     268
     269#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
     270#define __generic(expr, t, yes, no)                                     \
     271        _Generic(expr, t: yes, default: no)
     272#elif __GNUC_PREREQ__(3, 1) && !defined(__cplusplus)
     273#define __generic(expr, t, yes, no)                                     \
     274        __builtin_choose_expr(                                          \
     275            __builtin_types_compatible_p(__typeof(expr), t), yes, no)
     276#endif
     277
     278#if __GNUC_PREREQ__(2, 96)
     279#define __malloc_like   __attribute__((__malloc__))
     280#define __pure          __attribute__((__pure__))
     281#else
     282#define __malloc_like
     283#define __pure
     284#endif
     285
     286#if __GNUC_PREREQ__(3, 1) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800)
     287#define __always_inline __attribute__((__always_inline__))
     288#else
     289#define __always_inline
     290#endif
     291
     292#if __GNUC_PREREQ__(3, 1)
     293#define __noinline      __attribute__ ((__noinline__))
     294#else
     295#define __noinline
     296#endif
     297
     298#if __GNUC_PREREQ__(3, 3)
     299#define __nonnull(x)    __attribute__((__nonnull__(x)))
     300#else
     301#define __nonnull(x)
     302#endif
     303
     304#if __GNUC_PREREQ__(3, 4)
     305#define __fastcall      __attribute__((__fastcall__))
     306#else
     307#define __fastcall
     308#endif
     309
     310#if __GNUC_PREREQ__(4, 1)
     311#define __returns_twice __attribute__((__returns_twice__))
     312#else
     313#define __returns_twice
     314#endif
     315
     316/* XXX: should use `#if __STDC_VERSION__ < 199901'. */
     317#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER)
     318#define __func__        NULL
     319#endif
     320
     321#if (defined(__INTEL_COMPILER) || (defined(__GNUC__) && __GNUC__ >= 2)) && !defined(__STRICT_ANSI__) || __STDC_VERSION__ >= 199901
     322#define __LONG_LONG_SUPPORTED
     323#endif
     324
     325/* C++11 exposes a load of C99 stuff */
     326#if defined(__cplusplus) && __cplusplus >= 201103L
     327#define __LONG_LONG_SUPPORTED
     328#ifndef __STDC_LIMIT_MACROS
     329#define __STDC_LIMIT_MACROS
     330#endif
     331#ifndef __STDC_CONSTANT_MACROS
     332#define __STDC_CONSTANT_MACROS
     333#endif
     334#endif
     335
     336/*
     337 * GCC 2.95 provides `__restrict' as an extension to C90 to support the
     338 * C99-specific `restrict' type qualifier.  We happen to use `__restrict' as
     339 * a way to define the `restrict' type qualifier without disturbing older
     340 * software that is unaware of C99 keywords.
     341 */
     342#if !(__GNUC__ == 2 && __GNUC_MINOR__ == 95)
     343#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901 || defined(lint)
     344#define __restrict
     345#else
     346#define __restrict      restrict
     347#endif
     348#endif
     349
     350/*
     351 * GNU C version 2.96 adds explicit branch prediction so that
     352 * the CPU back-end can hint the processor and also so that
     353 * code blocks can be reordered such that the predicted path
     354 * sees a more linear flow, thus improving cache behavior, etc.
     355 *
     356 * The following two macros provide us with a way to utilize this
     357 * compiler feature.  Use __predict_true() if you expect the expression
     358 * to evaluate to true, and __predict_false() if you expect the
     359 * expression to evaluate to false.
     360 *
     361 * A few notes about usage:
     362 *
     363 *      * Generally, __predict_false() error condition checks (unless
     364 *        you have some _strong_ reason to do otherwise, in which case
     365 *        document it), and/or __predict_true() `no-error' condition
     366 *        checks, assuming you want to optimize for the no-error case.
     367 *
     368 *      * Other than that, if you don't know the likelihood of a test
     369 *        succeeding from empirical or other `hard' evidence, don't
     370 *        make predictions.
     371 *
     372 *      * These are meant to be used in places that are run `a lot'.
     373 *        It is wasteful to make predictions in code that is run
     374 *        seldomly (e.g. at subsystem initialization time) as the
     375 *        basic block reordering that this affects can often generate
     376 *        larger code.
     377 */
     378#if __GNUC_PREREQ__(2, 96)
     379#define __predict_true(exp)     __builtin_expect((exp), 1)
     380#define __predict_false(exp)    __builtin_expect((exp), 0)
     381#else
     382#define __predict_true(exp)     (exp)
     383#define __predict_false(exp)    (exp)
     384#endif
     385
     386#if __GNUC_PREREQ__(4, 2)
     387#define __hidden        __attribute__((__visibility__("hidden")))
     388#define __exported      __attribute__((__visibility__("default")))
     389#else
     390#define __hidden
     391#define __exported
     392#endif
     393
     394/*
     395 * We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h>
     396 * require it.
     397 */
     398#if __GNUC_PREREQ__(4, 1)
     399#define __offsetof(type, field)  __builtin_offsetof(type, field)
     400#else
     401#ifndef __cplusplus
     402#define __offsetof(type, field) \
     403        ((__size_t)(__uintptr_t)((const volatile void *)&((type *)0)->field))
     404#else
     405#define __offsetof(type, field)                                 \
     406  (__offsetof__ (reinterpret_cast <__size_t>                    \
     407                 (&reinterpret_cast <const volatile char &>     \
     408                  (static_cast<type *> (0)->field))))
     409#endif
     410#endif
     411#define __rangeof(type, start, end) \
     412        (__offsetof(type, end) - __offsetof(type, start))
     413
     414/*
     415 * Given the pointer x to the member m of the struct s, return
     416 * a pointer to the containing structure.  When using GCC, we first
     417 * assign pointer x to a local variable, to check that its type is
     418 * compatible with member m.
     419 */
     420#if __GNUC_PREREQ__(3, 1)
     421#define __containerof(x, s, m) ({                                       \
     422        const volatile __typeof(((s *)0)->m) *__x = (x);                \
     423        __DEQUALIFY(s *, (const volatile char *)__x - __offsetof(s, m));\
     424})
     425#else
     426#define __containerof(x, s, m)                                          \
     427        __DEQUALIFY(s *, (const volatile char *)(x) - __offsetof(s, m))
     428#endif
     429
     430/*
     431 * Compiler-dependent macros to declare that functions take printf-like
     432 * or scanf-like arguments.  They are null except for versions of gcc
     433 * that are known to support the features properly (old versions of gcc-2
     434 * didn't permit keeping the keywords out of the application namespace).
     435 */
     436#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER)
     437#define __printflike(fmtarg, firstvararg)
     438#define __scanflike(fmtarg, firstvararg)
     439#define __format_arg(fmtarg)
     440#define __strfmonlike(fmtarg, firstvararg)
     441#define __strftimelike(fmtarg, firstvararg)
     442#else
     443#define __printflike(fmtarg, firstvararg) \
     444            __attribute__((__format__ (__printf__, fmtarg, firstvararg)))
     445#define __scanflike(fmtarg, firstvararg) \
     446            __attribute__((__format__ (__scanf__, fmtarg, firstvararg)))
     447#define __format_arg(fmtarg)    __attribute__((__format_arg__ (fmtarg)))
     448#define __strfmonlike(fmtarg, firstvararg) \
     449            __attribute__((__format__ (__strfmon__, fmtarg, firstvararg)))
     450#define __strftimelike(fmtarg, firstvararg) \
     451            __attribute__((__format__ (__strftime__, fmtarg, firstvararg)))
     452#endif
     453
     454/* Compiler-dependent macros that rely on FreeBSD-specific extensions. */
     455#if __FreeBSD_cc_version >= 300001 && defined(__GNUC__) && !defined(__INTEL_COMPILER)
     456#define __printf0like(fmtarg, firstvararg) \
     457            __attribute__((__format__ (__printf0__, fmtarg, firstvararg)))
     458#else
     459#define __printf0like(fmtarg, firstvararg)
     460#endif
     461
     462#if defined(__GNUC__) || defined(__INTEL_COMPILER)
     463#ifndef __INTEL_COMPILER
     464#define __strong_reference(sym,aliassym)        \
     465        extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym)))
     466#endif
     467#ifdef __STDC__
     468#define __weak_reference(sym,alias)     \
     469        __asm__(".weak " #alias);       \
     470        __asm__(".equ "  #alias ", " #sym)
     471#define __warn_references(sym,msg)      \
     472        __asm__(".section .gnu.warning." #sym); \
     473        __asm__(".asciz \"" msg "\"");  \
     474        __asm__(".previous")
     475#define __sym_compat(sym,impl,verid)    \
     476        __asm__(".symver " #impl ", " #sym "@" #verid)
     477#define __sym_default(sym,impl,verid)   \
     478        __asm__(".symver " #impl ", " #sym "@@" #verid)
     479#else
     480#define __weak_reference(sym,alias)     \
     481        __asm__(".weak alias");         \
     482        __asm__(".equ alias, sym")
     483#define __warn_references(sym,msg)      \
     484        __asm__(".section .gnu.warning.sym"); \
     485        __asm__(".asciz \"msg\"");      \
     486        __asm__(".previous")
     487#define __sym_compat(sym,impl,verid)    \
     488        __asm__(".symver impl, sym@verid")
     489#define __sym_default(impl,sym,verid)   \
     490        __asm__(".symver impl, sym@@verid")
     491#endif  /* __STDC__ */
     492#endif  /* __GNUC__ || __INTEL_COMPILER */
     493
     494#define __GLOBL1(sym)   __asm__(".globl " #sym)
     495#define __GLOBL(sym)    __GLOBL1(sym)
     496
     497#if defined(__GNUC__) || defined(__INTEL_COMPILER)
     498#define __IDSTRING(name,string) __asm__(".ident\t\"" string "\"")
     499#else
     500/*
     501 * The following definition might not work well if used in header files,
     502 * but it should be better than nothing.  If you want a "do nothing"
     503 * version, then it should generate some harmless declaration, such as:
     504 *    #define __IDSTRING(name,string)   struct __hack
     505 */
     506#define __IDSTRING(name,string) static const char name[] __unused = string
     507#endif
     508
     509/*
     510 * Embed the rcs id of a source file in the resulting library.  Note that in
     511 * more recent ELF binutils, we use .ident allowing the ID to be stripped.
     512 * Usage:
     513 *      __FBSDID("$FreeBSD$");
     514 */
     515#ifndef __FBSDID
     516#if !defined(lint) && !defined(STRIP_FBSDID)
     517#define __FBSDID(s)     __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
     518#else
     519#define __FBSDID(s)     struct __hack
     520#endif
     521#endif
     522
     523#ifndef __RCSID
     524#ifndef NO__RCSID
     525#define __RCSID(s)      __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
     526#else
     527#define __RCSID(s)      struct __hack
     528#endif
     529#endif
     530
     531#ifndef __RCSID_SOURCE
     532#ifndef NO__RCSID_SOURCE
     533#define __RCSID_SOURCE(s)       __IDSTRING(__CONCAT(__rcsid_source_,__LINE__),s)
     534#else
     535#define __RCSID_SOURCE(s)       struct __hack
     536#endif
     537#endif
     538
     539#ifndef __SCCSID
     540#ifndef NO__SCCSID
     541#define __SCCSID(s)     __IDSTRING(__CONCAT(__sccsid_,__LINE__),s)
     542#else
     543#define __SCCSID(s)     struct __hack
     544#endif
     545#endif
     546
     547#ifndef __COPYRIGHT
     548#ifndef NO__COPYRIGHT
     549#define __COPYRIGHT(s)  __IDSTRING(__CONCAT(__copyright_,__LINE__),s)
     550#else
     551#define __COPYRIGHT(s)  struct __hack
     552#endif
     553#endif
     554
     555#ifndef __DECONST
     556#define __DECONST(type, var)    ((type)(__uintptr_t)(const void *)(var))
     557#endif
     558
     559#ifndef __DEVOLATILE
     560#define __DEVOLATILE(type, var) ((type)(__uintptr_t)(volatile void *)(var))
     561#endif
     562
     563#ifndef __DEQUALIFY
     564#define __DEQUALIFY(type, var)  ((type)(__uintptr_t)(const volatile void *)(var))
     565#endif
     566
     567/*-
     568 * The following definitions are an extension of the behavior originally
     569 * implemented in <sys/_posix.h>, but with a different level of granularity.
     570 * POSIX.1 requires that the macros we test be defined before any standard
     571 * header file is included.
     572 *
     573 * Here's a quick run-down of the versions:
     574 *  defined(_POSIX_SOURCE)              1003.1-1988
     575 *  _POSIX_C_SOURCE == 1                1003.1-1990
     576 *  _POSIX_C_SOURCE == 2                1003.2-1992 C Language Binding Option
     577 *  _POSIX_C_SOURCE == 199309           1003.1b-1993
     578 *  _POSIX_C_SOURCE == 199506           1003.1c-1995, 1003.1i-1995,
     579 *                                      and the omnibus ISO/IEC 9945-1: 1996
     580 *  _POSIX_C_SOURCE == 200112           1003.1-2001
     581 *  _POSIX_C_SOURCE == 200809           1003.1-2008
     582 *
     583 * In addition, the X/Open Portability Guide, which is now the Single UNIX
     584 * Specification, defines a feature-test macro which indicates the version of
     585 * that specification, and which subsumes _POSIX_C_SOURCE.
     586 *
     587 * Our macros begin with two underscores to avoid namespace screwage.
     588 */
     589
     590/* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. */
     591#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1
     592#undef _POSIX_C_SOURCE          /* Probably illegal, but beyond caring now. */
     593#define _POSIX_C_SOURCE         199009
     594#endif
     595
     596/* Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. */
     597#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 2
     598#undef _POSIX_C_SOURCE
     599#define _POSIX_C_SOURCE         199209
     600#endif
     601
     602/* Deal with various X/Open Portability Guides and Single UNIX Spec. */
     603#ifdef _XOPEN_SOURCE
     604#if _XOPEN_SOURCE - 0 >= 700
     605#define __XSI_VISIBLE           700
     606#undef _POSIX_C_SOURCE
     607#define _POSIX_C_SOURCE         200809
     608#elif _XOPEN_SOURCE - 0 >= 600
     609#define __XSI_VISIBLE           600
     610#undef _POSIX_C_SOURCE
     611#define _POSIX_C_SOURCE         200112
     612#elif _XOPEN_SOURCE - 0 >= 500
     613#define __XSI_VISIBLE           500
     614#undef _POSIX_C_SOURCE
     615#define _POSIX_C_SOURCE         199506
     616#endif
     617#endif
     618
     619/*
     620 * Deal with all versions of POSIX.  The ordering relative to the tests above is
     621 * important.
     622 */
     623#if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE)
     624#define _POSIX_C_SOURCE         198808
     625#endif
     626#ifdef _POSIX_C_SOURCE
     627#if _POSIX_C_SOURCE >= 200809
     628#define __POSIX_VISIBLE         200809
     629#define __ISO_C_VISIBLE         1999
     630#elif _POSIX_C_SOURCE >= 200112
     631#define __POSIX_VISIBLE         200112
     632#define __ISO_C_VISIBLE         1999
     633#elif _POSIX_C_SOURCE >= 199506
     634#define __POSIX_VISIBLE         199506
     635#define __ISO_C_VISIBLE         1990
     636#elif _POSIX_C_SOURCE >= 199309
     637#define __POSIX_VISIBLE         199309
     638#define __ISO_C_VISIBLE         1990
     639#elif _POSIX_C_SOURCE >= 199209
     640#define __POSIX_VISIBLE         199209
     641#define __ISO_C_VISIBLE         1990
     642#elif _POSIX_C_SOURCE >= 199009
     643#define __POSIX_VISIBLE         199009
     644#define __ISO_C_VISIBLE         1990
     645#else
     646#define __POSIX_VISIBLE         198808
     647#define __ISO_C_VISIBLE         0
     648#endif /* _POSIX_C_SOURCE */
     649#else
     650/*-
     651 * Deal with _ANSI_SOURCE:
     652 * If it is defined, and no other compilation environment is explicitly
     653 * requested, then define our internal feature-test macros to zero.  This
     654 * makes no difference to the preprocessor (undefined symbols in preprocessing
     655 * expressions are defined to have value zero), but makes it more convenient for
     656 * a test program to print out the values.
     657 *
     658 * If a program mistakenly defines _ANSI_SOURCE and some other macro such as
     659 * _POSIX_C_SOURCE, we will assume that it wants the broader compilation
     660 * environment (and in fact we will never get here).
     661 */
     662#if defined(_ANSI_SOURCE)       /* Hide almost everything. */
     663#define __POSIX_VISIBLE         0
     664#define __XSI_VISIBLE           0
     665#define __BSD_VISIBLE           0
     666#define __ISO_C_VISIBLE         1990
     667#elif defined(_C99_SOURCE)      /* Localism to specify strict C99 env. */
     668#define __POSIX_VISIBLE         0
     669#define __XSI_VISIBLE           0
     670#define __BSD_VISIBLE           0
     671#define __ISO_C_VISIBLE         1999
     672#else                           /* Default environment: show everything. */
     673#define __POSIX_VISIBLE         200809
     674#define __XSI_VISIBLE           700
     675#define __BSD_VISIBLE           1
     676#define __ISO_C_VISIBLE         1999
     677#endif
     678#endif
     679
     680#ifndef __has_extension
     681#define __has_extension  __has_feature
     682#endif
     683#ifndef __has_feature
     684#define __has_feature(x) 0
     685#endif
     686#ifndef __has_include
     687#define __has_include(x) 0
     688#endif
     689#ifndef __has_builtin
     690#define __has_builtin(x) 0
     691#endif
     692
     693#if defined(__mips) || defined(__powerpc64__) || defined(__arm__)
     694#define __NO_TLS 1
     695#endif
     696
     697#endif /* !_SYS_CDEFS_H_ */
  • cpukit/libcsupport/include/sys/termios.h

    diff --git a/cpukit/libcsupport/include/sys/termios.h b/cpukit/libcsupport/include/sys/termios.h
    old mode 100644
    new mode 100755
    index 648e3a2..b08b430
    a b  
    1 /**
    2  * @file
     1/*-
     2 * Copyright (c) 1988, 1989, 1993, 1994
     3 *      The Regents of the University of California.  All rights reserved.
    34 *
    4  * @brief POSIX Termios Implementation for RTEMS Console Device Driver
     5 * Redistribution and use in source and binary forms, with or without
     6 * modification, are permitted provided that the following conditions
     7 * are met:
     8 * 1. Redistributions of source code must retain the above copyright
     9 *    notice, this list of conditions and the following disclaimer.
     10 * 2. Redistributions in binary form must reproduce the above copyright
     11 *    notice, this list of conditions and the following disclaimer in the
     12 *    documentation and/or other materials provided with the distribution.
     13 * 3. Neither the name of the University nor the names of its contributors
     14 *    may be used to endorse or promote products derived from this software
     15 *    without specific prior written permission.
    516 *
    6  * The Open Group Base Specifications Issue 6
    7  * IEEE Std 1003.1, 2004 Edition
    8  * Chapter 11, General Terminal Interface
    9  */
    10 
    11 /*
    12  *  COPYRIGHT (c) 1989-2011.
    13  *  On-Line Applications Research Corporation (OAR).
     17 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     20 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     27 * SUCH DAMAGE.
    1428 *
    15  *  The license and distribution terms for this file may be
    16  *  found in the file LICENSE in this distribution or at
    17  *  http://www.rtems.org/license/LICENSE.
     29 *      @(#)termios.h   8.3 (Berkeley) 3/28/94
     30 * $FreeBSD$
    1831 */
    1932
    20 #ifndef TERMIOS_H
    21 #define TERMIOS_H
     33#ifndef _TERMIOS_H_
     34#define _TERMIOS_H_
    2235
    23 #include <sys/types.h>
     36#include <sys/cdefs.h>
     37#include <sys/_termios.h>
     38#include <sys/_types.h>
    2439
    25 #ifdef __cplusplus
    26 extern "C" {
     40#ifndef _PID_T_DECLARED
     41typedef __pid_t         pid_t;
     42#define _PID_T_DECLARED
    2743#endif
    2844
    29 /**
    30  * @ingroup Termios
    31  *
    32  * @brief POSIX Termios Implementation
    33  *
    34  */
    35 /**@{**/
    36 
    37 typedef unsigned char   cc_t;
    38 typedef unsigned int    speed_t;
    39 typedef unsigned int    tcflag_t;
     45#ifndef _POSIX_SOURCE
     46#define OXTABS          TAB3
     47#define MDMBUF          CCAR_OFLOW
     48#endif
    4049
    41 #define NCCS 19
    42 struct termios {
    43         tcflag_t c_iflag;               /* input mode flags */
    44         tcflag_t c_oflag;               /* output mode flags */
    45         tcflag_t c_cflag;               /* control mode flags */
    46         tcflag_t c_lflag;               /* local mode flags */
    47         cc_t c_line;                    /* line discipline */
    48         cc_t c_cc[NCCS];                /* control characters */
    49 };
     50#ifndef _POSIX_SOURCE
     51#define CCEQ(val, c)    ((c) == (val) && (val) != _POSIX_VDISABLE)
     52#endif
    5053
    51 /**
    52  * This value is used to disable processing of a member of c_cc
    53  * in the struct termios.
     54/*
     55 * Commands passed to tcsetattr() for setting the termios structure.
    5456 */
    55 #define _POSIX_VDISABLE 0
    56 
    57 /* c_cc characters */
    58 #define VINTR 0
    59 #define VQUIT 1
    60 #define VERASE 2
    61 #define VKILL 3
    62 #define VEOF 4
    63 #define VTIME 5
    64 #define VMIN 6
    65 #define VSWTC 7
    66 #define VSTART 8
    67 #define VSTOP 9
    68 #define VSUSP 10
    69 #define VEOL 11
    70 #define VREPRINT 12
    71 #define VDISCARD 13
    72 #define VWERASE 14
    73 #define VLNEXT 15
    74 #define VEOL2 16
    75 
    76 /* c_iflag bits */
    77 #define IGNBRK  0000001
    78 #define BRKINT  0000002
    79 #define IGNPAR  0000004
    80 #define PARMRK  0000010
    81 #define INPCK   0000020
    82 #define ISTRIP  0000040
    83 #define INLCR   0000100
    84 #define IGNCR   0000200
    85 #define ICRNL   0000400
    86 #define IUCLC   0001000
    87 #define IXON    0002000
    88 #define IXANY   0004000
    89 #define IXOFF   0010000
    90 #define IMAXBEL 0020000
    91 
    92 /* c_oflag bits */
    93 #define OPOST   0000001
    94 #define OLCUC   0000002
    95 #define ONLCR   0000004
    96 #define OCRNL   0000010
    97 #define ONOCR   0000020
    98 #define ONLRET  0000040
    99 #define OFILL   0000100
    100 #define OFDEL   0000200
    101 #define NLDLY   0000400
    102 #define   NL0   0000000
    103 #define   NL1   0000400
    104 #define CRDLY   0003000
    105 #define   CR0   0000000
    106 #define   CR1   0001000
    107 #define   CR2   0002000
    108 #define   CR3   0003000
    109 #define TABDLY  0014000
    110 #define   TAB0  0000000
    111 #define   TAB1  0004000
    112 #define   TAB2  0010000
    113 #define   TAB3  0014000
    114 #define   XTABS 0014000
    115 #define BSDLY   0020000
    116 #define   BS0   0000000
    117 #define   BS1   0020000
    118 #define VTDLY   0040000
    119 #define   VT0   0000000
    120 #define   VT1   0040000
    121 #define FFDLY   0100000
    122 #define   FF0   0000000
    123 #define   FF1   0100000
    124 
    125 /* c_cflag bit meaning */
    126 #define CBAUD   0010017
    127 #define  B0     0000000         /* hang up */
    128 #define  B50    0000001
    129 #define  B75    0000002
    130 #define  B110   0000003
    131 #define  B134   0000004
    132 #define  B150   0000005
    133 #define  B200   0000006
    134 #define  B300   0000007
    135 #define  B600   0000010
    136 #define  B1200  0000011
    137 #define  B1800  0000012
    138 #define  B2400  0000013
    139 #define  B4800  0000014
    140 #define  B9600  0000015
    141 #define  B19200 0000016
    142 #define  B38400 0000017
    143 #define EXTA B19200
    144 #define EXTB B38400
    145 #define CSIZE   0000060
    146 #define   CS5   0000000
    147 #define   CS6   0000020
    148 #define   CS7   0000040
    149 #define   CS8   0000060
    150 #define CSTOPB  0000100
    151 #define CREAD   0000200
    152 #define PARENB  0000400
    153 #define PARODD  0001000
    154 #define HUPCL   0002000
    155 #define CLOCAL  0004000
    156 #define CBAUDEX 0010000
    157 #define  B57600  0010001
    158 #define  B115200 0010002
    159 #define  B230400 0010003
    160 #define  B460800 0010004
    161 #define CIBAUD    002003600000  /* input baud rate (not used) */
    162 #define CRTSCTS   020000000000          /* flow control */
    163 
    164 #define RTEMS_TERMIOS_NUMBER_BAUD_RATES 20
    165 
    166 /* c_lflag bits */
    167 #define ISIG    0000001
    168 #define ICANON  0000002
    169 #define XCASE   0000004
    170 #define ECHO    0000010
    171 #define ECHOE   0000020
    172 #define ECHOK   0000040
    173 #define ECHONL  0000100
    174 #define NOFLSH  0000200
    175 #define TOSTOP  0000400
    176 #define ECHOCTL 0001000
    177 #define ECHOPRT 0002000
    178 #define ECHOKE  0004000
    179 #define FLUSHO  0010000
    180 #define PENDIN  0040000
    181 #define IEXTEN  0100000
    182 
    183 /* tcflow() and TCXONC use these */
    184 #define TCOOFF          0
    185 #define TCOON           1
    186 #define TCIOFF          2
    187 #define TCION           3
    188 
    189 /* tcflush() and TCFLSH use these */
    190 #define TCIFLUSH        0
    191 #define TCOFLUSH        1
    192 #define TCIOFLUSH       2
    193 
    194 /* tcsetattr uses these */
    195 #define TCSANOW         0
    196 #define TCSADRAIN       1
    197 #define TCSAFLUSH       2
     57#define TCSANOW         0               /* make change immediate */
     58#define TCSADRAIN       1               /* drain output, then change */
     59#define TCSAFLUSH       2               /* drain output, flush input */
     60#ifndef _POSIX_SOURCE
     61#define TCSASOFT        0x10            /* flag - don't alter h.w. state */
     62#endif
    19863
     64#define TCIFLUSH        1
     65#define TCOFLUSH        2
     66#define TCIOFLUSH       3
     67#define TCOOFF          1
     68#define TCOON           2
     69#define TCIOFF          3
     70#define TCION           4
     71
     72__BEGIN_DECLS
     73speed_t cfgetispeed(const struct termios *);
     74speed_t cfgetospeed(const struct termios *);
     75int     cfsetispeed(struct termios *, speed_t);
     76int     cfsetospeed(struct termios *, speed_t);
     77int     tcgetattr(int, struct termios *);
     78int     tcsetattr(int, int, const struct termios *);
    19979int     tcdrain(int);
    20080int     tcflow(int, int);
    20181int     tcflush(int, int);
    202 int     tcgetattr(int, struct termios *);
    203 int     tcsetattr(int, int, struct termios *);
    204 int     tcdrain(int);
    205 pid_t   tcgetprgrp(int);
    206 int     tcsetprgrp(int, pid_t);
    20782int     tcsendbreak(int, int);
    208 speed_t cfgetospeed(const struct termios *tp);
    209 int     cfsetospeed(struct termios *tp, speed_t speed);
    210 speed_t cfgetispeed(const struct termios *tp);
    211 int     cfsetispeed(struct termios *tp, speed_t speed);
    212 void    cfmakeraw(struct termios *tp);
    213 int     cfsetspeed(struct termios *tp, speed_t speed);
    21483
    215 /** @} */
     84#if __POSIX_VISIBLE >= 200112 || __BSD_VISIBLE
     85pid_t   tcgetsid(int);
     86#endif
     87#if __BSD_VISIBLE
     88int     tcsetsid(int, pid_t);
    21689
    217 #ifdef __cplusplus
    218 }
     90void    cfmakeraw(struct termios *);
     91void    cfmakesane(struct termios *);
     92int     cfsetspeed(struct termios *, speed_t);
    21993#endif
     94__END_DECLS
     95
     96#endif /* !_TERMIOS_H_ */
    22097
    221 #endif  /* TERMIOS_H */
     98#ifndef _POSIX_SOURCE
     99#include <sys/ttycom.h>
     100#include <sys/ttydefaults.h>
     101#endif
  • new file cpukit/libcsupport/include/sys/ttydefaults.h

    diff --git a/cpukit/libcsupport/include/sys/ttydefaults.h b/cpukit/libcsupport/include/sys/ttydefaults.h
    new file mode 100755
    index 0000000..5813bda
    - +  
     1/*-
     2 * Copyright (c) 1982, 1986, 1993
     3 *      The Regents of the University of California.  All rights reserved.
     4 * (c) UNIX System Laboratories, Inc.
     5 * All or some portions of this file are derived from material licensed
     6 * to the University of California by American Telephone and Telegraph
     7 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
     8 * the permission of UNIX System Laboratories, Inc.
     9 *
     10 * Redistribution and use in source and binary forms, with or without
     11 * modification, are permitted provided that the following conditions
     12 * are met:
     13 * 1. Redistributions of source code must retain the above copyright
     14 *    notice, this list of conditions and the following disclaimer.
     15 * 2. Redistributions in binary form must reproduce the above copyright
     16 *    notice, this list of conditions and the following disclaimer in the
     17 *    documentation and/or other materials provided with the distribution.
     18 * 4. Neither the name of the University nor the names of its contributors
     19 *    may be used to endorse or promote products derived from this software
     20 *    without specific prior written permission.
     21 *
     22 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     23 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     25 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     32 * SUCH DAMAGE.
     33 *
     34 *      @(#)ttydefaults.h       8.4 (Berkeley) 1/21/94
     35 * $FreeBSD$
     36 */
     37
     38/*
     39 * System wide defaults for terminal state.
     40 */
     41#ifndef _SYS_TTYDEFAULTS_H_
     42#define _SYS_TTYDEFAULTS_H_
     43
     44/*
     45 * Defaults on "first" open.
     46 */
     47#define TTYDEF_IFLAG    (BRKINT | ICRNL | IMAXBEL | IXON | IXANY)
     48#define TTYDEF_OFLAG    (OPOST | ONLCR)
     49#define TTYDEF_LFLAG_NOECHO (ICANON | ISIG | IEXTEN)
     50#define TTYDEF_LFLAG_ECHO (TTYDEF_LFLAG_NOECHO \
     51        | ECHO | ECHOE | ECHOKE | ECHOCTL)
     52#define TTYDEF_LFLAG TTYDEF_LFLAG_ECHO
     53#define TTYDEF_CFLAG    (CREAD | CS8 | HUPCL)
     54#define TTYDEF_SPEED    (B9600)
     55
     56/*
     57 * Control Character Defaults
     58 */
     59/*
     60 * XXX: A lot of code uses lowercase characters, but control-character
     61 * conversion is actually only valid when applied to uppercase
     62 * characters. We just treat lowercase characters as if they were
     63 * inserted as uppercase.
     64 */
     65#define CTRL(x) ((x) >= 'a' && (x) <= 'z' ? \
     66        ((x) - 'a' + 1) : (((x) - 'A' + 1) & 0x7f))
     67#define CEOF            CTRL('D')
     68#define CEOL            0xff            /* XXX avoid _POSIX_VDISABLE */
     69#define CERASE          CTRL('?')
     70#define CERASE2         CTRL('H')
     71#define CINTR           CTRL('C')
     72#define CSTATUS         CTRL('T')
     73#define CKILL           CTRL('U')
     74#define CMIN            1
     75#define CQUIT           CTRL('\\')
     76#define CSUSP           CTRL('Z')
     77#define CTIME           0
     78#define CDSUSP          CTRL('Y')
     79#define CSTART          CTRL('Q')
     80#define CSTOP           CTRL('S')
     81#define CLNEXT          CTRL('V')
     82#define CDISCARD        CTRL('O')
     83#define CWERASE         CTRL('W')
     84#define CREPRINT        CTRL('R')
     85#define CEOT            CEOF
     86/* compat */
     87#define CBRK            CEOL
     88#define CRPRNT          CREPRINT
     89#define CFLUSH          CDISCARD
     90
     91/* PROTECTED INCLUSION ENDS HERE */
     92#endif /* !_SYS_TTYDEFAULTS_H_ */
     93
     94/*
     95 * #define TTYDEFCHARS to include an array of default control characters.
     96 */
     97#ifdef TTYDEFCHARS
     98static cc_t     ttydefchars[NCCS] = {
     99        CEOF,   CEOL,   CEOL,   CERASE, CWERASE, CKILL, CREPRINT,
     100        CERASE2, CINTR, CQUIT,  CSUSP,  CDSUSP, CSTART, CSTOP,  CLNEXT,
     101        CDISCARD, CMIN, CTIME,  CSTATUS, _POSIX_VDISABLE
     102};
     103#undef TTYDEFCHARS
     104#endif
  • cpukit/libnetworking/Makefile.am

    diff --git a/cpukit/libnetworking/Makefile.am b/cpukit/libnetworking/Makefile.am
    old mode 100644
    new mode 100755
    index df7cd28..0e59205
    a b include_sys_HEADERS += sys/socketvar.h 
    195195include_sys_HEADERS += sys/sysctl.h
    196196include_sys_HEADERS += sys/syslog.h
    197197include_sys_HEADERS += sys/systm.h
    198 include_sys_HEADERS += sys/ttydefaults.h
    199198include_sys_HEADERS += sys/ucred.h
    200199include_sys_HEADERS += sys/un.h
    201200
  • cpukit/libnetworking/preinstall.am

    diff --git a/cpukit/libnetworking/preinstall.am b/cpukit/libnetworking/preinstall.am
    old mode 100644
    new mode 100755
    index 0d7c270..63aeb4d
    a b $(PROJECT_INCLUDE)/sys/systm.h: sys/systm.h $(PROJECT_INCLUDE)/sys/$(dirstamp) 
    424424        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/systm.h
    425425PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/systm.h
    426426
    427 $(PROJECT_INCLUDE)/sys/ttydefaults.h: sys/ttydefaults.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
    428         $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/ttydefaults.h
    429 PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/ttydefaults.h
    430 
    431427$(PROJECT_INCLUDE)/sys/ucred.h: sys/ucred.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
    432428        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/ucred.h
    433429PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/ucred.h
  • cpukit/preinstall.am

    diff --git a/cpukit/preinstall.am b/cpukit/preinstall.am
    old mode 100644
    new mode 100755
    index a6a5879..0f56044
    a b $(PROJECT_INCLUDE)/sys/sockio.h: libcsupport/include/sys/sockio.h $(PROJECT_INCL 
    100100        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/sockio.h
    101101PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/sockio.h
    102102
     103$(PROJECT_INCLUDE)/sys/_types.h: libcsupport/include/sys/_types.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
     104        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/_types.h
     105PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/_types.h
     106
     107$(PROJECT_INCLUDE)/sys/cdefs.h: libcsupport/include/sys/cdefs.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
     108        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/cdefs.h
     109PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/cdefs.h
     110
    103111$(PROJECT_INCLUDE)/sys/ttycom.h: libcsupport/include/sys/ttycom.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
    104112        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/ttycom.h
    105113PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/ttycom.h
    106114
     115$(PROJECT_INCLUDE)/sys/ttydefaults.h: libcsupport/include/sys/ttydefaults.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
     116        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/ttydefaults.h
     117PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/ttydefaults.h
     118
     119$(PROJECT_INCLUDE)/sys/_termios.h: libcsupport/include/sys/_termios.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
     120        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/_termios.h
     121PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/_termios.h
     122
    107123$(PROJECT_INCLUDE)/sys/termios.h: libcsupport/include/sys/termios.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
    108124        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/termios.h
    109125PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/termios.h
    PREINSTALL_DIRS += $(PROJECT_INCLUDE)/rtems/bsdnet/$(dirstamp) 
    137153$(PROJECT_INCLUDE)/rtems/bsdnet/servers.h: libnetworking/rtems/bsdnet/servers.h $(PROJECT_INCLUDE)/rtems/bsdnet/$(dirstamp)
    138154        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/bsdnet/servers.h
    139155PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/bsdnet/servers.h
    140 
    141 $(PROJECT_INCLUDE)/rtems/bsdnet/_types.h: libnetworking/rtems/bsdnet/_types.h $(PROJECT_INCLUDE)/rtems/bsdnet/$(dirstamp)
    142         $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/bsdnet/_types.h
    143 PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/bsdnet/_types.h
    144156endif
    145157if LIBDL
    146158$(PROJECT_INCLUDE)/dlfcn.h: libdl/dlfcn.h $(PROJECT_INCLUDE)/$(dirstamp)