Some files in this directory are imported from FreeBSD.  The last
synchronization point with FreeBSD is the following FreeBSD commit:

commit 3bf66365129a13933f77d1f4421d5136861cffb4
Author: Brooks Davis <brooks@FreeBSD.org>
Date:   Wed Jul 6 14:03:48 2022 +0100

    cddl/*: add a WITH(OUT)_DTRACE option

    Add an option to enable/disable DTrace without disabling ZFS.  New
    architectures such as CHERI may support ZFS before they support DTrace
    and the old model of WITHOUT_CDDL disabling both wasn't helpful.

    For compatiblity, the CDDL option remains and WITHOUT_CDDL implies
    WITHOUT_DTRACE.  WITHOUT_DTRACE also implies WITHOUT_CTF.

    As part of this change, largely convert cddl/*/Makefile to using the
    more compact SUBDIR.${MK_<FOO>}+= form rather than using intermediate
    variables.

    Reviewed by:    markj
    Obtained from:  CheriBSD
    Sponsored by:   DARPA, AFRL
    Differential Revision:  https://reviews.freebsd.org/D35718

The files imported from FreeSD may be updated to a new FreeBSD baseline through
a patch set generated by this Git command:

git format-patch 3bf66365129a13933f77d1f4421d5136861cffb4 -- \
include/arpa/inet.h include/netdb.h include/termios.h sys/net/if.h \
sys/netinet6/in6.h sys/netinet/in.h sys/netinet/tcp.h sys/sys/filio.h \
sys/sys/ioccom.h sys/sys/_iovec.h sys/sys/mman.h sys/sys/poll.h \
sys/sys/_sockaddr_storage.h sys/sys/socket.h sys/sys/sockio.h \
sys/sys/syslog.h sys/sys/_termios.h sys/sys/ttycom.h sys/sys/ttydefaults.h \
sys/sys/_uio.h sys/sys/uio.h sys/sys/un.h

Use the follwing commands to map FreeBSD paths to Newlib paths:

sed -i 's,include/arpa/inet.h,newlib/libc/sys/rtems/include/arpa/inet.h,g' *.patch
sed -i 's,include/netdb.h,newlib/libc/sys/rtems/include/netdb.h,g' *.patch
sed -i 's,include/termios.h,newlib/libc/sys/rtems/include/termios.h,g' *.patch
sed -i 's,sys/net/if.h,newlib/libc/sys/rtems/include/net/if.h,g' *.patch
sed -i 's,sys/netinet6/in6.h,newlib/libc/sys/rtems/include/netinet6/in6.h,g' *.patch
sed -i 's,sys/netinet/in.h,newlib/libc/sys/rtems/include/netinet/in.h,g' *.patch
sed -i 's,sys/netinet/tcp.h,newlib/libc/sys/rtems/include/netinet/tcp.h,g' *.patch
sed -i 's,sys/sys/filio.h,newlib/libc/sys/rtems/include/sys/filio.h,g' *.patch
sed -i 's,sys/sys/ioccom.h,newlib/libc/sys/rtems/include/sys/ioccom.h,g' *.patch
sed -i 's,sys/sys/_iovec.h,newlib/libc/sys/rtems/include/sys/_iovec.h,g' *.patch
sed -i 's,sys/sys/mman.h,newlib/libc/sys/rtems/include/sys/mman.h,g' *.patch
sed -i 's,sys/sys/poll.h,newlib/libc/sys/rtems/include/sys/poll.h,g' *.patch
sed -i 's,sys/sys/_sockaddr_storage.h,newlib/libc/sys/rtems/include/sys/_sockaddr_storage.h,g' *.patch
sed -i 's,sys/sys/socket.h,newlib/libc/sys/rtems/include/sys/socket.h,g' *.patch
sed -i 's,sys/sys/sockio.h,newlib/libc/sys/rtems/include/sys/sockio.h,g' *.patch
sed -i 's,sys/sys/syslog.h,newlib/libc/sys/rtems/include/sys/syslog.h,g' *.patch
sed -i 's,sys/sys/_termios.h,newlib/libc/sys/rtems/include/sys/_termios.h,g' *.patch
sed -i 's,sys/sys/ttycom.h,newlib/libc/sys/rtems/include/sys/ttycom.h,g' *.patch
sed -i 's,sys/sys/ttydefaults.h,newlib/libc/sys/rtems/include/sys/ttydefaults.h,g' *.patch
sed -i 's,sys/sys/_uio.h,newlib/libc/sys/rtems/include/sys/_uio.h,g' *.patch
sed -i 's,sys/sys/uio.h,newlib/libc/sys/rtems/include/sys/uio.h,g' *.patch
sed -i 's,sys/sys/un.h,newlib/libc/sys/rtems/include/sys/un.h,g' *.patch

Some patches may change kernel space parts of the above header files.  These
parts are contained in kernel space header files provided by RTEMS or LibBSD.
Gather all patches and hunks of patches which belong to the kernel space so
that they can be applied to RTEMS or LibBSD.  Use the following commands to map
Newlib paths to kernel space header files.

sed -i 's,newlib/libc/sys/rtems/include/netinet6/in6.h,cpukit/include/machine/_kernel_in6.h,g' *.patch
sed -i 's,newlib/libc/sys/rtems/include/netinet/in.h,cpukit/include/machine/_kernel_in.h,g' *.patch
sed -i 's,newlib/libc/sys/rtems/include/sys/cpuset.h,cpukit/include/machine/_kernel_cpuset.h,g' *.patch
sed -i 's,newlib/libc/sys/rtems/include/sys/mman.h,cpukit/include/machine/_kernel_mman.h,g' *.patch
sed -i 's,newlib/libc/sys/rtems/include/sys/param.h,cpukit/include/machine/_kernel_param.h,g' *.patch
sed -i 's,newlib/libc/sys/rtems/include/sys/time.h,cpukit/include/machine/_kernel_time.h,g' *.patch
sed -i 's,newlib/libc/sys/rtems/include/sys/types.h,cpukit/include/machine/_kernel_types.h,g' *.patch
sed -i 's,newlib/libc/sys/rtems/include/sys/uio.h,cpukit/include/machine/_kernel_uio.h,g' *.patch

sed -i 's,newlib/libc/sys/rtems/include/net/if.h,rtemsbsd/include/machine/_kernel_if.h,g' *.patch
sed -i 's,newlib/libc/sys/rtems/include/sys/lock.h,rtemsbsd/include/machine/_kernel_lock.h,g' *.patch
sed -i 's,newlib/libc/sys/rtems/include/sys/socket.h,rtemsbsd/include/machine/_kernel_socket.h,g' *.patch
