History log of /freebsd-current/include/Makefile
Revision Date Author Comments
# be04fec4 12-May-2024 Kyle Evans <kevans@FreeBSD.org>

Import _FORTIFY_SOURCE implementation from NetBSD

This is a mostly-unmodified copy of the various *_chk implementations
and headers from NetBSD, without yet modifying system headers to start
actually including them. A future commit will also apply the needed
bits to fix ssp/unistd.h.

Reviewed by: imp, pauamma_gundo.com (both previous versions), kib
Sponsored by: Stormshield
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D32306


# 70e5a9ea 02-May-2024 John Baldwin <jhb@FreeBSD.org>

nvmf: Install nvmf.h and nvmf_proto.h in /usr/include/dev/nvmf

Reviewed by: imp
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D44707


# 41956c13 03-Apr-2024 Stephen J. Kiernan <stevek@FreeBSD.org>

include: Ensure security/audit/audit.h gets staged properly.

There is a conflict between bsm/audit.h and security/audit/audit.h due
to the way that staging is being set up using .PATH to point to the
full directory and the leaf files being specified in the list. Due to
this, the bsm/audit.h was getting staged as both bsm/audit.h and
security/audit/audit.h since the sys/bsm directory is listed first in
the .PATH list.

Use sys/security in the .PATH instead of sys/security/audit and specify
the audit header files as audit/<name>.h. This ensures that we get the
correct audit.h stanged for security/audit/audit.h.

Reviewed by: sjg
Obtained from: Juniper Networks, Inc.


# f6e77cb8 27-Mar-2024 Stephen J. Kiernan <stevek@FreeBSD.org>

include: Allow SDESTDIR to be overridden

Obtained from: Juniper Networks, Inc.
Reviewed by: sjg
Differential Revision: https://reviews.freebsd.org/D44540


# 5a1d1441 23-Nov-2023 Warner Losh <imp@FreeBSD.org>

include: Remove ancient SCCS tags.

Remove ancient SCCS tags from the tree, automated scripting, with two
minor fixup to keep things compiling. All the common forms in the tree
were removed with a perl script.

Sponsored by: Netflix


# 2cef6288 14-Sep-2023 Alexander V. Chernikov <melifaro@FreeBSD.org>

pf: convert state retrieval to netlink

Use netlink to export pf's state table.

The primary motivation is to improve how we deal with very large state
stables. With the previous implementation we had to build the entire
list (both in the kernel and in userspace) before we could start
processing. With netlink we start to get data in userspace while the
kernel is still generating more. This reduces peak memory consumption
(which can get to the GB range once we hit millions of states).

Netlink also makes future extension easier, in that we can easily add
fields to the state export without breaking userspace. In that regard
it's similar to an nvlist-based approach, except that it also deals
with transport to userspace and that it performs significantly better
than nvlists. Testing has failed to measure a performance difference
between the previous struct-copy based ioctl and the netlink approach.

Differential Revision: https://reviews.freebsd.org/D38888


# 78847e1e 11-Sep-2023 Doug Rabson <dfr@FreeBSD.org>

pkgbase: Move headers and libs out of runtime and utilities

Headers from src/include were in the runtime-dev package but
subdirectories of src/include ended up in utilities-dev by default.
Neither package is a good choice - the headers in src/include are not
useful without the libraries contained in clibs-dev.

This moves the standard C headers to clibs-dev (C++ headers are already
in this package). While working on this, I found that various clang
libraries and headers were also bundled into utilities-dev by default
so these are also moved to clang-dev.

I also added a FreeBSD-build-essential meta package to make it simple to
install all the toolchain parts.

PR: 254173
Reviewed byb: manu
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D41815


# e6615b10 07-Sep-2023 Dag-Erling Smørgrav <des@FreeBSD.org>

include: Implement N2867.

This adds macros for checked addition, subtraction, and multiplication with semantics similar to the builtins gcc and clang have had for years.

Reviewed by: kib, emaste
Differential Revision: https://reviews.freebsd.org/D41734


# 1554ba03 24-Aug-2023 Simon J. Gerraty <sjg@FreeBSD.org>

Add mac_grantbylabel

This module allows controlled privilege escallation via mac labels
securely associated with a process via mac_veriexec.

There are over 700 PRIV_* but we can compress many of them into
a single GBL_* thus constraining the size of gbl labels.

The goal is to allow a daemon to run as an unprivileged process while
still being able a set of privileged operations needed.

We add APIs to libveriexec so that userland processes can check labels
and an exec_script API that allows a suitably labeled process to run
something like a python interpreter directly if necessary;
overcomming the 'indirect' flag applied to the interpreter.

Add -l option to sbin/veriexec to report labels.

Reviewed by: stevek
Sponsored by: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D41431


# d0b2dbfa 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# d5d97bed 25-Jul-2023 Mike Karels <karels@FreeBSD.org>

arm64 lib32: prepare arm64 headers to redirect to arm

In order to compile lib32 libraries and other 32-bit code on arm64,
<machine/foo.h> needs to be redirected to an arm header rather
than arm64 when building with -m32. Ifdef the arm64 headers that
are installed in /usr/include/machine and used by user-level software
(including references from /usr/include/*.h) so that if __arm__ is
defined when including the arm64 version, <arm/foo.h> is included
rather than using the rest of the file's contents. Some arm headers
had no arm64 equivalent; headers were added just to do the redirection.
These files use #error if __arm__ is not defined to guard against
confusion. Also add an include/arm Makefile, and modify Makefiles
as needed to install everything, including the arm files in
/usr/include/arm. fenv.h comes from lib/msun/arm/fenv.h.

The new arm64 headers are:
acle-compat.h
cpuinfo.h
sysreg.h

Reviewed by: jrtc27, imp
Differential Revision: https://reviews.freebsd.org/D40944


# 1aaa8f67 26-Jun-2023 John Baldwin <jhb@FreeBSD.org>

nvme: Don't install nvme_private.h in /usr/include.

Reviewed by: chuck, imp
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D40394


# b6271cc0 09-May-2023 Ed Maste <emaste@FreeBSD.org>

includes: avoid installing if_wg.h twice

if_wg.h was installed via dev/wg in LSUBDIRS and also explicitly. We
want to install only wg/if_wg.h not the other headers, so add dev/wg to
the skip list in the copies and symlinks targets.

PR: 271266
Reviewed by: kevans
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D40031


# 1a2249ff 19-Apr-2023 Brooks Davis <brooks@FreeBSD.org>

include: add a check-ldirs target

This target ensures all LDIRS, LSUBDIRS, and LSUBSUBDIRS actually exist.

Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D39006


# 21735dfa 09-Mar-2023 Michael Butler <imb@protected-networks.net>

include: Remove no longer existing netgraph/atm

Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D39005


# 1761b09b 20-Jan-2023 Warner Losh <imp@FreeBSD.org>

byteswap.h: Add a glibc/linux compatible byteswap.h

For endian.h to work instead of sys/endian.h, some software needs
byteswap.h available. It must define {__,}byteswap_{16,32,64}.
Included sys/_endian.h to get an appropriate __byteswap16, etc
and defines the new macros in terms of them. Enhance _endian.h
to allow it to be included from here too.

Sponsored by: Netflix
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D32051


# 30e0d2a5 20-Jan-2023 Warner Losh <imp@FreeBSD.org>

linux: For better compatibility, provide compatible endian.h

Add endian.h. This includes sys/endian.h and then adds extra defines
that glibc defines with double underscores for our
_{BIG,BYTE,LITTLE,PDP}_ENDIAN macros. We also define __FLOAT_WORD_ORDER
to be the same as _BYTE_ENDIAN since FreeBSD doesn't currently define
this, and the default with glibc is exactly this for our platforms.
Move common parts of endian.h and sys/endian.h into sys/_endian.h
to limit namespace pollution from endian.h

All this gives us good compatibility with Linux. There may be one or two
upstreams that haven't integrated the patches I tried to send up.

There are some minor differences:
o The extra glibc macros are not defined. These are all
controlled with either __ at the start, or only defined
when glibc is being built. We also don't define macros
that are used internally in glibc that would pollute
the namespace.
o For complete compatibility, this change must also be
paired with providing a glibc-compatible byteswap.h.

Sponsored by: Netflix
Reviewed by: mhorne, markj, jhb
Differential Revision: https://reviews.freebsd.org/D31962


# 8b8babf0 09-Nov-2022 Kyle Evans <kevans@FreeBSD.org>

include: put includes into -dev packages

The includes build is kind of funky, as we support either copying or
symlinking files into /usr/include. For `copies`, we were supplying
the include/ ${TAG_ARGS}, which puts packages into `FreeBSD-runtime`,
without any consideration to the fact that we're installing headers.

Let's copy the approach that the `symlinks` target uses for now, and
add ",dev" to the TAG_ARGS so that headers at least end up in
FreeBSD-runtime-dev, which is more appropriate. Some of these includes
are actually technically supposed to be in *other* packages and their
INCSGROUP's PACKAGE setting is actually correct, but this is less
trivial to solve. This is a bandaid to fix the immediate problem of
some headers ending up in two different packages.

PR: 267526
Reviewed by: dfr, manu
Differential Revision: https://reviews.freebsd.org/D37256


# 744bfb21 28-Oct-2022 John Baldwin <jhb@FreeBSD.org>

Import the WireGuard driver from zx2c4.com.

This commit brings back the driver from FreeBSD commit
f187d6dfbf633665ba6740fe22742aec60ce02a2 plus subsequent fixes from
upstream.

Relative to upstream this commit includes a few other small fixes such
as additional INET and INET6 #ifdef's, #include cleanups, and updates
for recent API changes in main.

Reviewed by: pauamma, gbe, kevans, emaste
Obtained from: git@git.zx2c4.com:wireguard-freebsd @ 3cc22b2
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D36909


# 11ca01e9 01-Oct-2022 Alexander V. Chernikov <melifaro@FreeBSD.org>

netlink: add headers installation


# a09ea2bb 13-Jun-2022 Brooks Davis <brooks@FreeBSD.org>

amd64: add an i386 include directory

This directory will hold i386-specific headers that are needed for
-m32 support on amd64 and where the amd64 and i386 cases have too
little in common for combining them to make sense. Files to be
installed will come in later commits.

With the currently required set of files, this could be done with
another INCGROUP in include/Makefile, but at least one file that
might want -m32 support (ieeefp.h) conflicts with a files installed
in /usr/include.

Reviewed by: jhb, imp


# c7996ddf 28-Feb-2022 Kirk McKusick <mckusick@FreeBSD.org>

Create a new GEOM utility, gunion(8).

The gunion(8) utility is used to track changes to a read-only disk on
a writable disk. Logically, a writable disk is placed over a read-only
disk. Write requests are intercepted and stored on the writable
disk. Read requests are first checked to see if they have been
written on the top (writable disk) and if found are returned. If
they have not been written on the top disk, then they are read from
the lower disk.

The gunion(8) utility can be especially useful if you have a large
disk with a corrupted filesystem that you are unsure of how to
repair. You can use gunion(8) to place another disk over the corrupted
disk and then attempt to repair the filesystem. If the repair fails,
you can revert all the changes in the upper disk and be back to the
unchanged state of the lower disk thus allowing you to try another
approach to repairing it. If the repair is successful you can commit
all the writes recorded on the top disk to the lower disk.

Another use of the gunion(8) utility is to try out upgrades to your
system. Place the upper disk over the disk holding your filesystem
that is to be upgraded and then run the upgrade on it. If it works,
commit it; if it fails, revert the upgrade.

Further details can be found in the gunion(8) manual page.

Reviewed by: Chuck Silvers, kib (earlier version)
tested by: Peter Holm
Differential Revision: https://reviews.freebsd.org/D32697


# 3b9b51fe 15-Dec-2021 Cy Schubert <cy@FreeBSD.org>

ipfilter: Move kernel bits to netpfil

Through fixes and improvements our ipfilter sources have diverged
enough to warrant move from contrib into sys/netpil. Now that I'm
planning on implementing MSS clamping as in iptables it makes more
sense to move ipfilter to netpfil.

This is the first of three commits the ipfilter move.

Suggested by glebius on two occaions.

Suggested by and discussed with: glebius
Reviewed by: glebius, kp (for #network)
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D33510


# 160b4b92 22-Oct-2021 Konstantin Belousov <kib@FreeBSD.org>

Add real sched.h

It is required by IEEE Std 1003.1-2008 AKA POSIX.

Put some Linux compatibility stuff under BSD_VISIBLE namespace, in
particular, sys/cpuset.h definitions. Also, if user really want
Linux compatibility, she can request cpu_set_t typedef with
_WITH_CPU_SET_T define.

Reviewed by: jhb
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D32901


# 663b174b 07-Jun-2021 Emmanuel Vadot <manu@FreeBSD.org>

an: Remove driver

Last an(4) devices have been End Of Life and End Of Sale in 2007.
Time to remove this driver.

Differential Revision: https://reviews.freebsd.org/D30679
Reviewed by: imp (earlier version), emaste (earlier version)
Sponsored by: Diablotin Systems


# f41efc45 15-Apr-2021 Emmanuel Vadot <manu@FreeBSD.org>

Fix build with WITHOUT_AUDIT=yes in src.conf

Always install the audit related includes are some part of the source
always requires them.

Reported by: many
Fixes: 8c3eaf244a417a4


# 7af04dff 19-Mar-2021 John Baldwin <jhb@FreeBSD.org>

Only symlink cryptodev.h into /usr/include/crypto/

I missed updating the symlink side in the earlier commit.

Fixes: 283352dd4f6a3bb2f3c7cb45ce5dca3d86f5e3f4
MFC after: 1 week


# f187d6df 15-Mar-2021 Kyle Evans <kevans@FreeBSD.org>

base: remove if_wg(4) and associated utilities, manpage

After length decisions, we've decided that the if_wg(4) driver and
related work is not yet ready to live in the tree. This driver has
larger security implications than many, and thus will be held to
more scrutiny than other drivers.

Please also see the related message sent to the freebsd-hackers@
and freebsd-arch@ lists by Kyle Evans <kevans@FreeBSD.org> on
2021/03/16, with the subject line "Removing WireGuard Support From Base"
for additional context.


# 060f0a17 16-Mar-2021 Emmanuel Vadot <manu@FreeBSD.org>

Revert "include: Remove symlink installation"

This reverts commit 0006530aa14b9df56f88df7d819fae89b115d865.


# 35b6d9b6 16-Mar-2021 Emmanuel Vadot <manu@FreeBSD.org>

Revert "include: Tag directly the last headers"

This reverts commit 839fc8cdf9b6bafe120e7da8a4b78950ad7295c4.


# 839fc8cd 16-Mar-2021 Emmanuel Vadot <manu@FreeBSD.org>

include: Tag directly the last headers

We cannot easily used the TAG here and we don't yet have something to install
even .h from a diretory in bsd.prog.mk

Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D29170
MFC after: 2 weeks


# 0006530a 16-Mar-2021 Emmanuel Vadot <manu@FreeBSD.org>

include: Remove symlink installation

headers could be installed as symlink to the source tree instead of copies.
Remove the possibility to do that.
This make the makefile easier to read and to maintain and also don't duplicate
code.

While here remove some directories from LSBUDIRS as we already install them using
the INCS stuff.

Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D29167
MFC after: 2 weeks


# 0594b287 16-Mar-2021 Emmanuel Vadot <manu@FreeBSD.org>

pkgbase: Install all cam includes with INCS

Now they are correctly taggued and put into the -dev package

Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D29166
MFC after: 2 weeks


# 8c3eaf24 16-Mar-2021 Emmanuel Vadot <manu@FreeBSD.org>

pkgbase: Install all BSM includes with INCS

Now they are correctly taggued and put them into the libbsm package

Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D29165
MFC after: 2 weeks


# 283352dd4 15-Mar-2021 John Baldwin <jhb@FreeBSD.org>

Stop installing kernel-only crypto headers to /usr/include/crypto.

The only user-facing header from OCF is <crypto/cryptodev.h>.

PR: 254167 (exp-run)
MFC after: 1 week
Sponsored by: Chelsio Communications


# 74ae3f3e 14-Mar-2021 Kyle Evans <kevans@FreeBSD.org>

if_wg: import latest fixup work from the wireguard-freebsd project

This is the culmination of about a week of work from three developers to
fix a number of functional and security issues. This patch consists of
work done by the following folks:

- Jason A. Donenfeld <Jason@zx2c4.com>
- Matt Dunwoodie <ncon@noconroy.net>
- Kyle Evans <kevans@FreeBSD.org>

Notable changes include:
- Packets are now correctly staged for processing once the handshake has
completed, resulting in less packet loss in the interim.
- Various race conditions have been resolved, particularly w.r.t. socket
and packet lifetime (panics)
- Various tests have been added to assure correct functionality and
tooling conformance
- Many security issues have been addressed
- if_wg now maintains jail-friendly semantics: sockets are created in
the interface's home vnet so that it can act as the sole network
connection for a jail
- if_wg no longer fails to remove peer allowed-ips of 0.0.0.0/0
- if_wg now exports via ioctl a format that is future proof and
complete. It is additionally supported by the upstream
wireguard-tools (which we plan to merge in to base soon)
- if_wg now conforms to the WireGuard protocol and is more closely
aligned with security auditing guidelines

Note that the driver has been rebased away from using iflib. iflib
poses a number of challenges for a cloned device trying to operate in a
vnet that are non-trivial to solve and adds complexity to the
implementation for little gain.

The crypto implementation that was previously added to the tree was a
super complex integration of what previously appeared in an old out of
tree Linux module, which has been reduced to crypto.c containing simple
boring reference implementations. This is part of a near-to-mid term
goal to work with FreeBSD kernel crypto folks and take advantage of or
improve accelerated crypto already offered elsewhere.

There's additional test suite effort underway out-of-tree taking
advantage of the aforementioned jail-friendly semantics to test a number
of real-world topologies, based on netns.sh.

Also note that this is still a work in progress; work going further will
be much smaller in nature.

MFC after: 1 month (maybe)


# afbee982 05-Mar-2021 Scott Long <scottl@FreeBSD.org>

Remove xform_poly1305.h from the build, it is not necessary.


# 74eb7f97 19-Jan-2021 Alex Richardson <arichardson@FreeBSD.org>

Fix make includes path to nvpair.h

Fixes a typo introduced in 9e5787d2284e187abb5b654d924394a65772e004


# 8d30571d 19-Jan-2021 Alex Richardson <arichardson@FreeBSD.org>

include: Delete stale symlinks using find(1) instead of a shell loop.

This reduces the number of execve() syscalls during make includes by 88.

Reviewed By: jhb
Differential Revision: https://reviews.freebsd.org/D27622


# a21def4d 07-Jan-2021 Warner Losh <imp@FreeBSD.org>

pccard: Remove wi(4) driver

Remove wi(4). pccard is going away, and wi only supports PC Card
devices, though it has a minor amount of glue to also support
PCI cards. However, removing the one without removing the other
is hard, so the whole driver is being removed.

Relnotes: Yes


# 94773907 13-Oct-2020 Vladimir Kondratyev <wulf@FreeBSD.org>

hid: Import hidraw(4) - driver for access to raw HID device data

This driver provides raw access to HID devices through uhid(4)-compatible
interface and is based on pre-8.x uhid(4) code. Unlike uhid(4) it does
not take devices in to monopoly ownership and allows parallel access
from other drivers.

hidraw supports Linux's hidraw-compatible interface as well.

Reviewed by: hselasky
Differential revision: https://reviews.freebsd.org/D27992


# 67de2db2 04-Oct-2020 Vladimir Kondratyev <wulf@FreeBSD.org>

Factor-out hardware-independent part of USB HID support to new module

It will be used by the upcoming HID-over-i2C implementation. Should be
no-op, except hid.ko module dependency is to be added to affected drivers.

Reviewed by: hselasky, manu
Differential revision: https://reviews.freebsd.org/D27867


# 7b0d3a3c 06-Jan-2021 Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>

include: Use printf(1) instead of shell loops for header symlinks

Using a shell for loop means we have to spawn a separate install(1)
process for each header that is symlinked. This patch uses printf(1) to
generate an argument list that has been prefixed with the correct number
of ../ and then uses a single install(1) invocation.

This reduces the number of execve() calls during make includes from 2442
(with D27622) to 1382. Running `make symlinks` in include/ now spawns 214
processes instead of 1276 without this patch.

Reviewed By: jhb
Differential Revision: https://reviews.freebsd.org/D27723


# f61a3898 14-Dec-2020 Emmanuel Vadot <manu@freebsd.org>

include: Use INCSGROUPS for a few files

Instead of using install directly use INCSGROUPS for them.
All those files are the ones we installed when the directory have more .h
files that we don't want to install so they aren't using the LSUBDIR stuff.

Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D27612


# b6cc6932 15-Dec-2020 Emmanuel Vadot <manu@freebsd.org>

include: Tag the last includes files as part of the -dev package

Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D27618


# b963e10d 13-Sep-2020 Brandon Bergren <bdragon@FreeBSD.org>

[PowerPC64LE] Ensure nvram is built on powerpc64le.

Fix some cases where conditionals that were trying to exclude powerpcspe
were also excluding powerpc64le.

Sponsored by: Tag1 Consulting, Inc.


# 9e5787d2 24-Aug-2020 Matt Macy <mmacy@FreeBSD.org>

Merge OpenZFS support in to HEAD.

The primary benefit is maintaining a completely shared
code base with the community allowing FreeBSD to receive
new features sooner and with less effort.

I would advise against doing 'zpool upgrade'
or creating indispensable pools using new
features until this change has had a month+
to soak.

Work on merging FreeBSD support in to what was
at the time "ZFS on Linux" began in August 2018.
I first publicly proposed transitioning FreeBSD
to (new) OpenZFS on December 18th, 2018. FreeBSD
support in OpenZFS was finally completed in December
2019. A CFT for downstreaming OpenZFS support in
to FreeBSD was first issued on July 8th. All issues
that were reported have been addressed or, for
a couple of less critical matters there are
pull requests in progress with OpenZFS. iXsystems
has tested and dogfooded extensively internally.
The TrueNAS 12 release is based on OpenZFS with
some additional features that have not yet made
it upstream.

Improvements include:
project quotas, encrypted datasets,
allocation classes, vectorized raidz,
vectorized checksums, various command line
improvements, zstd compression.

Thanks to those who have helped along the way:
Ryan Moeller, Allan Jude, Zack Welch, and many
others.

Sponsored by: iXsystems, Inc.
Differential Revision: https://reviews.freebsd.org/D25872


# d371ed1c 08-Jul-2020 Olivier Cochard <olivier@FreeBSD.org>

Install extra TCP stack header files: They are needed to compile a userland
component of TCP Blackbox Recorder as example.

Approved by: rrs
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D25584


# 31e71d07 31-May-2020 Rick Macklem <rmacklem@FreeBSD.org>

Oops, I didn't notice the "cd" is needed for each install line.


# 6ecaf8f4 31-May-2020 Rick Macklem <rmacklem@FreeBSD.org>

Update the Makefile to copy rpcsec_tls.h to /usr/include/rpc.


# a6663252 12-Apr-2020 Alexander V. Chernikov <melifaro@FreeBSD.org>

Introduce nexthop objects and new routing KPI.

This is the foundational change for the routing subsytem rearchitecture.
More details and goals are available in https://reviews.freebsd.org/D24141 .

This patch introduces concept of nexthop objects and new nexthop-based
routing KPI.

Nexthops are objects, containing all necessary information for performing
the packet output decision. Output interface, mtu, flags, gw address goes
there. For most of the cases, these objects will serve the same role as
the struct rtentry is currently serving.
Typically there will be low tens of such objects for the router even with
multiple BGP full-views, as these objects will be shared between routing
entries. This allows to store more information in the nexthop.

New KPI:

struct nhop_object *fib4_lookup(uint32_t fibnum, struct in_addr dst,
uint32_t scopeid, uint32_t flags, uint32_t flowid);
struct nhop_object *fib6_lookup(uint32_t fibnum, const struct in6_addr *dst6,
uint32_t scopeid, uint32_t flags, uint32_t flowid);

These 2 function are intended to replace all all flavours of
<in_|in6_>rtalloc[1]<_ign><_fib>, mpath functions and the previous
fib[46]-generation functions.

Upon successful lookup, they return nexthop object which is guaranteed to
exist within current NET_EPOCH. If longer lifetime is desired, one can
specify NHR_REF as a flag and get a referenced version of the nexthop.
Reference semantic closely resembles rtentry one, allowing sed-style conversion.

Additionally, another 2 functions are introduced to support uRPF functionality
inside variety of our firewalls. Their primary goal is to hide the multipath
implementation details inside the routing subsystem, greatly simplifying
firewalls implementation:

int fib4_lookup_urpf(uint32_t fibnum, struct in_addr dst, uint32_t scopeid,
uint32_t flags, const struct ifnet *src_if);
int fib6_lookup_urpf(uint32_t fibnum, const struct in6_addr *dst6, uint32_t scopeid,
uint32_t flags, const struct ifnet *src_if);

All functions have a separate scopeid argument, paving way to eliminating IPv6 scope
embedding and allowing to support IPv4 link-locals in the future.

Structure changes:
* rtentry gets new 'rt_nhop' pointer, slightly growing the overall size.
* rib_head gets new 'rnh_preadd' callback pointer, slightly growing overall sz.

Old KPI:
During the transition state old and new KPI will coexists. As there are another 4-5
decent-sized conversion patches, it will probably take a couple of weeks.
To support both KPIs, fields not required by the new KPI (most of rtentry) has to be
kept, resulting in the temporary size increase.
Once conversion is finished, rtentry will notably shrink.

More details:
* architectural overview: https://reviews.freebsd.org/D24141
* list of the next changes: https://reviews.freebsd.org/D24232

Reviewed by: ae,glebius(initial version)
Differential Revision: https://reviews.freebsd.org/D24232


# 72f8500f 01-Apr-2020 Ed Maste <emaste@FreeBSD.org>

Remove redundant development tag from include Makefile

Headers are placed in the -development package via install args in rules
in share/mk/bsd.incs.mk; there is no need to explicitly modify TAGS in
include/Makefile. (Mentioned in review D24139.)

Discussed with: manu


# daba5ace 01-Mar-2020 Warner Losh <imp@FreeBSD.org>

Finish removal of bktr

Remove the old ioctl .h files
Remove copying/linking ioctl .h files in instasllworld
Remove bktr from lint
Add now-removed files with ObsoleteFiles


# 3c886805 05-Sep-2019 Emmanuel Vadot <manu@FreeBSD.org>

pkgbase: Add TAG for evdev and veriexec headers

Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D21505


# f5a95d9a 24-Jun-2019 Warner Losh <imp@FreeBSD.org>

Remove NAND and NANDFS support

NANDFS has been broken for years. Remove it. The NAND drivers that
remain are for ancient parts that are no longer relevant. They are
polled, have terrible performance and just for ancient arm
hardware. NAND parts have evolved significantly from this early work
and little to none of it would be relevant should someone need to
update to support raw nand. This code has been off by default for
years and has violated the vnode protocol leading to panics since it
was committed.

Numerous posts to arch@ and other locations have found no actual users
for this software.

Relnotes: Yes
No Objection From: arch@
Differential Revision: https://reviews.freebsd.org/D20745


# 71fb3739 15-Jun-2019 Ian Lepore <ian@FreeBSD.org>

Move/rename the sys/pwm.h header file to dev/pwm/pwmc.h. The file contains
ioctl definitions and related datatypes that allow userland control of pwm
hardware via the pwmc device. The new name and location better reflects its
assocation with a single device driver.


# eb12b8ea 25-Feb-2019 Simon J. Gerraty <sjg@FreeBSD.org>

Add verifying manifest loader for mac_veriexec

This tool will verify a signed manifest and load contents into
mac_veriexec for storage

Sponsored by: Juniper Networks
Differential Revision: D16575


# a52fd948 23-Aug-2018 Alex Richardson <arichardson@FreeBSD.org>

Handle -DNO_ROOT for `make compat` in include/

Otherwise this step will fail on a Linux host due to missing "wheel" group

Approved By: brooks (mentor)
Differential Revision: https://reviews.freebsd.org/D16841


# cd87846e 12-Aug-2018 Kyle Evans <kevans@FreeBSD.org>

Install symlink for sys/nvpair.h in include/Makefile symlinks target

Noticed while fixing the install/sysroot situation for libnvpair and
libzfs_core- if one uses the symlinks target, libzfs_core.h is not
installed.


# ce33c57d 12-Aug-2018 Kyle Evans <kevans@FreeBSD.org>

Use INCS for non-sys/ libnvpair and libzfs_core includes

While nothing was wrong with libnvpair.h, libzfs_core.h was only guarded by
MK_CDDL rather than MK_CDDL && MK_ZFS. Rather than ugl'if'ying
include/Makefile to impose the extra restriction, just move the non-sys/
includes into INCS with the respect lib builds.

This has the added bonus of allowing third party packagers to try and split
these libs out of the FreeBSD-runtime package, if they are so inclined.

The sys/ include was left alone- generally userland libraries shouldn't
install kernel headers.

MFC after: 1 week


# e5054602 05-May-2018 Mark Johnston <markj@FreeBSD.org>

Import the netdump client code.

This is a component of a system which lets the kernel dump core to
a remote host after a panic, rather than to a local storage device.
The server component is available in the ports tree. netdump is
particularly useful on diskless systems.

The netdump(4) man page contains some details describing the protocol.
Support for configuring netdump will be added to dumpon(8) in a future
commit. To use netdump, the kernel must have been compiled with the
NETDUMP option.

The initial revision of netdump was written by Darrell Anderson and
was integrated into Sandvine's OS, from which this version was derived.

Reviewed by: bdrewery, cem (earlier versions), julian, sbruno
MFC after: 1 month
X-MFC note: use a spare field in struct ifnet
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D15253


# e6a376d1 01-May-2018 Ed Maste <emaste@FreeBSD.org>

Retire lmc(4)

This driver supports legacy, 32-bit PCI devices, and had an ambiguous
license. Supported devices were already reported to be rare in 2003
(when an earlier version of the driver was removed in r123201).

Reviewed by: rgrimes
Relnotes: Yes
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D15245


# 2529f56e 22-Mar-2018 Jonathan T. Looney <jtl@FreeBSD.org>

Add the "TCP Blackbox Recorder" which we discussed at the developer
summits at BSDCan and BSDCam in 2017.

The TCP Blackbox Recorder allows you to capture events on a TCP connection
in a ring buffer. It stores metadata with the event. It optionally stores
the TCP header associated with an event (if the event is associated with a
packet) and also optionally stores information on the sockets.

It supports setting a log ID on a TCP connection and using this to correlate
multiple connections that share a common log ID.

You can log connections in different modes. If you are doing a coordinated
test with a particular connection, you may tell the system to put it in
mode 4 (continuous dump). Or, if you just want to monitor for errors, you
can put it in mode 1 (ring buffer) and dump all the ring buffers associated
with the connection ID when we receive an error signal for that connection
ID. You can set a default mode that will be applied to a particular ratio
of incoming connections. You can also manually set a mode using a socket
option.

This commit includes only basic probes. rrs@ has added quite an abundance
of probes in his TCP development work. He plans to commit those soon.

There are user-space programs which we plan to commit as ports. These read
the data from the log device and output pcapng files, and then let you
analyze the data (and metadata) in the pcapng files.

Reviewed by: gnn (previous version)
Obtained from: Netflix, Inc.
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D11085


# e808190a 08-Mar-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Add kernel and userspace code to dump the firmware state of supported
ConnectX-4/5 devices in mlx5core.

The dump is obtained by reading a predefined register map from the
non-destructive crspace, accessible by the vendor-specific PCIe
capability (VSC). The dump is stored in preallocated kernel memory and
managed by the mlx5tool(8), which communicates with the driver using a
character device node.

The utility allows to store the dump in format
<address> <value>
into a file, to reset the dump content, and to manually initiate the
dump.

A call to mlx5_fwdump() should be added at the places where a dump
must be fetched automatically. The most likely place is right before a
firmware reset request.

Submitted by: kib@
MFC after: 1 week
Sponsored by: Mellanox Technologies


# a94a63f0 09-Jul-2017 Warner Losh <imp@FreeBSD.org>

An MMC/SD/SDIO stack using CAM

Implement the MMC/SD/SDIO protocol within a CAM framework. CAM's
flexible queueing will make it easier to write non-storage drivers
than the legacy stack. SDIO drivers from both the kernel and as
userland daemons are possible, though much of that functionality will
come later.

Some of the CAM integration isn't complete (there are sleeps in the
device probe state machine, for example), but those minor issues can
be improved in-tree more easily than out of tree and shouldn't gate
progress on other fronts. Appologies to reviews if specific items
have been overlooked.

Submitted by: Ilya Bakulin
Reviewed by: emaste, imp, mav, adrian, ian
Differential Review: https://reviews.freebsd.org/D4761

merge with first commit, various compile hacks.


# c99b67a7 19-Jun-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Utilize SYSROOT from r320119 in places where DESTDIR may be wanting WORLDTMP.

Since buildenv exports SYSROOT all of these uses will now look in
WORLDTMP by default.

sys/boot/efi/loader/Makefile
A LIBSTAND hack is no longer required for buildenv.

MFC after: 2 weeks
Sponsored by: Dell EMC Isilon


# a7dc3128 24-Apr-2017 Brooks Davis <brooks@FreeBSD.org>

Remove the NATM framework including the en(4), fatm(4), hatm(4), and
patm(4) devices.

Maintaining an address family and framework has real costs when we make
infrastructure improvements. In the case of NATM we support no devices
manufactured in the last 20 years and some will not even work in modern
motherboards (some newer devices that patm(4) could be updated to
support apparently exist, but we do not currently have support).

With this change, support remains for some netgraph modules that don't
require NATM support code. It is unclear if all these should remain,
though ng_atmllc certainly stands alone.

Note well: FreeBSD 11 supports NATM and will continue to do so until at
least September 30, 2021. Improvements to the code in FreeBSD 11 are
certainly welcome.

Reviewed by: philip
Approved by: harti


# 72dec079 16-Mar-2017 Marius Strobl <marius@FreeBSD.org>

- Add support for eMMC "partitions". Besides the user data area, i. e.
the default partition, eMMC v4.41 and later devices can additionally
provide up to:
1 enhanced user data area partition
2 boot partitions
1 RPMB (Replay Protected Memory Block) partition
4 general purpose partitions (optionally with a enhanced or extended
attribute)

Of these "partitions", only the enhanced user data area one actually
slices the user data area partition and, thus, gets handled with the
help of geom_flashmap(4). The other types of partitions have address
space independent from the default partition and need to be switched
to via CMD6 (SWITCH), i. e. constitute a set of additional "disks".

The second kind of these "partitions" doesn't fit that well into the
design of mmc(4) and mmcsd(4). I've decided to let mmcsd(4) hook all
of these "partitions" up as disk(9)'s (except for the RPMB partition
as it didn't seem to make much sense to be able to put a file-system
there and may require authentication; therefore, RPMB partitions are
solely accessible via the newly added IOCTL interface currently; see
also below). This approach for one resulted in cleaner code. Second,
it retains the notion of mmcsd(4) children corresponding to a single
physical device each. With the addition of some layering violations,
it also would have been possible for mmc(4) to add separate mmcsd(4)
instances with one disk each for all of these "partitions", however.
Still, both mmc(4) and mmcsd(4) share some common code now e. g. for
issuing CMD6, which has been factored out into mmc_subr.c.

Besides simply subdividing eMMC devices, some Intel NUCs having UEFI
code in the boot partitions etc., another use case for the partition
support is the activation of pseudo-SLC mode, which manufacturers of
eMMC chips typically associate with the enhanced user data area and/
or the enhanced attribute of general purpose partitions.

CAVEAT EMPTOR: Partitioning eMMC devices is a one-time operation.

- Now that properly issuing CMD6 is crucial (so data isn't written to
the wrong partition for example), make a step into the direction of
correctly handling the timeout for these commands in the MMC layer.
Also, do a SEND_STATUS when CMD6 is invoked with an R1B response as
recommended by relevant specifications. However, quite some work is
left to be done in this regard; all other R1B-type commands done by
the MMC layer also should be followed by a SEND_STATUS (CMD13), the
erase timeout calculations/handling as documented in specifications
are entirely ignored so far, the MMC layer doesn't provide timeouts
applicable up to the bridge drivers and at least sdhci(4) currently
is hardcoding 1 s as timeout for all command types unconditionally.
Let alone already available return codes often not being checked in
the MMC layer ...

- Add an IOCTL interface to mmcsd(4); this is sufficiently compatible
with Linux so that the GNU mmc-utils can be ported to and used with
FreeBSD (note that due to the remaining deficiencies outlined above
SANITIZE operations issued by/with `mmc` currently most likely will
fail). These latter will be added to ports as sysutils/mmc-utils in
a bit. Among others, the `mmc` tool of the GNU mmc-utils allows for
partitioning eMMC devices (tested working).

- For devices following the eMMC specification v4.41 or later, year 0
is 2013 rather than 1997; so correct this for assembling the device
ID string properly.

- Let mmcsd.ko depend on mmc.ko. Additionally, bump MMC_VERSION as at
least for some of the above a matching pair is required.

- In the ACPI front-end of sdhci(4) describe the Intel eMMC and SDXC
controllers as such in order to match the PCI one.
Additionally, in the entry for the 80860F14 SDXC controller remove
the eMMC-only SDHCI_QUIRK_INTEL_POWER_UP_RESET.

OKed by: imp
Submitted by: ian (mmc_switch_status() implementation)


# 28d60d6a 12-Mar-2017 Warner Losh <imp@FreeBSD.org>

Convert include over to SRCTOP

Use SRCTOP in place of .CURDIR/.. as appropriate. The hand-crafted
relative paths for the "links" option remain, though, since those are
relative to /usr/include/sys/<blah> not to the source tree.

Differential Revision: https://reviews.freebsd.org/D9932
Sponsored by: Netflix
Silence On: arch@ (twice)


# 9622c93a 14-Dec-2016 Sepherosa Ziehau <sephe@FreeBSD.org>

hyperv: Allow userland to ro-mmap reference TSC page

This paves way to implement VDSO for the enlightened time counter.

Reviewed by: kib
MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8768


# 34ecf418 02-Dec-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Create the /usr/lib/include symlink as relative.

This ugly code is done to avoid assuming LIBDIR is 2 components
deep.

Reported by: jhb


# 168fce73 14-Nov-2016 Sepherosa Ziehau <sephe@FreeBSD.org>

hyperv/vss: Add driver and tools for VSS

VSS stands for "Volume Shadow Copy Service". Unlike virtual machine
snapshot, it only takes snapshot for the virtual disks, so both
filesystem and applications have to aware of it, and cooperate the
whole VSS process.

This driver exposes two device files to the userland:

/dev/hv_fsvss_dev

Normally userland programs should _not_ mess with this device file.
It is currently used by the hv_vss_daemon(8), which freezes and
thaws the filesystem. NOTE: currently only UFS is supported, if
the system mounts _any_ other filesystems, the hv_vss_daemon(8)
will veto the VSS process.

If hv_vss_daemon(8) was disabled, then this device file must be
opened, and proper ioctls must be issued to keep the VSS working.

/dev/hv_appvss_dev

Userland application can opened this device file to receive the
VSS freeze notification, hold the VSS for a while (mainly to flush
application data to filesystem), release the VSS process, and
receive the VSS thaw notification i.e. applications can run again.

The VSS will still work, even if this device file is not opened.
However, only filesystem consistency is promised, if this device
file is not opened or is not operated properly.

hv_vss_daemon(8) is started by devd(8) by default. It can be disabled
by editting /etc/devd/hyperv.conf.

Submitted by: Hongjiang Zhang <honzhan microsoft com>
Reviewed by: kib, mckusick
MFC after: 3 weeks
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8224


# 50875ed2 15-Oct-2016 Marcel Moolenaar <marcel@FreeBSD.org>

Re-apply change 306811 or alternatively, revert change 307385.


# 9ffbf09f 15-Oct-2016 Marcel Moolenaar <marcel@FreeBSD.org>

Revert change 306811 so that the change can be re-done using
svn copy instead of svn move. This to preserve history on
the originals headers as well.


# dca5dd68 12-Oct-2016 Andriy Gapon <avg@FreeBSD.org>

install header files required development with libzfs_core

libzfs_core provides a rather limited but committed (stable) interface
for working with ZFS. We install libzfs_core shared library but we do
not install header files required for developing programs that use
the library. This change is to install the required header files
libzfs_core.h, libnvpair.h and sys/nvpair.h.

The headers are installed into the same locations as on illumos.

Reviewed by: mav, markj
Differential Revision: https://reviews.freebsd.org/D8005


# 0974f66d 07-Oct-2016 Marcel Moolenaar <marcel@FreeBSD.org>

In order to allow mkimg(1) (and other tools) to become a build tool
that can be compiled on various OSes (including on older versions
of FreeBSD), make it possible to have it include the partitioning
scheme definitions without pulling in FreeBSD specifics.
In particular this means:
o move the scheme definitions iand related defines to header files
under sys/disk,
o make them (more) portable by using uint#_t (where applicable)
and renaming defines so that they at least have a good prefix,
o make the new headers stand-alone so that they don't need FreeBSD
definitions, like struct uuid(*)
o keep the original headers for compatibility, but rewrite them to
get the scheme definitions from <sys/disk/$scheme.h>.

(*) since UUID/GUID type definitions are non-portable and the GPT
scheme uses them, make it possible to have the scheme definitions
use an external type by allowing consumers of the header to set
GPT_UUID_TYPE. When GPT_UUID_TYPE has not been defined, the header
will use it's own type definition, which is the same as struct uuid.
The gpt_uuid_t typedef is created to abstract the details and allows
consumers to refer to a single type.

There is not conflict between the partitioning scheme headers and
what is defined in them. All headers can be included in the same
source files.

Note: consumers of the old headers have not been changed yet. Such
will be done if and when needed/beneficial.

Reviewed by: imp, jhb
MFC after: 1 month
Sponsored by: Bracket Computing


# 2b3f6d66 11-Sep-2016 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

Add evdev protocol implementation

evdev is a generic input event interface compatible with Linux
evdev API at ioctl level. It allows using unmodified (apart from
header name) input evdev drivers in Xorg, Wayland, Qt.

This commit has only generic kernel API. evdev support for individual
hardware drivers like ukbd, ums, atkbd, etc. will be committed later.

Project was started by Jakub Klama as part of GSoC 2014. Jakub's
evdev implementation was later used as a base, updated and finished
by Vladimir Kondratiev.

Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru>
Reviewed by: adrian, hans
Differential Revision: https://reviews.freebsd.org/D6998


# f3fbd1c0 23-Jul-2016 Dimitry Andric <dim@FreeBSD.org>

Vendor import of lldb release_39 branch r276489:
https://llvm.org/svn/llvm-project/lldb/branches/release_39@276489


# 2b6b257f 23-Jul-2016 Dimitry Andric <dim@FreeBSD.org>

Vendor import of clang release_39 branch r276489:
https://llvm.org/svn/llvm-project/cfe/branches/release_39@276489


# f24c011b 10-Jun-2016 Warner Losh <imp@FreeBSD.org>

Commit the bits of nda that were missed. This should fix the build.

Approved by: re@


# df0cfa3b 01-Jun-2016 Kurt Lidl <lidl@FreeBSD.org>

Reviewed by: rpaulo
Approved by: rpaulo
Obtained from: NetBSD external/bsd/blacklist @ 20160409
Relnotes: YES
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D5912


# 9ea89f32 20-May-2016 Bryan Drewery <bdrewery@FreeBSD.org>

WITH_META_MODE: Disable cookie handling for include installation.

Using a cookie with meta mode causes it to *not rerun* (as normal make
does) unless the command changes or filemon-detected files change.

After all of the work done here it turns out that skipping installation
is dangerous since the install commands use <dir>/*.h. The actual build
command is not changing but the files installed are changing by the mere
act of adding a new header into the source tree. Thus we cannot safely
use meta mode logic here. It must always rerun and install the headers.
The install -C flag at least prevents churning timestamps when
installing a header that was already present.

Sponsored by: EMC / Isilon Storage Division


# 94086cea 14-Apr-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Rework META_TARGETS so that it automatically adds META_DEPS to the targets.

This will only be done if the target is defined, so if the target is
defined after bsd.sys.mk is included then it needs to manually add
${META_DEPS} still.

Sponsored by: EMC / Isilon Storage Division


# b7d28aff 11-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

META_MODE: Simplify the META_COOKIE handling to use .USE/.USEBEFORE.

Extend it to other cases of meta mode cookies so they get the proper rm
cookie behavior when a .meta file detects it needs to rebuild and fails.

Sponsored by: EMC / Isilon Storage Division


# f883c0ad 11-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

DIRDEPS_BUILD: None of this is needed anymore.

This file is using stage-install, so all of the .dirdep files
are properly handled. The cookie handling also properly
handles rebuilds with .meta files. DESTDIR from bsd.sys.mk is also
respected for staging. This logic came in r239572.

Sponsored by: EMC / Isilon Storage Division


# 588f5cb8 11-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

DIRDEPS_BUILD: Remove the cookie when target is out-of-date.

The meta file may decide the target is out of date but nothing
ensures that the *next* build will build this target if it
fails this time for some reason; it is still out-of-date
until it succeeds.

Convert the include/ cookie usage to the global versions.

Sponsored by: EMC / Isilon Storage Division


# bf24694c 08-Feb-2016 Glen Barber <gjb@FreeBSD.org>

Ensure include/ is properly tagged in the METALOG.

Noticed by: des
Sponsored by: The FreeBSD Foundation


# d519cedb 21-Jan-2016 Gleb Smirnoff <glebius@FreeBSD.org>

Provide new socket option TCP_CCALGOOPT, which stands for TCP congestion
control algorithm options. The argument is variable length and is opaque
to TCP, forwarded directly to the algorithm's ctl_output method.

Provide new includes directory netinet/cc, where algorithm specific
headers can be installed.

The new API doesn't yet have any in tree consumers.

The original code written by lstewart.
Reviewed by: rrs, emax
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D711


# 9e6d3549 06-Jan-2016 Dimitry Andric <dim@FreeBSD.org>

Vendor import of lldb trunk r256945:
https://llvm.org/svn/llvm-project/lldb/trunk@256945


# 5a5c549f 30-Dec-2015 Dimitry Andric <dim@FreeBSD.org>

Vendor import of lld trunk r256633:
https://llvm.org/svn/llvm-project/lld/trunk@256633


# d32e83c2 03-Dec-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Move obscure lib/ installation of /usr/lib/include symlink to include/.

This avoids the need for an afterinstall: hook and a check for LIBRARIES_ONLY.
It also now respects INCLUDEDIR.

This came in r249484.

Sponsored by: EMC / Isilon Storage Division


# a9f9ec24 03-Dec-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Replace ln -s calls with INSTALL_SYMLINK

Sponsored by: EMC / Isilon Storage Division


# 8e8319a6 25-Nov-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Stop building vers.c in include/ and only build the needed osreldate.h.

Because of how osreldate.h was being built with newvers.sh, which always
spat out a vers.c dependent on SVN or git, the meta mode build was
considering osreldate.h to depend on the current git or SVN index. This
would lead to entire tree rebuilds when modifying git's index. There's
no reason to be generating vers.c here so just skip it.

While here, in mk-osreldate.sh rename PARAM_H to proper PARAMFILE (which
newvers.sh already has a default for) and remove unneeded export.

Sponsored by: EMC / Isilon Storage Division


# dbf5bd50 18-Nov-2015 Bryan Drewery <bdrewery@FreeBSD.org>

META MODE: Fix changing what "MACHINE=host" means when computing dirdeps for include/.

The _SKIP_BUILD is used while computing DIRDEPS. If MACHINE=host is passed in
then this logic was replacing 'MACHINE' with a literal value of the host arch,
which then caused the dirdeps graph to be wrong since it no longer had the
literal 'host' for any of include's dependencies.

This is a NOP currently since include/ is not usually built with MACHINE=host.

Sponsored by: EMC / Isilon Storage Division


# 948f327e 13-Nov-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Rename META_MODE option to DIRDEPS_BUILD

This allows META_FILES option to be renamed META_MODE.
Also add META_COOKIE_TOUCH for use in targets that can benefit
from a cookie when in meta mode.

Differential Revision: https://reviews.freebsd.org/D4153
Reviewed by: bdrewery


# aa92269e 15-Oct-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Add more SUBDIR_PARALLEL.

MFC after: 3 weeks
Sponsored by: EMC / Isilon Storage Division


# c364bbdf 03-Oct-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Mute this cookie as well


# 4af9d62a 03-Oct-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Avoid make compatibility mode issues with creating cookies from r287844 and r287848.

Also hide the cookie creation.

Suggested by: imp, Daniel O'Connor


# df884b5c 18-Sep-2015 Bryan Drewery <bdrewery@FreeBSD.org>

META_MODE: Avoid command changing in 2nd build.

If the command to be ran changes then a rebuild is caused. Checking
exists(${DESTDIR}...) from make results in this on the 2nd and
possibly subsequent builds due to staging during build. Avoid this
by always running the existence check in the make sh command.

Sponsored by: EMC / Isilon Storage Division


# 9c7aaa01 15-Sep-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Similar to r287844, create 'symlinks' cookie in proper place with -j and META_MODE.

Sponsored by: EMC / Isilon Storage Division


# a2fdfab0 15-Sep-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Create 'copies' cookie in proper place in META_MODE.

With -j the cookie would be created in CURDIR/sys/teken rather than OBJDIR.

Sponsored by: EMC / Isilon Storage Division


# 772e66a6 16-Apr-2015 Gleb Smirnoff <glebius@FreeBSD.org>

Move ALTQ from contrib to net/altq. The ALTQ code is for many years
discontinued by its initial authors. In FreeBSD the code was already
slightly edited during the pf(4) SMP project. It is about to be edited
more in the projects/ifnet. Moving out of contrib also allows to remove
several hacks to the make glue.

Reviewed by: net@


# fb911942 24-Mar-2015 Dimitry Andric <dim@FreeBSD.org>

Vendor import of lld trunk r233088:
https://llvm.org/svn/llvm-project/lld/trunk@233088


# 7e4a2c28 04-Feb-2015 Enji Cooper <ngie@FreeBSD.org>

Sort the entries by build knob, then MACHINE_ARCH like other areas of the tree

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# 8b77741e 24-Jan-2015 Enji Cooper <ngie@FreeBSD.org>

Make install cuse headers if MK_CUSE != no

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# c05bafc5 25-Dec-2014 Poul-Henning Kamp <phk@FreeBSD.org>

Deorbit the IEEE-488/GPIB support.


# f9e4bda4 02-Dec-2014 Enji Cooper <ngie@FreeBSD.org>

bsm needs to be further factored out of sys/sys/ucred.h, sys/sys/sysproto.h, etc


# e7d836f7 29-Nov-2014 Enji Cooper <ngie@FreeBSD.org>

Make nfs server components conditional according to MK_NFS_SERVER


# b4f9f0de 29-Nov-2014 Enji Cooper <ngie@FreeBSD.org>

Install bsm headers if MK_AUDIT != no


# ebb7b8db 26-Nov-2014 Enji Cooper <ngie@FreeBSD.org>

Honor MK_ATM, MK_CUSE, and MK_NETGRAPH_SUPPORT

Shuffle around conditionals so they're better sorted


# 0341ccf2 26-Nov-2014 Enji Cooper <ngie@FreeBSD.org>

Clean up more usb related files when MK_USB == no when dealing with
manpages, libraries, and binaries


# 6bd00083 24-Oct-2014 Rui Paulo <rpaulo@FreeBSD.org>

Fix the build by installing acpi_hpet.h correctly.

Submitted by: jase
MFC after: 1 week


# 3149cc9d 24-Oct-2014 Rui Paulo <rpaulo@FreeBSD.org>

HPET: create /dev/hpetN as a way to access HPET from userland.

In some cases, TSC is broken and special applications might benefit
from memory mapping HPET and reading the registers to count time.
Most often the main HPET counter is 32-bit only[1], so this only gives
the application a 300 second window based on the default HPET
interval.
Other applications, such as Intel's DPDK, expect /dev/hpet to be
present and use it to count time as well.

Although we have an almost userland version of gettimeofday() which
uses rdtsc in userland, it's not always possible to use it, depending
on how broken the multi-socket hardware is.

Install the acpi_hpet.h so that applications can use the HPET register
definitions.

[1] I haven't found a system where HPET's main counter uses more than
32 bit. There seems to be a discrepancy in the Intel documentation
(claiming it's a 64-bit counter) and the actual implementation (a
32-bit counter in a 64-bit memory area).

MFC after: 1 week
Relnotes: yes


# 478290db 30-Sep-2014 Enji Cooper <ngie@FreeBSD.org>

Check in first src/tests snapshot from NetBSD anoncvs

Sources were obtained like so:

% export CVSROOT="anoncvs@anoncvs.NetBSD.org:/cvsroot"
% cvs -z9 co -D "09/30/2014 20:45" -P src/tests
% mv src/tests/* tests/dist/.

'*CVS*' has been added to svn:ignore to ease updating periodically from
upstream

Some line ending issues had to be resolved with test outputs and scripts
via dos2unix and by deleting the eol-style property set in usr.bin/sort

Discussed with: rpaulo
Sponsored by: EMC / Isilon Storage Division


# dd987372 13-Jun-2014 Tijl Coosemans <tijl@FreeBSD.org>

Don't install GSS-API headers when the GSSAPI option has been disabled.
Some ports assume GSS-API is supported when they find the headers.

PR: 189156
Submitted by: Garrett Cooper <yanegomi@gmail.com>


# fa0f6e62 23-May-2014 Hans Petter Selasky <hselasky@FreeBSD.org>

Initial import of character device in userspace support for FreeBSD.
The CUSE library is a wrapper for the devfs kernel functionality which
is exposed through /dev/cuse . In order to function the CUSE kernel
code must either be enabled in the kernel configuration file or loaded
separately as a module. Currently none of the committed items are
connected to the default builds, except for installing the needed
header files. The CUSE code will be connected to the default world and
kernel builds in a follow-up commit.

The CUSE module was written by Hans Petter Selasky, somewhat inspired
by similar functionality found in FUSE. The CUSE library can be used
for many purposes. Currently CUSE is used when running Linux kernel
drivers in user-space, which need to create a character device node to
communicate with its applications. CUSE has full support for almost
all devfs functionality found in the kernel:
- kevents
- read
- write
- ioctl
- poll
- open
- close
- mmap
- private per file handle data

Requested by several people. Also see "multimedia/cuse4bsd-kmod" in
ports.


# 0a117278 16-May-2014 Simon J. Gerraty <sjg@FreeBSD.org>

Actually avoid stage_includes target


# 1a682d2c 16-May-2014 Simon J. Gerraty <sjg@FreeBSD.org>

We want to use stage_includes as a hook, so use NO_STAGE_INCLUDES
in include/Makefile to suppress normal behavior


# c6063d0d 05-May-2014 Warner Losh <imp@FreeBSD.org>

Use src.opts.mk in preference to bsd.own.mk except where we need stuff
from the latter.


# 45c203fc 14-Mar-2014 Gleb Smirnoff <glebius@FreeBSD.org>

Remove AppleTalk support.

AppleTalk was a network transport protocol for Apple Macintosh devices
in 80s and then 90s. Starting with Mac OS X in 2000 the AppleTalk was
a legacy protocol and primary networking protocol is TCP/IP. The last
Mac OS X release to support AppleTalk happened in 2009. The same year
routing equipment vendors (namely Cisco) end their support.

Thus, AppleTalk won't be supported in FreeBSD 11.0-RELEASE.


# 2c284d93 13-Mar-2014 Gleb Smirnoff <glebius@FreeBSD.org>

Remove IPX support.

IPX was a network transport protocol in Novell's NetWare network operating
system from late 80s and then 90s. The NetWare itself switched to TCP/IP
as default transport in 1998. Later, in this century the Novell Open
Enterprise Server became successor of Novell NetWare. The last release
that claimed to still support IPX was OES 2 in 2007. Routing equipment
vendors (e.g. Cisco) discontinued support for IPX in 2011.

Thus, IPX won't be supported in FreeBSD 11.0-RELEASE.


# 4874c080 05-Dec-2013 Aleksandr Rybalko <ray@FreeBSD.org>

Install teken.h for userland.
Part of VT(9) project merge.
Reviewed by: nwhitehorn
MFC_to_10_after: re approval

Sponsored by: The FreeBSD Foundation


# 912ce912 03-Nov-2013 Peter Wemm <peter@FreeBSD.org>

Remove the WITH_LIBICONV_COMPAT hack that seems to do more harm than
good. This caused libc to spoof the ports libiconv namespace and
provide a colliding libiconv.so.3 to fool rtld. This should have
been removed some time ago.


# b6883113 31-Oct-2013 Sean Bruno <sbruno@FreeBSD.org>

Install include files for netpfil/pf when requested by the Makefile

Reviewed by: glebius


# 75bf2db3 27-Oct-2013 Gleb Smirnoff <glebius@FreeBSD.org>

Move new pf includes to the pf directory. The pfvar.h remain
in net, to avoid compatibility breakage for no sake.

The future plan is to split most of non-kernel parts of
pfvar.h into pf.h, and then make pfvar.h a kernel only
include breaking compatibility.

Discussed with: bz


# 43425d65 12-Oct-2013 Simon J. Gerraty <sjg@FreeBSD.org>

In meta mode touch targets like copies so we don't needlessly repeat them.


# 56b72efe 30-Sep-2013 Dag-Erling Smørgrav <des@FreeBSD.org>

Remove BIND.

Approved by: re (gjb)


# 0210509a 28-Sep-2013 Ian Lepore <ian@FreeBSD.org>

Allow the path to the system source directory to be passed in to
newvers.sh. Pass it in from include/Makefile. If it isn't passed in,
fall back to the old logic of using dirname $0.

Using dirname $0 does not yield the path to the script if it was
sourced in from another script in another directory; you end up with
the parent script's path. That was causing newvers.sh to look one
level below the FreeBSD src/ directory when building osreldate.h and it
may find something like a git or svn repo there that has nothing to do
with FreeBSD.

PR: 174422
Approved by: re ()
MFC after: 2 weeks


# dd5f1297 22-Sep-2013 Ian Lepore <ian@FreeBSD.org>

Launch the bourne shell using "sh" rather than "${SHELL}", as the latter
may come in from the environment and reflect the user's interactive shell.
Using bare "sh" is the dominant pattern in existing makefiles.

MFC this together with r255775.

Approved by: re ()
MFC after: 2 weeks


# 16b0ad07 22-Sep-2013 Ian Lepore <ian@FreeBSD.org>

Launch the shell, passing it the path to the mk-osreldate script, rather
than launching the script directly and relying on #! to launch the shell.
This avoids problems when the source is mounted with the noexec flag.

MFC this together with r255775.

Approved by: re (kib)
MFC after: 2 weeks


# bfe5c479 21-Sep-2013 Ian Lepore <ian@FreeBSD.org>

Create a separate script to generate osreldate.h rather than sourcing
newvers.sh into a temporary subshell with inline make rules.

Using a separate script fixes a variety of problems, including establishing
the correct dependencies in the makefiles. It also eliminates a problem
with the way newvers.sh uses `realpath $0`, because $0 expands differently
within a script sourced into a rule in a makefile depending on the version
of make and of /bin/sh being used. The latter can cause build breakage in a
cross-build environment, and can also make it difficult to compile 10.0 on
older pre-10.0 systems.

PR: 160646 174422
Submitted by: Garrett Cooper <yaneurabeya@gmail.com>
Approved by: re (gjb)
MFC after: 2 weeks


# 0ff204bb 13-Aug-2013 Peter Wemm <peter@FreeBSD.org>

The iconv in libc did two things - implement the standard APIs, the GNU
extensions and also tried to be link time compatible with ports libiconv.
This splits that functionality and enables the parts that shouldn't
interfere with the port by default.

WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, linker
symbols and even a stub libiconv.so.3 that are good enough to be able
to 'pkg delete -f libiconv' on a running system and reasonably expect it
to work.

I have tortured many machines over the last few days to try and reduce
the possibilities of foot-shooting as much as I can. I've successfully
recompiled to enable and disable the libiconv_compat modes, ports that use
libiconv alongside system iconv etc. If you don't enable the
WITH_LIBICONV_COMPAT switch, they don't share symbol space.

This is an extension of behavior on other system. iconv(3) is a standard
libc interface and libiconv port expects to be able to run alongside it on
systems that have it.

Bumped osreldate.


# 237abf0c 28-Jun-2013 Davide Italiano <davide@FreeBSD.org>

- Trim an unused and bogus Makefile for mount_smbfs.
- Reconnect with some minor modifications, in particular now selsocket()
internals are adapted to use sbintime units after recent'ish calloutng
switch.


# 06bee445 01-Jun-2013 Ed Schouten <ed@FreeBSD.org>

Move <stdatomic.h> into sys/sys/.

This will allow us to use C11 atomics in kernelspace, although it will
need to be included as <sys/stdatomic.h>.


# 50c77c6e 21-May-2013 Ed Schouten <ed@FreeBSD.org>

Add <uchar.h>.

The <uchar.h> header, part of C11, adds a small number of utility
functions for 16/32-bit "universal" characters, which may or may not be
UTF-16/32. As our wchar_t is already ISO 10646, simply add light-weight
wrappers around wcrtomb() and mbrtowc().

While there, also add (non-yet-standard) _l functions, similar to the
ones we already have for the other locale-dependent functions.

Reviewed by: theraven


# fb0cb808 19-Apr-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Add stage-install.sh so we can do away with the need to have
$STAGE_OBJTOP/include for src/include.


# b068afb4 15-Feb-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Avoid problems with read-only osreldate.h


# 0895e9c7 05-Feb-2013 John Baldwin <jhb@FreeBSD.org>

Install <dev/agp/agpreg.h> and <dev/pci/pcireg.h> as userland headers
in /usr/include.

MFC after: 2 weeks


# 2e564269 17-Oct-2012 Attilio Rao <attilio@FreeBSD.org>

Disconnect non-MPSAFE SMBFS from the build in preparation for dropping
GIANT from VFS. In addition, disconnect also netsmb, which is a base
requirement for SMBFS.

In the while SMBFS regular users can use FUSE interface and smbnetfs
port to work with their SMBFS partitions.

Also, there are ongoing efforts by vendor to support in-kernel smbfs,
so there are good chances that it will get relinked once properly locked.

This is not targeted for MFC.


# 4c276561 17-Oct-2012 Attilio Rao <attilio@FreeBSD.org>

Include a piece that was left out during r241629.

Pointy hat to: me


# a42ac676 17-Oct-2012 Attilio Rao <attilio@FreeBSD.org>

Disconnect non-MPSAFE NTFS from the build in preparation for dropping
GIANT from VFS. This code is particulary broken and fragile and other
in-kernel implementations around, found in other operating systems,
don't really seem clean and solid enough to be imported at all.
If someone wants to reconsider in-kernel NTFS implementation for
inclusion again, a fair effort for completely fixing and cleaning it
up is expected.

In the while NTFS regular users can use FUSE interface and ntfs-3g
port to work with their NTFS partitions.

This is not targeted for MFC.


# e6116d5b 17-Oct-2012 Attilio Rao <attilio@FreeBSD.org>

Disconnect non-MPSAFE NWFS from the build in preparation for dropping
GIANT from VFS. In addition, disconnect also netncp, which is a base
requirement for NWFS.

In the possibility of a future maintenance of the code and later
readd to the FreeBSD base, maybe we should think about a better location
for netncp. I'm not entirely sure the / top location is actually right,
however I will let network people to comment on that more specifically.

This is not targeted for MFC.


# 55793cdc 16-Oct-2012 Attilio Rao <attilio@FreeBSD.org>

Disconnect non-MPSAFE PORTALFS from the build in preparation for dropping
GIANT from VFS.

This is not targeted for MFC.


# a724927c 17-Sep-2012 Jim Harris <jimharris@FreeBSD.org>

Integrate nvmecontrol(8) into the amd64 and i386 builds.

This includes adding NVMe header files to /usr/include/dev/nvme.

Sponsored by: Intel


# 3b3a8eb9 14-Sep-2012 Gleb Smirnoff <glebius@FreeBSD.org>

o Create directory sys/netpfil, where all packet filters should
reside, and move there ipfw(4) and pf(4).

o Move most modified parts of pf out of contrib.

Actual movements:

sys/contrib/pf/net/*.c -> sys/netpfil/pf/
sys/contrib/pf/net/*.h -> sys/net/
contrib/pf/pfctl/*.c -> sbin/pfctl
contrib/pf/pfctl/*.h -> sbin/pfctl
contrib/pf/pfctl/pfctl.8 -> sbin/pfctl
contrib/pf/pfctl/*.4 -> share/man/man4
contrib/pf/pfctl/*.5 -> share/man/man5

sys/netinet/ipfw -> sys/netpfil/ipfw

The arguable movement is pf/net/*.h -> sys/net. There are
future plans to refactor pf includes, so I decided not to
break things twice.

Not modified bits of pf left in contrib: authpf, ftp-proxy,
tftp-proxy, pflogd.

The ipfw(4) movement is planned to be merged to stable/9,
to make head and stable match.

Discussed with: bz, luigi


# 7750ad47 22-Aug-2012 Marcel Moolenaar <marcel@FreeBSD.org>

Sync FreeBSD's bmake branch with Juniper's internal bmake branch.

Requested by: Simon Gerraty <sjg@juniper.net>


# 2e0c6b7a 19-Jun-2012 David E. O'Brien <obrien@FreeBSD.org>

Install filemon.h into /usr/include for userland consumption.


# 7f725bcd 17-May-2012 Grzegorz Bernacki <gber@FreeBSD.org>

Import work done under project/nand (@235533) into head.

The NAND Flash environment consists of several distinct components:
- NAND framework (drivers harness for NAND controllers and NAND chips)
- NAND simulator (NANDsim)
- NAND file system (NAND FS)
- Companion tools and utilities
- Documentation (manual pages)

This work is still experimental. Please use with caution.

Obtained from: Semihalf
Supported by: FreeBSD Foundation, Juniper Networks


# b80dcb55 10-Mar-2012 Konstantin Belousov <kib@FreeBSD.org>

Remove fifo.h. The only used function declaration from the header is
migrated to sys/vnode.h.

Submitted by: gianni


# a8ed63bb 04-Mar-2012 David Chisnall <theraven@FreeBSD.org>

Reapply 227753 (xlocale cleanup), plus some fixes so that it passes build
universe with gcc.

Approved by: dim (mentor)


# b74cf6dc 14-Feb-2012 Dimitry Andric <dim@FreeBSD.org>

Revert r231673 and r231682 for now, until we can run a full make
universe with them. Sorry for the breakage.

Pointy hat to: me and brooks


# 82dd5016 13-Feb-2012 David Chisnall <theraven@FreeBSD.org>

Cleanup of xlocale:

- Address performance regressions encountered by das@ by caching per-thread
data in TLS where available.
- Add a __NO_TLS flag to cdefs.h to indicate where not available.
- Reorganise the xlocale.h definitions into xlocale/*.h so that they can be
included from multiple places.
- Export the POSIX2008 subset of xlocale when POSIX2008 says it should be
exported, independently of whether xlocale.h is included.
- Fix the bug where programs using ctype functions always assumed ASCII unless
recompiled.
- Fix some style(9) violations.

Reviewed by: brooks (mentor)
Approved by: dim (mentor)


# 367bebd4 25-Dec-2011 Ed Schouten <ed@FreeBSD.org>

Add <stdalign.h> and <stdnoreturn.h>.

Even though these header files make little sense to me, they are part of
the standard. By including these header files, you can simply use
`alignas', `alignof' and `noreturn' instead of the underscore-prefixed
versions.


# d1b02bee 24-Dec-2011 David Chisnall <theraven@FreeBSD.org>

...and actually install it.

Approved by: dim (mentor)


# 3c87aa1d 20-Nov-2011 David Chisnall <theraven@FreeBSD.org>

Implement xlocale APIs from Darwin, mainly for use by libc++. This adds a
load of _l suffixed versions of various standard library functions that use
the global locale, making them take an explicit locale parameter. Also
adds support for per-thread locales. This work was funded by the FreeBSD
Foundation.

Please test any code you have that uses the C standard locale functions!

Reviewed by: das (gdtoa changes)
Approved by: dim (mentor)


# a01fdfce 26-Sep-2011 Konstantin Belousov <kib@FreeBSD.org>

Install ciss(4) ioctl header (together with other .h files from sys/dev/ciss).

PR: kern/109813
Discussued with: Alex Samorukov <samm os2 kiev ua>
(smartmontools maintainer)
MFC after: 1 week


# 89b17223 24-Mar-2011 Alexander Motin <mav@FreeBSD.org>

MFgraid/head:
Add new RAID GEOM class, that is going to replace ataraid(4) in supporting
various BIOS-based software RAIDs. Unlike ataraid(4) this implementation
does not depend on legacy ata(4) subsystem and can be used with any disk
drivers, including new CAM-based ones (ahci(4), siis(4), mvs(4), ata(4)
with `options ATA_CAM`). To make code more readable and extensible, this
implementation follows modular design, including core part and two sets
of modules, implementing support for different metadata formats and RAID
levels.

Support for such popular metadata formats is now implemented:
Intel, JMicron, NVIDIA, Promise (also used by AMD/ATI) and SiliconImage.

Such RAID levels are now supported:
RAID0, RAID1, RAID1E, RAID10, SINGLE, CONCAT.

For any all of these RAID levels and metadata formats this class supports
full cycle of volume operations: reading, writing, creation, deletion,
disk removal and insertion, rebuilding, dirty shutdown detection
and resynchronization, bad sector recovery, faulty disks tracking,
hot-spare disks. For Intel and Promise formats there is support multiple
volumes per disk set.

Look graid(8) manual page for additional details.

Co-authored by: imp
Sponsored by: Cisco Systems, Inc. and iXsystems, Inc.


# ad30f8e7 24-Feb-2011 Gabor Kovesdan <gabor@FreeBSD.org>

Add the BSD-licensed Citrus iconv to the base system with default off
setting. It can be built by setting the WITH_ICONV knob. While this
knob is unset, the library part, the binaries, the header file and
the metadata files will not be built or installed so it makes no impact
on the system if left turned off.

This work is based on the iconv implementation in NetBSD but a great
number of improvements and feature additions have been included:

- Some utilities have been added. There is a conversion table generator,
which can compare conversion tables to reference data generated by
GNU libiconv. This helps ensuring conversion compatibility.
- UTF-16 surrogate support and some endianness issues have been fixed.
- The rather chaotic Makefiles to build metadata have been refactored
and cleaned up, now it is easy to read and it is also easier to add
support for new encodings.
- A bunch of new encodings and encoding aliases have been added.
- Support for 1->2, 1->3 and 1->4 mappings, which is needed for
transliterating with flying accents as GNU does, like "u.
- Lots of warnings have been fixed, the major part of the code is
now WARNS=6 clean.
- New section 1 and section 5 manual pages have been added.
- Some GNU-specific calls have been implemented:
iconvlist(), iconvctl(), iconv_canonicalize(), iconv_open_into()
- Support for GNU's //IGNORE suffix has been added.
- The "-" argument for stdin is now recognized in iconv(1) as per POSIX.
- The Big5 conversion module has been fixed.
- The iconv.h header files is supposed to be compatible with the
GNU version, i.e. sources should build with base iconv.h and
GNU libiconv. It also includes a macro magic to deal with the
char ** and const char ** incompatibility.
- GNU compatibility: "" or "char" means the current local
encoding in use
- Various cleanups and style(9) fixes.

Approved by: delphij (mentor)
Obtained from: The NetBSD Project
Sponsored by: Google Summer of Code 2009


# 3b5a03b1 17-Feb-2011 Konstantin Belousov <kib@FreeBSD.org>

Install iodev.h.

Reviewed by: attilio
MFC after: 1 week


# 544de89d 01-Nov-2010 John Baldwin <jhb@FreeBSD.org>

Add an x86/include directory to the kernel to hold headers that are common
to amd64, i386, and pc98. The headers are installed to /usr/include/x86
during an installworld, and an 'x86' symlink is created for kernel builds
similar to 'machine' so that the headers can be included as <x86/foo.h>.

Reviewed by: imp


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# 25faff34 23-Aug-2010 Warner Losh <imp@FreeBSD.org>

MFtbemd:

Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want
to test of all the CPUs of a given family conform.


# 8bb23971 13-Jul-2010 Nathan Whitehorn <nwhitehorn@FreeBSD.org>

Connect powerpc64 to the build. It is not presently part of make universe,
which will be added soon.

Reviewed by: imp


# 4ba67500 13-Jul-2010 Roman Divacky <rdivacky@FreeBSD.org>

Update clang to r108243.


# 0883ccd9 04-May-2010 Roman Divacky <rdivacky@FreeBSD.org>

Update clang to r103004.


# 763ed733 14-Mar-2010 Ed Schouten <ed@FreeBSD.org>

Trim down libcompat by removing <regexp.h>.

Erwin ran an exp-run with libcompat and <regexp.h> removed. It turns out
the regexp library is almost entirely unused. In fact, it looks like it
is sometimes used by accident. Because these function names clash with
libc's <regex.h>, some application use both <regex.h> and libcompat,
which means they link against the wrong regex library.

This commit removes the regexp library and reimplements re_comp() and
re_exec() using <regex.h>. It seems the grammar of the regular
expressions accepted by these functions is similar to POSIX EREs.

After this commit, 1 low-profile port will be broken, but the maintainer
already has a patch for it sitting in his mailbox.


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# 8176ad36 03-Mar-2010 Ed Schouten <ed@FreeBSD.org>

Remove last traces of <utmp.h>.


# b3f9d8c8 16-Jan-2010 Edward Tomasz Napierala <trasz@FreeBSD.org>

Add gmountver, disk mount verification GEOM class.

Note that due to e.g. write throttling ('wdrain'), it can stall all the disk
I/O instead of just the device it's configured for. Using it for removable
media is therefore not a good idea.

Reviewed by: pjd (earlier version)


# a627ac61 13-Jan-2010 Ed Schouten <ed@FreeBSD.org>

Implement <utmpx.h>.

The utmpx interface is the standardized interface of the user accounting
database. The standard only defines a subset of the functions that were
present in System V-like systems.

I'd like to highlight some of the traits my implementation has:

- The standard allows the on-disk format to be different than the
in-memory representation (struct utmpx). Most operating systems don't
do this, but we do. This allows us to keep our ABI more stable, while
giving us the opportunity to modify the on-disk format. It also allows
us to use a common file format across different architectures (i.e.
byte ordering).

- Our implementation of pututxline() also updates wtmp and lastlog (now
called utx.log and utx.lastlogin). This means the databases are more
likely to be in sync.

- Care must be taken that our implementation discard any fields that are
not applicable. For example, our DEAD_PROCESS records do not hold a
TTY name. Just a time stamp, a record identifier and a process
identifier. It also guarantees that strings (ut_host, ut_line and
ut_user) are null terminated. ut_id is obviously not null terminated,
because it's not a string.

- The API and its behaviour should be conformant to POSIX, but there may
be things that slightly deviate from the standard. This implementation
uses separate file descriptors when writing to the log files. It also
doesn't use getutxid() to search for a field to overwrite. It uses an
allocation strategy similar to getutxid(), but prevents DEAD_PROCESS
records from accumulating.

Make sure libulog doesn't overwrite the manpages shipped with our C
library. Also keep the symbol list in Symbol.map sorted.

I'll bump __FreeBSD_version later this evening. I first want to convert
everything to <utmpx.h> and get rid of <utmp.h>.


# 9b0f1823 04-Jan-2010 David Xu <davidxu@FreeBSD.org>

Use umtx to implement process sharable semaphore, to make this work,
now type sema_t is a structure which can be put in a shared memory area,
and multiple processes can operate it concurrently.
User can either use mmap(MAP_SHARED) + sem_init(pshared=1) or use sem_open()
to initialize a shared semaphore.
Named semaphore uses file system and is located in /tmp directory, and its
file name is prefixed with 'SEMD', so now it is chroot or jail friendly.
In simplist cases, both for named and un-named semaphore, userland code
does not have to enter kernel to reduce/increase semaphore's count.
The semaphore is designed to be crash-safe, it means even if an application
is crashed in the middle of operating semaphore, the semaphore state is
still safely recovered by later use, there is no waiter counter maintained
by userland code.
The main semaphore code is in libc and libthr only has some necessary stubs,
this makes it possible that a non-threaded application can use semaphore
without linking to thread library.
Old semaphore implementation is kept libc to maintain binary compatibility.
The kernel ksem API is no longer used in the new implemenation.

Discussed on: threads@


# f14ad5fa 28-Nov-2009 Ed Schouten <ed@FreeBSD.org>

Decompose <sys/termios.h>.

The <sys/termios.h> header file is hardlinked to <termios.h>. It
contains both the structures and the flag definitions, but also the C
library interface that's implemented by the C library.

This header file has the typical problem of including too many random
things and being badly ordered. Instead of trying to fix this, decompose
it into two header files:

- <sys/_termios.h>, which contains struct termios and the flags.
- <termios.h>, which includes <sys/_termios.h> and contains the C
library interface.

This means userspace has to include <termios.h> for struct termios,
while kernelspace code has to include <sys/tty.h>. Also add a
<sys/termios.h>, which prints a warning message before including
<termios.h>. I am aware that there are some applications that use this
header file as well.


# ae93ebed 17-Aug-2009 Scott Long <scottl@FreeBSD.org>

Merge files missed in r196285. SVN is simply horrible. Sorry for the
tree breakage.

Approved by: re


# 763fae79 13-Aug-2009 Scott Long <scottl@FreeBSD.org>

ntroduce mfiutil, a basic utility for managing LSI SAS-RAID & Dell PERC5/6
controllers. Controller, array, and drive status can be checked, basic
attributes can be changed, and arrays and spares can be created and deleted.
Controller firmware can also be flashed.

This does not replace MegaCLI, found in ports, as that is officially sanctioned
and supported by LSI and includes vastly more functionality. However, mfiutil
is open source and guaranteed to provide basic functionality, which can be
especially useful if you have a problem and can't get MegaCLI to work.

Approved by: re
Obtained from: Yahoo! Inc.


# 52c9ce25 10-Jul-2009 Scott Long <scottl@FreeBSD.org>

Separate the parallel scsi knowledge out of the core of the XPT, and
modularize it so that new transports can be created.

Add a transport for SATA

Add a periph+protocol layer for ATA

Add a driver for AHCI-compliant hardware.

Add a maxio field to CAM so that drivers can advertise their max
I/O capability. Modify various drivers so that they are insulated
from the value of MAXPHYS.

The new ATA/SATA code supports AHCI-compliant hardware, and will override
the classic ATA driver if it is loaded as a module at boot time or compiled
into the kernel. The stack now support NCQ (tagged queueing) for increased
performance on modern SATA drives. It also supports port multipliers.

ATA drives are accessed via 'ada' device nodes. ATAPI drives are
accessed via 'cd' device nodes. They can all be enumerated and manipulated
via camcontrol, just like SCSI drives. SCSI commands are not translated to
their ATA equivalents; ATA native commands are used throughout the entire
stack, including camcontrol. See the camcontrol manpage for further
details. Testing this code may require that you update your fstab, and
possibly modify your BIOS to enable AHCI functionality, if available.

This code is very experimental at the moment. The userland ABI/API has
changed, so applications will need to be recompiled. It may change
further in the near future. The 'ada' device name may also change as
more infrastructure is completed in this project. The goal is to
eventually put all CAM busses and devices until newbus, allowing for
interesting topology and management options.

Few functional changes will be seen with existing SCSI/SAS/FC drivers,
though the userland ABI has still changed. In the future, transports
specific modules for SAS and FC may appear in order to better support
the topologies and capabilities of these technologies.

The modularization of CAM and the addition of the ATA/SATA modules is
meant to break CAM out of the mold of being specific to SCSI, letting it
grow to be a framework for arbitrary transports and protocols. It also
allows drivers to be written to support discrete hardware without
jeopardizing the stability of non-related hardware. While only an AHCI
driver is provided now, a Silicon Image driver is also in the works.
Drivers for ICH1-4, ICH5-6, PIIX, classic IDE, and any other hardware
is possible and encouraged. Help with new transports is also encouraged.

Submitted by: scottl, mav
Approved by: re


# ec2b103c 02-Jun-2009 Ed Schouten <ed@FreeBSD.org>

Import Clang, at r72732.


# 11c63ede 27-May-2009 Andrew Thompson <thompsa@FreeBSD.org>

Delete the old USB stack. The new stack has settled in and has all the
drivers/functionality and then some.


# 46bd01cb 21-May-2009 Rick Macklem <rmacklem@FreeBSD.org>

Modify src/etc/mtree/BSD.include.dist and src/include/Makefile
so that the .h files in src/sys/fs/nfs will be installed under
/usr/include/fs/nfs. This will allow the following utilities to
build, once additions and changes for the experimental nfs subsystem
are committed:
usr.sbin/mountd - Once modified to add support for the
experimental nfs subsystem.
ur.sbin/nfsstat - Once modified to add support for the
experimental nfs subsystem.
usr.sbin/nfscbd - The client side callback daemon for NFSv4.
usr.sbin/nfsuserd - The NFSv4 user/group name<->uid/gid mapping daemon.
usr.sbin/nfsdumpstate - The NFSv4 utility for dumping open/lock state.
usr.sbin/nfsrevoke - The sysadmin command for revoking NFSv4 state.

Approved by: kib (mentor)


# 8b446f57 23-Feb-2009 Andrew Thompson <thompsa@FreeBSD.org>

Install the old usb headers under /usr/include/legacy/dev/usb as they are
needed by the hal port. This will be removed before 8.0.

Add an exclusion to kdump as some structs will be redefined.

Requested by: marcus


# bf41796c 23-Feb-2009 Andrew Thompson <thompsa@FreeBSD.org>

Build fixups for the new USB stack.


# 5a25eda5 15-Feb-2009 Yoshihiro Takahashi <nyan@FreeBSD.org>

sys/pccard is gone.


# 6f0e1ffd 19-Nov-2008 Alfred Perlstein <alfred@FreeBSD.org>

src/sys/dev/usb2/controller/uss820dci_pccard.c
src/sys/dev/usb2/core/usbdevs
src/sys/dev/usb2/include/urio2_ioctl.h
src/sys/dev/usb2/storage/ustorage2_fs.h

These files are not used any more.

src/usr.sbin/Makefile
src/etc/mtree/BSD.include.dist
src/include/Makefile
src/lib/Makefile
src/share/man/man7/hier.7
src/share/mk/bsd.libnames.mk
src/etc/mtree/BSD.include.dist

Make "usbconfig" and "libusb20" a part of the default build.

src/sys/dev/usb/rio500_usb.h
src/sys/dev/usb2/storage/urio2.c

Use common include file.

src/sys/dev/usb2/bluetooth/ng_ubt2.c

Make USB bluetooth depend on "ng_hci" module.

src/sys/dev/usb2/controller/ehci2.c
src/sys/dev/usb2/controller/ehci2.h

Patches for Marvell EHCI.

src/sys/dev/usb2/core/usb2_busdma.c

Bugfix for 64-bit platforms. Need to unload the previously loaded DMA
map and some cleanup regarding some corner cases.

src/sys/dev/usb2/core/usb2_core.h
src/sys/dev/usb2/core/usb2_dev.c
src/sys/dev/usb2/core/usb2_dev.h

Bugfix for libusb filesystem interface.

New feature: Add support for filtering device data at the expense of the
userland process.

Add some more comments.

Some minor code styling.

Remove unused function, usb2_fifo_get_data_next().

Fix an issue about "fifo_index" being used instead of "ep_index".

src/sys/dev/usb2/core/usb2_device.c
src/sys/dev/usb2/core/usb2_generic.c

Bugfix for Linux USB compat layer. Do not free non-generic FIFOs when
doing an alternate setting.

Cleanup USB IOCTL and USB reference handling.
Fix a corner case where USB-FS was left initialised after
setting a new configuration or alternate setting.

src/sys/dev/usb2/core/usb2_hub.c

Improvement: Check all USB HUB ports by default at least one time.

src/sys/dev/usb2/core/usb2_request.c

Bugfix: Make sure destination ASCII string is properly zero terminated
in all cases.

Improvement: Skip invalid characters instead of replacing with a dot.

src/sys/dev/usb2/core/usb2_util.c
src/sys/dev/usb2/image/uscanner2.c

Spelling.

src/sys/dev/usb2/include/Makefile

Share "usbdevs" with the old USB stack.

src/sys/dev/usb2/include/usb2_devid.h
src/sys/dev/usb2/include/usb2_devtable.h

Regenerate files.

Alfred: Please fix the RCS tag at the top.

src/sys/dev/usb2/include/usb2_ioctl.h

Fix compilation of "kdump".

src/sys/dev/usb2/serial/ubsa2.c
src/sys/dev/usb2/serial/ugensa2.c

Remove device ID's which will end up in a new 3G driver.

src/sys/dev/usb2/sound/uaudio2.c

Correct a debug printout.

src/sys/dev/usb2/storage/umass2.c

Sync with old USB stack.

src/lib/libusb20/libusb20.3

Add more documentation.

src/lib/libusb20/libusb20.c

Various bugfixes and improvements.

src/usr.sbin/usbconfig/dump.c
src/usr.sbin/usbconfig/usbconfig.c

New commands for dumping strings and doing custom USB requests from
the command line.

Remove keyword requirements from generated files:
"head/sys/dev/usb2/include/usb2_devid.h"
"head/sys/dev/usb2/include/usb2_devtable.h"


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# a718c0c3 26-Sep-2008 Peter Wemm <peter@FreeBSD.org>

Move getosreldate(3) prototype from the machine generated <osreldate.h>
to <unistd.h> in the BSD section.

Suggested by: kib


# 3488b48a 25-Sep-2008 Peter Wemm <peter@FreeBSD.org>

Re-add getosreldate(3) function prototype in the form that I've been using
for quite some time now. While I'm not sure if it'll break IA64 again,
this way doesn't cause problems with my builds of XFree86/Xorg and the way
they #include <osreldate.h> via cpp in the imake system.


# 4ab0b22f 24-Jul-2008 Ed Schouten <ed@FreeBSD.org>

Remove <sgtty.h> now it has no practical usage.

When I turned sgtty into a binary-only interface (last month), I added
this explicit #error to the header file, to make sure nobody forgot to
remove the header file after updating world.

I think it is now a good moment to remove this header file.

Approved by: philip (mentor)


# 947aa542 17-Jun-2008 David Xu <davidxu@FreeBSD.org>

Add POSIX routines called posix_spawn() and posix_spawnp(), which
can be used as replacements for exec/fork in a lot of cases. This
change also added execvpe() which allows environment variable
PATH to be used for searching executable file, it is used for
implementing posix_spawnp().

PR: standards/122051


# 2e598474 26-May-2008 Bjoern A. Zeeb <bz@FreeBSD.org>

Remove ISDN4BSD (I4B) from HEAD as it is not MPSAFE and
parts relied on the now removed NET_NEEDS_GIANT.
Most of I4B has been disconnected from the build
since July 2007 in HEAD/RELENG_7.

This is what was removed:
- configuration in /etc/isdn
- examples
- man pages
- kernel configuration
- sys/i4b (drivers, layers, include files)
- user space tools
- i4b support from ppp
- further documentation

Discussed with: rwatson, re


# e4372ceb 25-May-2008 Robert Watson <rwatson@FreeBSD.org>

Remove netatm from HEAD as it is not MPSAFE and relies on the now removed
NET_NEEDS_GIANT. netatm has been disconnected from the build for ten
months in HEAD/RELENG_7. Specifics:

- netatm include files
- netatm command line management tools
- libatm
- ATM parts in rescue and sysinstall
- sample configuration files and documents
- kernel support as a module or in NOTES
- netgraph wrapper nodes for netatm
- ctags data for netatm.
- netatm-specific device drivers.

MFC after: 3 weeks
Reviewed by: bz
Discussed with: bms, bz, harti


# c16e2101 06-May-2008 John Baldwin <jhb@FreeBSD.org>

Install the mpilib headers from mpt(4) into /usr/include/dev/mpt/mpilib.
This allows <sys/mpt_ioctl.h> to be used from userland.

Prodded by: scottl


# 13650420 01-Oct-2007 Ruslan Ermilov <ru@FreeBSD.org>

Install the forgotten /usr/include/geom/multipath/ header.

Approved by: re (kensmith)


# f854db0b 23-Sep-2007 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Bring in the GEOM Virtualisation class, which allows to create huge GEOM
providers with limited physical storage and add physical storage as
needed.

Submitted by: Ivan Voras
Sponsored by: Google Summer of Code 2006
Approved by: re (kensmith)


# 2b851aeb 14-Jul-2007 Robert Watson <rwatson@FreeBSD.org>

Disconnect netatm from the build as it is not MPSAFE and relies on
NET_NEEDS_GIANT, which will shortly be removed. This is done in a
away that it may be easily reattached to the build before 7.1 if
appropriate locking is added. Specifics:

- Don't install netatm include files
- Disconnect netatm command line management tools
- Don't build libatm
- Don't include ATM parts in rescue or sysinstall
- Don't install sample configuration files and documents
- Don't build kernel support as a module or in NOTES
- Don't build netgraph wrapper nodes for netatm

This removes the last remaining consumer of NET_NEEDS_GIANT.

Reviewed by: harti
Discussed with: bz, bms
Approved by: re (kensmith)


# 9fa28ff6 06-Jul-2007 Bjoern A. Zeeb <bz@FreeBSD.org>

I4B header files were repo-copied from sys/i386/include to
sys/i4b/include/ so they will be available to all architectures
once I4B compiles on those.

I4B header files are now installed in include/i4b/ and no longer
in include/machine/.

For now we still install the headers for i386 only.

Approved by: re (kensmith)


# 8409aedf 30-Jun-2007 George V. Neville-Neil <gnn@FreeBSD.org>

Commit IPv6 support for FAST_IPSEC to the tree.
This commit includes all remaining changes for the time being including
user space updates.

Submitted by: bz
Approved by: re


# 534046e3 24-Jun-2007 Rong-En Fan <rafan@FreeBSD.org>

- Remove UMAP filesystem. It was disconnected from build three years ago,
and it is seriously broken.

Discussed on: freebsd-arch@
Approved by: re (mux)


# 0fdce727 12-Apr-2007 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Install only types.h from sys/rpc/.

Requested by: ache
Explained how by: ru


# 7f64b05f 10-Apr-2007 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Move rpc/types.h under sys/, as this is used by ZFS kernel module.

Repo-copied by: simon


# d139ce67 11-Feb-2007 Craig Rodrigues <rodrigc@FreeBSD.org>

Makefile changes to reflect moving sys/isofs/cd9660 to sys/fs/cd9660.
Continue to install userland include files in /usr/include/isofs/cd9660
so as not to break userland applications such as libstand.


# 401a7f6f 25-Jan-2007 Peter Wemm <peter@FreeBSD.org>

Oops, remove an objformat.h reference.


# 6aeb05d7 11-Nov-2006 Tom Rhodes <trhodes@FreeBSD.org>

Merge posix4/* into normal kernel hierarchy.

Reviewed by: glanced at by jhb
Approved by: silence on -arch@ and -standards@


# f348204c 31-Oct-2006 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Hook up gjournal bits to the build.

Sponsored by: home.pl


# 04c7da70 06-Oct-2006 Ruslan Ermilov <ru@FreeBSD.org>

A GEOM cache can speed up read performance by sending fixed size
read requests to its consumer. It has been developed to address
the problem of a horrible read performance of a 64k blocksize FS
residing on a RAID3 array with 8 data components, where a single
disk component would only get 8k read requests, thus effectively
killing disk performance under high load. Documentation will be
provided later. I'd like to thank Vsevolod Lobko for his bright
ideas, and Pawel Jakub Dawidek for helping me fix the nasty bug.


# 1cda541c 07-Sep-2006 Maksim Yevmenkin <emax@FreeBSD.org>

Prepare for upcoming bthidd(8) update. Install vkbd(4) header into dev/vkbd.

MFC after: 1 month


# e5d34218 01-Aug-2006 Maxim Sobolev <sobomax@FreeBSD.org>

Add device to access and modify Open Firmware NVRAM settings in
PowerPC-based Apple's machines and small utility to do it from
userland modelled after the similar utility in Darwin/OSX.

Only tested on 1.25GHz G4 Mac Mini.

MFC after: 1 month


# eb27a220 30-Mar-2006 Hajimu UMEMOTO <ume@FreeBSD.org>

Expose res_update and friends again. At least, ports/mail/spamilter
uses them.
Now, we have res_nupdate and res_nmkupdate as well, but they are
still based on our old resolver for binary backward compatibility.
So, they don't provide new features such as TSIG support.

Reported by: pointyhat via kris


# 6b2c15da 28-Mar-2006 Jason Evans <jasone@FreeBSD.org>

Add malloc_usable_size(3).

Discussed with: arch@


# cea557ad 20-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Extend coverage of the MK_IPX build option to the following:

- <netipx> headers [1]
- IPX library (libipx)
- IPX support in ifconfig(8)
- IPXrouted(8)
- new MK_NCP option

New MK_NCP build option controls:

- <netncp> and <fs/nwfs> headers
- NCP library (libncp)
- ncplist(1) and ncplogin(1)
- mount_nwfs(8)
- ncp and nwfs kernel modules

User knobs: WITHOUT_IPX, WITHOUT_IPX_SUPPORT, WITHOUT_NCP.

[1] <netsmb/netbios.h> unconditionally uses <netipx> headers
so they are still installed. This needs to be dealt with.


# 013f1b34 19-Mar-2006 Robert Watson <rwatson@FreeBSD.org>

Merge Perforce change 93569 from TrustedBSD audit3 branch:

Do install sys/security/audit include files. It would be nice just
to install audit_ioctl.h, but we seem only to support installing
directories, so we get them all. The two not intended for extra-
kernel use have !_KERNEL #error's, which should help.

Obtained from: TrustedBSD Project


# e1fe3dba 17-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Reimplementation of world/kernel build options. For details, see:

http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html

The src.conf(5) manpage is to follow in a few days.

Brought to you by: imp, jhb, kris, phk, ru (all bugs are mine)


# 5f0c9ae1 10-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Hopefully fix all nearby style bugs that Bruce has mentioned.


# 6549999b 10-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

- Fix variable assignment to be portable.
- "Line up" continuations.

Submitted by: bde


# c0b9f4fe 29-Dec-2005 Doug Rabson <dfr@FreeBSD.org>

Add a new extensible GSS-API layer which can support GSS-API plugins,
similar the the Solaris implementation. Repackage the krb5 GSS mechanism
as a plugin library for the new implementation. This also includes a
comprehensive set of manpages for the GSS-API functions with text mostly
taken from the RFC.

Reviewed by: Love Hörnquist Åstrand <lha@it.su.se>, ru (build system), des (openssh parts)


# 75067f4f 16-Dec-2005 Poul-Henning Kamp <phk@FreeBSD.org>

Add an extensible version of our *printf(3) implementation to libc
on probationary terms: it may go away again if it transpires it is
a bad idea.

This extensible printf version will only be used if either
environment variable USE_XPRINTF is defined
or
one of the extension functions are called.
or
the global variable __use_xprintf is set greater than zero.

In all other cases our traditional printf implementation will
be used.

The extensible version is slower than the default printf, mostly
because less opportunity for combining I/O operation exists when
faced with extensions. The default printf on the other hand
is a bad case of spaghetti code.

The extension API has a GLIBC compatible part and a FreeBSD version
of same. The FreeBSD version exists because the GLIBC version may
run afoul of our FILE * locking in multithreaded programs and it
even further eliminate the opportunities for combining I/O operations.

Include three demo extensions which can be enabled if desired: time
(%T), hexdump (%H) and strvis (%V).

%T can format time_t (%T), struct timeval (%lT) and struct timespec (%llT)
in one of two human readable duration formats:
"%.3llT" -> "20349.245"
"%#.3llT" -> "5h39m9.245"

%H will hexdump a sequence of bytes and takes a pointer and a length
argument. The width specifies number of bytes per line.
"%4H" -> "65 72 20 65"
"%+4H" -> "0000 65 72 20 65"
"%#4H" -> "65 72 20 65 |er e|"
"%+#4H" -> "0000 65 72 20 65 |er e|"

%V will dump a string in strvis format.
"%V" -> "Hello\tWor\377ld" (C-style)
"%0V" -> "Hello\011Wor\377ld" (octal)
"%+V" -> "Hello%09Wor%FFld" (http-style)

Tests, comments, bugreports etc are most welcome.


# 1332b4bd 01-Dec-2005 Ruslan Ermilov <ru@FreeBSD.org>

Install the mqueue.h header.


# a8c06a09 27-Nov-2005 Craig Rodrigues <rodrigc@FreeBSD.org>

Remove commented out reference to posix4/mqueue.h. It hasn't been installed
for 3 years, and now we have another (working) implementation
of POSIX message queues elsewhere in the source tree.


# b0f3cf44 11-Nov-2005 Xin LI <delphij@FreeBSD.org>

Since speaker.h now lives in sys/dev/speaker, reflect this fact here.


# 6fa40729 03-Oct-2005 Scott Long <scottl@FreeBSD.org>

Add the lmcconfig tool for controlling the lmc driver. Add man pages and
glue.

Submitted by: David Boggs


# efe444ea 14-Sep-2005 Stefan Farfeleder <stefanf@FreeBSD.org>

Back out 1.247. On ia64 <osreldate.h> is included from assembler source,
the prototype broke buildword.

Noticed by: marcel


# e0970cbd 12-Sep-2005 Stefan Farfeleder <stefanf@FreeBSD.org>

Put a getosreldate() prototype into <osreldate.h>, getosreldate(3) implies
there is one.


# 3d86554c 06-Aug-2005 Poul-Henning Kamp <phk@FreeBSD.org>

Respect the YES_HESIOD build variable.


# 5ca1fcfe 27-Jul-2005 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Connect GEOM_ELI class to the build.

MFC after: 1 week


# f263522a 09-Jun-2005 Joseph Koshy <jkoshy@FreeBSD.org>

MFP4:

- Implement sampling modes and logging support in hwpmc(4).

- Separate MI and MD parts of hwpmc(4) and allow sharing of
PMC implementations across different architectures.
Add support for P4 (EMT64) style PMCs to the amd64 code.

- New pmcstat(8) options: -E (exit time counts) -W (counts
every context switch), -R (print log file).

- pmc(3) API changes, improve our ability to keep ABI compatibility
in the future. Add more 'alias' names for commonly used events.

- bug fixes & documentation.


# 2c075601 29-May-2005 Robert Watson <rwatson@FreeBSD.org>

Correct mistake in previous commit: add 'bsm' to LDIRS not LSUBDIRS.

Pointy hat: over here, please


# 62fdab92 29-May-2005 Robert Watson <rwatson@FreeBSD.org>

Do install BSM include files (such as they are) when installing system
includes.

Submitted by: wsalamon
Obtained from: TrustedBSD Project


# 228f8c4f 16-May-2005 Ruslan Ermilov <ru@FreeBSD.org>

Make <runefile.h> internal to libc.

Suggested by: phantom


# f98a656c 25-Apr-2005 Scott Long <scottl@FreeBSD.org>

Conditionalize the ipfilter header files on NO_IPFILTER. While normally these
should be harmless, the kdump(1) build does evil things with collecting
system header files, and thus would unconditionally collect and process these.

MFC After: 3 days


# dfd569ed 02-Apr-2005 Warner Losh <imp@FreeBSD.org>

Make sure that $_MARCH and friends exist

Submitted by: nyan@


# 8f3e5dd0 01-Apr-2005 Warner Losh <imp@FreeBSD.org>

When $MACHINE != $MACHINE_ARCH, install $MACHINE_ARCH/include into
/usr/include/$MACHINE_ARCH in addition to installing $MACHINE/include
into /usr/include/machine.


# df3c03a7 11-Mar-2005 Hajimu UMEMOTO <ume@FreeBSD.org>

just use crypto/rijndael, and nuke opencrypto/rindael.[ch].
the two became almost identical since latest KAME merge.

Discussed with: sam


# 9f97a43b 02-Mar-2005 Nate Lawson <njl@FreeBSD.org>

Only install acpiio.h in /usr/include. That's all we want to export to users.

Submitted by: ru (any bugs by me)
MFC after: 1 day


# 829ba4de 02-Mar-2005 Ruslan Ermilov <ru@FreeBSD.org>

Sync the list of headers visible with SHARED=symlinks with those
visible with SHARED=copies.

Inspired by: njl


# bc8652a1 27-Feb-2005 Nate Lawson <njl@FreeBSD.org>

Install acpi includes in dev/acpica. This should later be trimmed (the pci
bus one is not needed) and ifdef _KERNEL added.

PR: kern/74215
MFC after: 1 day


# 3fb3a430 26-Feb-2005 Ruslan Ermilov <ru@FreeBSD.org>

Make the format of LC_CTYPE files architecture independent by
introducing the disk formats for _RuneLocale and friends.

The disk formats do not have (useless) pointers and have 32-bit
quantities instead of rune_t and long. (htonl(3) only works
with 32-bit quantities, so there's no loss).

Bootstrap mklocale(1) when necessary. (Bootstrapping from 4.x
would be trivial (verified), but we no longer provide pre-5.3
source upgrades and this is the first commit to actually break
it.)


# d61902a5 06-Feb-2005 Poul-Henning Kamp <phk@FreeBSD.org>

Install GPIB related includefiles (unless NO_GPIB)


# 6901ba93 14-Jan-2005 Diomidis Spinellis <dds@FreeBSD.org>

Fix the pbio include file installation process and the
corresponding documentation.

Noticed by: ru
Reviewed by: ru


# 2c144a95 11-Jan-2005 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Add missing entry.

Reported by: sos


# 3b1adda7 17-Nov-2004 Ruslan Ermilov <ru@FreeBSD.org>

Fixed transition from SHARED=symlinks to SHARED=copies.


# 51be47e4 10-Nov-2004 Mark Murray <markm@FreeBSD.org>

Help Tinderbox and remove autofs


# 31d330fb 17-Oct-2004 Tim J. Robbins <tjr@FreeBSD.org>

Remove the obsolete <rune.h> interface.


# 2a614447 27-Sep-2004 Doug Barton <dougb@FreeBSD.org>

1. Add much finer granularity to the NO_BIND knobs with the addition of:
NO_BIND_DNSSEC, NO_BIND_ETC, NO_BIND_NAMED, and NO_BIND_UTILS.

2. Make creation of directories in /usr/include that are only needed
in the WITH_BIND_LIBS case conditional.

Reviewed by: ru, des


# e8f7141e 17-Sep-2004 Ruslan Ermilov <ru@FreeBSD.org>

Pass the idea of the make(1) binary to use down to newvers.sh.
This is necessary so source upgrades use the correct binary.

MFC after: 3 days

For the record: Problem spotted by Scott Long, who mentioned
that source upgrades from 4.7 to recent 5.x and 6.0 are broken.
Detailed analysis shows that 4.7 has a broken make(1) binary.
A breakage was fixed in RELENG_4 in make/main.c,v 1.35.2.7 by
imp@, though the commit log erroneously stated "MFC 1.68"
while in fact it should have been spelled as "MFC 1.67".


# fdbe44b0 16-Sep-2004 Gleb Smirnoff <glebius@FreeBSD.org>

Install netflow includes.

Approved by: julian (mentor)


# 0793d4d1 02-Sep-2004 Alfred Perlstein <alfred@FreeBSD.org>

Hook autofs to the build.


# e81856c3 16-Aug-2004 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Connect RAID3 GEOM class to the build.


# 8bdfc6bf 11-Aug-2004 Tim J. Robbins <tjr@FreeBSD.org>

Sort in dictionary order.

Suggested by: ru


# 16133e15 12-Aug-2004 Tim J. Robbins <tjr@FreeBSD.org>

Move some internal macros and inlines from ctype.h to a new file, _ctype.h,
which has been repo-copied from ctype.h. This will allow us to remove
namespace pollution from <wctype.h> and to make wcwidth() an inline function
without introducing more pollution.


# b902e8b2 08-Aug-2004 Stefan Farfeleder <stefanf@FreeBSD.org>

Implement C99's standard header <tgmath.h>. It provides type-generic macros
for the <math.h> and <complex.h> functions that have float, double and long
double implementations. Such type-generic macros expand to an actual
function, depending on the types of the macro arguments, eg. if <tgmath.h>
is included, the invocation cos(1.0f) calls the function cosf().


# 8a8fbaca 30-Jul-2004 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Connect GEOM_MIRROR class to the build.


# a3d4136a 14-Jul-2004 David Xu <davidxu@FreeBSD.org>

Add proc_service.h, the common file both debugger and libthread_db will
use, program wants to load libthread_db.so should provid proc service
interface.


# b03b864a 05-Jul-2004 David Schultz <das@FreeBSD.org>

Add implementations of ftw(3) and nftw(3) and the corresponding header
ftw.h. This is the implementation written by Joel Baker
<fenton@debian.org> for inclusion in NetBSD, but with several
bugfixes.

Obtained from: Debian


# e1237b28 02-Jul-2004 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Introduce GEOM_LABEL class.
This class is used for detecting volume labels on file systems:
UFS, MSDOSFS (FAT12, FAT16, FAT32) and ISO9660.
It also provide native labelization (there is no need for file system).

g_label_ufs.c is based on geom_vol_ffs from Gordon Tetlow.
g_label_msdos.c and g_label_iso9660.c are probably hacks, I just found
where volume labels are stored and I use those offsets here,
but with this class it should be easy to do it as it should be done by
someone who know how.
Implementing volume labels detection for other file systems also should
be trivial.

New providers are created in those directories:
/dev/ufs/ (UFS1, UFS2)
/dev/msdosfs/ (FAT12, FAT16, FAT32)
/dev/iso9660/ (ISO9660)
/dev/label/ (native labels, configured with glabel(8))

Manual page cleanups and some comments inside were submitted by
Simon L. Nielsen, who was, as always, very helpful. Thanks!


# 02b199f1 13-Jun-2004 Max Laier <mlaier@FreeBSD.org>

Link ALTQ to the build and break with ABI for struct ifnet. Please recompile
your (network) modules as well as any userland that might make sense of
sizeof(struct ifnet).
This does not change the queueing yet. These changes will follow in a
seperate commit. Same with the driver changes, which need case by case
evaluation.

__FreeBSD_version bump will follow.

Tested-by: (i386)LINT


# 680e5864 20-May-2004 Pawel Jakub Dawidek <pjd@FreeBSD.org>

- Install includes used by STRIPE and NOP GEOM classes.
- Create needed directories.

Supported by: Wheel - Open Technologies - http://www.wheel.pl


# 01b013a1 30-Apr-2004 Pawel Jakub Dawidek <pjd@FreeBSD.org>

- Look into geom/gate/ and geom/concat/ for includes.
- Put geom/ subdirectories into separate line,
while there are more to come.


# 278445ba 28-Feb-2004 Max Laier <mlaier@FreeBSD.org>

Add skeleton build dirs for pf userland:
libexec/ftp-proxy - ftp proxy for pf
sbin/pfctl - equivalent to sbin/ipf
sbin/pflogd - deamon logging packets via if_pflog in pcap format
usr.sbin/authpf - authentification shell to modify pf rulesets

Bring along some altq headers used to satisfy pfctl/authpf compile. This
helps to keep the diff down and will make it easy to have a altq-patchset
use the full powers of pf.

Also make sure that the pf headers are installed.

This does not link anything to the build. There will be a NO_PF switch for
make.conf once pf userland is linked.

Approved by: bms(mentor)


# 18d948ad 27-Jan-2004 Maksim Yevmenkin <emax@FreeBSD.org>

Add NO_BLUETOOTH knob to the build process

Requested by: phk
Reviewed by: imp (mentor), ru


# a5b5101f 08-Dec-2003 David E. O'Brien <obrien@FreeBSD.org>

Move the bktr(4) <arch>/include/ioctl_{bt848,meteor}.h files to dev/bktr
as these ioctl's aren't MD. This also means they are installed in
/usr/include/dev/bktr now. Also provide compatability wrappers for
where these headers lived in 4.x.


# f2cdd77e 07-Dec-2003 David E. O'Brien <obrien@FreeBSD.org>

Fix sort order.


# 90768c55 21-Nov-2003 Scott Long <scottl@FreeBSD.org>

Install UDF header files to unbreak /sbin building when /sys is not present.

Submitted by: imura@ryu16.org


# 79211790 28-Oct-2003 Peter Wemm <peter@FreeBSD.org>

*blush*. stdhash.h != strhash.h
Sorry folks.


# fefa0fd5 31-Aug-2003 Alexander Kabaev <kan@FreeBSD.org>

Add a new machine independent varargs.h and use it as a central place
to announce the demise of varargs support in GCC versions 3.3+ and to
direct users to stdarg.h instead.

Fall back to machine/varargs.h for older GCC versions.


# 25634026 04-Jul-2003 Ruslan Ermilov <ru@FreeBSD.org>

Don't be so chatty about osreldate.h creation steps when make(1)
is run in non-compat mode (-j without -B).


# d1ab0560 28-Jun-2003 Sam Leffler <sam@FreeBSD.org>

enable installation of sys/net80211


# 81b9fd77 25-Jun-2003 Sam Leffler <sam@FreeBSD.org>

back out install of net80211 include files until I can remove the old code


# cbc2782f 25-Jun-2003 Sam Leffler <sam@FreeBSD.org>

install new 802.11 headers


# 1a589a2b 25-Jun-2003 Hartmut Brandt <harti@FreeBSD.org>

Install the include file for the netgraph ATM node.


# a97ec006 23-Jun-2003 Ruslan Ermilov <ru@FreeBSD.org>

Bring back IPFilter headers to /usr/include, now that SHARED=symlinks
installs the per-header symlinks.

Prodded by: many


# 591f4054 12-Jun-2003 Hartmut Brandt <harti@FreeBSD.org>

This is a driver for the physical layer chips used in ATM interfaces.
It currently supports the PMC Sierra Lite, Ultra and 622 chips and
the IDT 77105. The driver handles media options and state in a consistent
manner for ATM drivers. The next commit to the midway driver will make
it use utopia.


# a270eca5 04-May-2003 Bruce Evans <bde@FreeBSD.org>

Install symlinks to individual headers instead of symlinks to directories
in the SHARED=symlinks case. Symlinks to directories only work if all the
the necessary headers are in 1 directory, but the necessary headers are
scattered for at least ipfilter headers in <netinet>. This change also
avoids polluting /usr/include with non-headers; the /usr/include hierarchy
is now independent of the setting of SHARED.

Submitted by: ru (edited to fix netgraph/bluetooth/include and machine/pc)
PR: 44148


# 46d93063 17-Apr-2003 Jacques Vidrine <nectar@FreeBSD.org>

= Implement name service switch modules (NSS modules). NSS modules
may be built into libc (`static NSS modules') or dynamically loaded
via dlopen (`dynamic NSS modules'). Modules are loaded/initialized
at configuration time (i.e. when nsdispatch is called and nsswitch.conf
is read or re-read).

= Make the nsdispatch(3) core thread-safe.

= New status code for nsdispatch(3) `NS_RETURN', currently used to
signal ERANGE-type issues.

= syslog(3) problems, don't warn/err/abort.

= Try harder to avoid namespace pollution.

= Implement some shims to assist in porting NSS modules written for
the GNU C Library nsswitch interface.

Sponsored by: DARPA, Network Associates Laboratories


# 9797a2c4 05-Mar-2003 Peter Wemm <peter@FreeBSD.org>

Drop netns from include file installation


# 48becfdd 08-Feb-2003 Poul-Henning Kamp <phk@FreeBSD.org>

Install geom include files.


# 89938213 30-Dec-2002 Hidetoshi Shimokawa <simokawa@FreeBSD.org>

Install /sys/dev/firewire/*.h under /usr/include/dev/firewire
for userland utilities.


# 56f56252 26-Dec-2002 Tim J. Robbins <tjr@FreeBSD.org>

Add the POSIX <wordexp.h> header file.

PR: 13420


# dbd8d5b2 03-Dec-2002 Robert Watson <rwatson@FreeBSD.org>

Don't install old LOMAC include files; do install new mac_lomac
include files.

Approved by: re (jhb)
Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories


# 605a327e 25-Nov-2002 Ruslan Ermilov <ru@FreeBSD.org>

Align the comment with functionality changes from previous revision.

Approved by: re


# 16d7acae 21-Nov-2002 Julian Elischer <julian@FreeBSD.org>

Re-enable installing of Bluetooth include files
Hopefully this time it works right.. Who understands this stuff?


# 04c021fe 21-Nov-2002 Julian Elischer <julian@FreeBSD.org>

Temporarily remove the install of bluetooth include files..
something "VERY WIERD" happens to them during buildworld..
The sources get replaced by symlinks to themselves (!?)


# 8f5271e7 20-Nov-2002 Julian Elischer <julian@FreeBSD.org>

Populate with bluetooth includes


# c544e42b 18-Nov-2002 Marcel Moolenaar <marcel@FreeBSD.org>

libc header files are normally in src/include. Therefore, uuid.h has
been repo-copied from src/lib/libc/uuid to src/include. Update the
makefiles.

While in src/include/Makefile, reformat and resort INCS. Reverting
the functional change only involves removing uuid.h.

Pompted by: ru


# bac8e874 24-Oct-2002 Robert Watson <rwatson@FreeBSD.org>

Install mac_partition include files.

Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories


# 9f29ec17 18-Oct-2002 Thomas Moestl <tmm@FreeBSD.org>

Install the include files in sys/dev/ofw.


# 4b70617d 17-Oct-2002 Sam Leffler <sam@FreeBSD.org>

install "fast ipsec" include files


# 5b0f380c 07-Oct-2002 Mike Barcroft <mike@FreeBSD.org>

Remove duplicate uninstalled aio.h header.


# 3feb4562 04-Oct-2002 Sam Leffler <sam@FreeBSD.org>

install sys/opencrypto include files in /usr/include/crypto


# 72060281 01-Oct-2002 Ruslan Ermilov <ru@FreeBSD.org>

test -h is deprecated; use -L instead.

PR: bin/40846


# 793afc3a 30-Sep-2002 Mike Barcroft <mike@FreeBSD.org>

Don't install mqueue.h, since it only makes things harder for porting
software when you provide prototypes for non-existent functions.


# a35a7e76 28-Sep-2002 Eric Melville <eric@FreeBSD.org>

Add getopt_long(3).

Obtained from: NetBSD
Sponsored by: Apple


# c7ccd7aa 18-Sep-2002 Peter Wemm <peter@FreeBSD.org>

Add dev/iicbus and dev/smbus to LSUBDIRS list


# fd9c8194 18-Sep-2002 Alfred Perlstein <alfred@FreeBSD.org>

Install _semaphore.h.


# af8c0bce 07-Aug-2002 Mike Barcroft <mike@FreeBSD.org>

Implement POSIX.1-2001 (XSI)'s ulimit(3).

Submitted by: Kyle Martin <mkm@ieee.org>


# 823f68a2 05-Aug-2002 Mike Barcroft <mike@FreeBSD.org>

Implement POSIX.1-2001 (XSI)'s fmtmsg(3).


# b5620ce3 02-Aug-2002 Robert Watson <rwatson@FreeBSD.org>

Install MAC policy include files as part of the normal includes
install.

Obtained from: TrustedBSD Project
Sponsored by: DARPA, NAI Labs


# 29284d71 01-Aug-2002 Mike Barcroft <mike@FreeBSD.org>

Implement the POSIX.1-2001 (XSI) header, <cpio.h>.


# 8466ae90 16-Jun-2002 Garrett Wollman <wollman@FreeBSD.org>

Move dillon's time conversion functions to a new header <timeconv.h>.
Since they were never documented and have never appeared in a FreeBSD
release, no repo-copy of the header is done. This removes namespace
pollution from <time.h>.


# 5d862037 15-May-2002 Ruslan Ermilov <ru@FreeBSD.org>

Rename `includes' to `buildincludes'.
Rename `incsinstall' to `installincludes'.
Make `includes' a -j safe shortcut for `buildincludes' + `installincludes'.
`buildincludes' and `installincludes' are SUBDIR friendly, if run directly.


# c7b111cb 12-May-2002 Ruslan Ermilov <ru@FreeBSD.org>

Added new bsd.incs.mk which handles installing of header files
via INCS. Implemented INCSLINKS (equivalent to SYMLINKS) to
handle symlinking include files. Allow for multiple groups of
include files to be installed, with the powerful INCSGROUPS knob.
Documentation to follow.

Added standard `includes' and `incsinstall' targets, use them
in Makefile.inc1. Headers from the following makefiles were
not installed before (during `includes' in Makefile.inc1):

kerberos5/lib/libtelnet/Makefile
lib/libbz2/Makefile
lib/libdevinfo/Makefile
lib/libform/Makefile
lib/libisc/Makefile
lib/libmenu/Makefile
lib/libmilter/Makefile
lib/libpanel/Makefile

Replaced all `beforeinstall' targets for installing includes
with the INCS stuff.

Renamed INCDIR to INCSDIR, for consistency with FILES and SCRIPTS,
and for compatibility with NetBSD. Similarly for INCOWN, INCGRP,
and INCMODE.

Consistently use INCLUDEDIR instead of /usr/include.

gnu/lib/libstdc++/Makefile and gnu/lib/libsupc++/Makefile changes
were only lightly tested due to the missing contrib/libstdc++-v3.
I fully tested the pre-WIP_GCC31 version of this patch with the
contrib/libstdc++.295 stuff.

These changes have been tested on i386 with the -DNO_WERROR "make
world" and "make release".


# d786139c 17-Apr-2002 Maxime Henrion <mux@FreeBSD.org>

Rework the kernel environment subsystem. We now convert the static
environment needed at boot time to a dynamic subsystem when VM is
up. The dynamic kernel environment is protected by an sx lock.

This adds some new functions to manipulate the kernel environment :
freeenv(), setenv(), unsetenv() and testenv(). freeenv() has to be
called after every getenv() when you have finished using the string.
testenv() only tests if an environment variable is present, and
doesn't require a freeenv() call. setenv() and unsetenv() are self
explanatory.

The kenv(2) syscall exports these new functionalities to userland,
mainly for kenv(1).

Reviewed by: peter


# 82813a8c 03-Apr-2002 Ruslan Ermilov <ru@FreeBSD.org>

Don't clobber headers that we didn't create.

Noticed by: bde
Reviewed by: bde


# 6ba22b48 01-Apr-2002 Poul-Henning Kamp <phk@FreeBSD.org>

Remove the disktab.h include file from the build.


# 9f1207d5 26-Mar-2002 Ruslan Ermilov <ru@FreeBSD.org>

Install sys/security/lomac/*.h to /usr/include/security/lomac/.

Install sys/<arch>/include/pc/*.h to /usr/include/machine/pc/.

PR: docs/29534

Install sys/netatm/*/*.h to /usr/include/netatm/*/.

Don't install compatibility symlinks for <machine/soundcard.h>
and <machine/joystick.h>. Three years is enough to be aware of
the change, and these weren't visible in the SHARED=symlinks
case.

Back out include/Makefile,v 1.160 that was a null change anyway
due to the bug in the path, and we now don't want to install
these headers because they would otherwise be invisible in the
SHARED=symlinks case.

Don't install IPFILTER headers. Userland utilities fetch them
directly, and they were not visible in the SHARED=symlinks case.

Resurrect SHARED=symlinks in Makefile.inc1.

PR: bin/28002

Prodded by: bde
MFC after: 2 weeks


# 7a43a96a 21-Mar-2002 Ruslan Ermilov <ru@FreeBSD.org>

Replaced hacks in sbin/Makefile,v 1.99 and usr.sbin/Makefile,v 1.217
with the NO_IPFILTER make.conf(5) knob.

(So that we can "make the-rest-of-the-world" again.)


# 0d6fcb5c 31-Dec-2001 Doug Ambrisko <ambrisko@FreeBSD.org>

Fix bugs in the structure for rx_frame by making gap length one byte and
a packed array so sizeof work. This broke RFMON mode and passing
up 802.11 packets.

The Linux emulation code was derived from the open source Linux driver to
maintain compatibility.

LEAP support is added, hints from Richard Johnson. I've verified this
locally with PC350v42510.img firmware. More bug fixing from Marco to
fix long passwords.

Change DELAYs in flash part of driver to FLASH_DELAY which uses tsleep
so it doesn't look like your system died during a flash update.

Install header files in /usr/include/dev/an

Cleanup some ifmedia bugs add "Home" key mode to ifmedia and ancontrol.
This way you can manage 2 keys a little easier. Map the home mode into
key 5. Enhance ifconfig to dump the various configured SSIDs. I use
a bunch of different ones and roam between them. Use the syntax similar
to the WEP keys to deal with setting difference SSIDs.

Bump up up the Card capabilities RID since they added 2 bytes to it
in the latest firmware. Thankfully we changed it from a terminal
failure so the card still worked but the driver whined.

Some cleanup patches from Marco Molteni.

Submitted by: Richard Johnson <raj@cisco.com>
Marco Molteni <molter@tin.it>
and myself
Various checks: David Wolfskill <david@catwhisker.org>
Reviewed by: Brooks Davis <brooks@freebsd.org>
Warner Losh <imp@freebsd.org>
Approved by: Brooks Davis <brooks@freebsd.org>
Warner Losh <imp@freebsd.org>
Obtained from: Linux emulation API's from Aironet driver.


# a7aaf57e 17-Dec-2001 Ruslan Ermilov <ru@FreeBSD.org>

FILES support for bsd.prog.mk. See bsd.README for details.

Stolen from: NetBSD


# 125c50cd 17-Dec-2001 Brian Feldman <green@FreeBSD.org>

Install devfs includes.


# 85519b00 14-Dec-2001 Sheldon Hearn <sheldonh@FreeBSD.org>

Add bmake glue for src/contrib/smbfs and connect userland smbfs
support to the build.

The MFC reminder below is subject to <re@FreeBSD.org> approval
prior to 4.5-RELEASE.

Reviewed by: bp, fjoe
MFC: 1 week


# 20ad349d 11-Dec-2001 Alexey Zelkin <phantom@FreeBSD.org>

Get rid of unsed since rev 1.109 of lib/Makefile WANT_CSRG_LIBM define.

We'll never install math.h wrapped by this define since msun's math.h
is using, so it should be removed from the source tree at some point
(after merge of useful stuff to msun's math.h which is installing now
to /usr/include)

Reviewed by: bde


# 13d98e8c 20-Nov-2001 Brian Feldman <green@FreeBSD.org>

Introduce readpassphrase(3), a superset of getpass(3). This
comes originally from Todd Miller.

Obtained from: OpenBSD


# bd048987 20-Nov-2001 Brian Feldman <green@FreeBSD.org>

Install LOMAC includes from the new directory.


# 3d383bb3 18-Nov-2001 Brian Feldman <green@FreeBSD.org>

Install LOMAC public headers.

Sponsored by: DARPA, NAI Labs (CBOSS project)


# 0ac2d551 02-Nov-2001 Mike Barcroft <mike@FreeBSD.org>

o Add new header <sys/stdint.h>.
o Make <stdint.h> a symbolic link to <sys/stdint.h>.
o Move most of <sys/inttypes.h> into <sys/stdint.h>, as per C99.
o Remove <sys/inttypes.h>.
o Adjust includes in sys/types.h and boot/efi/include/ia64/efibind.h
to reflect new location of integer types in <sys/stdint.h>.
o Remove previously symbolicly linked <inttypes.h>, instead create a
new file.
o Add MD headers <machine/_inttypes.h> from NetBSD.
o Include <sys/stdint.h> in <inttypes.h>, as required by C99; and
include <machine/_inttypes.h> in <inttypes.h>, to fill in the
remaining requirements for <inttypes.h>.
o Add additional integer types in <machine/ansi.h> and
<machine/limits.h> which are included via <sys/stdint.h>.

Partially obtain from: NetBSD
Tested on: alpha, i386
Discussed on: freebsd-standards@bostonradio.org
Reviewed by: bde, fenner, obrien, wollman


# 6d14a7bf 01-Oct-2001 David E. O'Brien <obrien@FreeBSD.org>

Back out WIP that snuck in with revs 1.15[23].


# 757eeda0 01-Oct-2001 David E. O'Brien <obrien@FreeBSD.org>

*** empty log message ***


# 91196234 18-Sep-2001 Peter Wemm <peter@FreeBSD.org>

Userland part of nfs client/server split and cleanup.


# 8203d651 06-Sep-2001 Ruslan Ermilov <ru@FreeBSD.org>

Sort FILES.


# cc30da9d 05-Sep-2001 Alexey Zelkin <phantom@FreeBSD.org>

add monetary.h as per POSIX requirement


# 766ea92b 16-Jun-2001 Peter Wemm <peter@FreeBSD.org>

Revise wording of osreldate.h vs kernel warning to make it clear that it
is a userland-only header.


# d28011e5 13-Jun-2001 Ruslan Ermilov <ru@FreeBSD.org>

Added skeleton <complex.h> (aligned with the POSIX.1-200x), mostly
to fix the "-nostdinc WARNS=X" breakage caused by broken prototypes
for cabs() and cabsl() in <math.h>.

Reimplemented cabs() and cabsl() using new complex numbers types and
moved prototypes from <math.h> to <complex.h>.


# 86663b44 06-Jun-2001 Jonathan Lemon <jlemon@FreeBSD.org>

Fix previous commit which inadverdently deleted a section.


# 88d74af5 06-Jun-2001 Jonathan Lemon <jlemon@FreeBSD.org>

Relocate IPFilter from sys/netinet to sys/contrib/ipfilter.


# 4dd07260 04-Jun-2001 Joerg Wunsch <joerg@FreeBSD.org>

Round #2 of the sys/isa/ic/ => sys/dev/ic/ move: install sys/dev/ic
as /usr/include/dev/ic.


# c3154730 29-May-2001 Poul-Henning Kamp <phk@FreeBSD.org>

Remove MFS.


# 8a8402d3 26-May-2001 Ruslan Ermilov <ru@FreeBSD.org>

- sys/n[tw]fs moved to sys/fs/n[tw]fs
- /usr/include/n[tw]fs moved to /usr/include/fs/n[tw]fs


# 1166fb51 25-May-2001 Ruslan Ermilov <ru@FreeBSD.org>

- sys/msdosfs moved to sys/fs/msdosfs
- msdos.ko renamed to msdosfs.ko
- /usr/include/msdosfs moved to /usr/include/fs/msdosfs


# c2608318 23-May-2001 Ruslan Ermilov <ru@FreeBSD.org>

Backout (almost) revision 1.137 changes.

Removal of LSYMSUBDIRS was a regression.

The purpose of LSYMSUBDIRS is to export only those /sys headers in the
SHARED=symlinks case that are also visible in the SHARED=copies case.

Requested by: bde


# 69494725 23-May-2001 Ruslan Ermilov <ru@FreeBSD.org>

Argh, unbreak SHARED=copied case.


# 99d300a1 23-May-2001 Ruslan Ermilov <ru@FreeBSD.org>

- FDESC, FIFO, NULL, PORTAL, PROC, UMAP and UNION file
systems were repo-copied from sys/miscfs to sys/fs.

- Renamed the following file systems and their modules:
fdesc -> fdescfs, portal -> portalfs, union -> unionfs.

- Renamed corresponding kernel options:
FDESC -> FDESCFS, PORTAL -> PORTALFS, UNION -> UNIONFS.

- Install header files for the above file systems.

- Removed bogus -I${.CURDIR}/../../sys CFLAGS from userland
Makefiles.


# 7ec00975 20-May-2001 Ruslan Ermilov <ru@FreeBSD.org>

Get rid of LSYMSUBDIRS by merely setting up symlinks to LNOHEADERDIRS.


# 4be85475 19-May-2001 Brian Somers <brian@FreeBSD.org>

Back out previous commit. digiio.h has moved to /usr/include/sys


# cf7134be 16-May-2001 Brian Somers <brian@FreeBSD.org>

Install /sys/dev/digi/digiio.h as /usr/include/dev/digi/digiio.h

I use the (new) DEVFILES variable rather than LSUBDIRS because
only the public interface (digiio.h) should be installed.


# c424b7d0 16-May-2001 Ruslan Ermilov <ru@FreeBSD.org>

Install wchar.h and wctype.h.

Forgotten by: tshiozak


# 385789f5 06-May-2001 David E. O'Brien <obrien@FreeBSD.org>

Add elf.h header back, its existance is an SVR4-ELF tradition.
Our ELF hints bits are still a seperate file.

Requested by: jdp


# 5e6220d9 02-May-2001 David E. O'Brien <obrien@FreeBSD.org>

* include/elf.h has been repo copied to include/elf-hints.h, and it no
longer includes machine/elf.h.
* consumers of elf.h now use the minimalist elf header possible.

This change is motivated by Binutils 2.11.0 and too much clashing over
our base elf headers and the Binutils elf headers.


# 6c9f45bd 11-Apr-2001 Boris Popov <bp@FreeBSD.org>

Actually install include/fs/smbfs and include/netsmb directories.


# 8360efbd 18-Mar-2001 Alfred Perlstein <alfred@FreeBSD.org>

Bring in a hybrid of SunSoft's transport-independent RPC (TI-RPC) and
associated changes that had to happen to make this possible as well as
bugs fixed along the way.

Bring in required TLI library routines to support this.

Since we don't support TLI we've essentially copied what NetBSD
has done, adding a thin layer to emulate direct the TLI calls
into BSD socket calls.

This is mostly from Sun's tirpc release that was made in 1994,
however some fixes were backported from the 1999 release (supposedly
only made available after this porting effort was underway).

The submitter has agreed to continue on and bring us up to the
1999 release.

Several key features are introduced with this update:
Client calls are thread safe. (1999 code has server side thread
safe)
Updated, a more modern interface.

Many userland updates were done to bring the code up to par with
the recent RPC API.

There is an update to the pthreads library, a function
pthread_main_np() was added to emulate a function of Sun's threads
library.

While we're at it, bring in NetBSD's lockd, it's been far too
long of a wait.

New rpcbind(8) replaces portmap(8) (supporting communication over
an authenticated Unix-domain socket, and by default only allowing
set and unset requests over that channel). It's much more secure
than the old portmapper.

Umount(8), mountd(8), mount_nfs(8), nfsd(8) have also been upgraded
to support TI-RPC and to support IPV6.

Umount(8) is also fixed to unmount pathnames longer than 80 chars,
which are currently truncated by the Kernel statfs structure.

Submitted by: Martin Blapp <mb@imp.ch>
Manpage review: ru
Secure RPC implemented by: wpaul


# 44cde775 18-Feb-2001 Peter Wemm <peter@FreeBSD.org>

Be extra certain that "#include <osreldate.h>" must not be used in
kernel code.


# 2eeaef6e 08-Feb-2001 Alexey Zelkin <phantom@FreeBSD.org>

add langinfo.h


# 0b065585 08-Jan-2001 Peter Wemm <peter@FreeBSD.org>

Move MD <machine/if_wavelan_ieee.h> to MI <dev/wi/if_wavelan_ieee.h>


# 3e27dc31 02-Jan-2001 Sheldon Hearn <sheldonh@FreeBSD.org>

Remove struct.h, which has been punted into the Attic.


# ebe53e9e 16-Oct-2000 Brian Somers <brian@FreeBSD.org>

Add netnatm to LDIRS

Submitted by: Makoto MATSUSHITA <matusita@jp.FreeBSD.org>


# 8cf0402e 16-Sep-2000 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>

Welcome stdbool.h. A header file from the ANSI C99 specification.
It defines the boolean values.


# 40a9e718 15-Sep-2000 Andrey A. Chernov <ache@FreeBSD.org>

Use MTREE_FOLLOWS_SYMLINKS option
This is part of whole subsystem fixing

Reviewed by: imp


# 3e8d5c23 13-Sep-2000 Ruslan Ermilov <ru@FreeBSD.org>

There is no reason to clobber ${DESTDIR}/usr/include/{isofs,ufs,dev}
in SHARED=copies case since all symbolic links previously created by
SHARED=symlinks install have already been removed to that point.

PR: misc/21150


# 9bb715b7 06-Sep-2000 Peter Wemm <peter@FreeBSD.org>

I have not tested this to completion yet, but this appears to fix world.
Add nsswitch.h to the list of includes installed.


# 248aee62 06-Sep-2000 Jacques Vidrine <nectar@FreeBSD.org>

Add nsswitch support. By creating an /etc/nsswitch.conf file, you can
configure FreeBSD so that various databases such as passwd and group can be
looked up using flat files, NIS, or Hesiod.

= Hesiod has been added to libc (see hesiod(3)).

= A library routine for parsing nsswitch.conf and invoking callback
functions as specified has been added to libc (see nsdispatch(3)).

= The following C library functions have been modified to use nsdispatch:
. getgrent, getgrnam, getgrgid
. getpwent, getpwnam, getpwuid
. getusershell
. getaddrinfo
. gethostbyname, gethostbyname2, gethostbyaddr
. getnetbyname, getnetbyaddr
. getipnodebyname, getipnodebyaddr, getnodebyname, getnodebyaddr

= host.conf has been removed from src/etc. rc.network has been modified
to warn that host.conf is no longer used at boot time. In addition, if
there is a host.conf but no nsswitch.conf, the latter is created at boot
time from the former.

Obtained from: NetBSD


# 1250db81 31-Aug-2000 Dag-Erling Smørgrav <des@FreeBSD.org>

Import XPG4-compliant basename(3) and dirname(3) from OpenBSD.
The man pages need some adjustments.

PR: 12960, 12962
Submitted by: James Howard <howardjp@wam.umd.edu>
Obtained from: OpenBSD


# 0e8911b3 17-Aug-2000 John Baldwin <jhb@FreeBSD.org>

Revert gratuitous whitespace changes from revisions 1.111 and 1.112.


# 11017a68 23-Jul-2000 Marcel Moolenaar <marcel@FreeBSD.org>

Backout addition of -L switch to mtree. Using -L breaks the
build process in too many cases. Adding mtree to bootstrap-tools
to solve this breaks the upgrade path because mtree needs a
libc that has strtofflags and fflagstostr.


# 043ada10 16-Jul-2000 Andrey A. Chernov <ache@FreeBSD.org>

Add -L to mtree


# 23ba0142 04-Jul-2000 Jun-ichiro itojun Hagino <itojun@FreeBSD.org>

add getifaddrs(3) from bsdi. this is a magic function which lets you grab
interface addresses in a portable manner, without headache of SIOCGIFCONF
or sysctl. it is in bsdi/openbsd/netbsd already.
from kame tree (actually, mandatory for latest kame tree).


# 64566a3e 01-Jul-2000 Alfred Perlstein <alfred@FreeBSD.org>

bring in binary search tree code.

Obtained from: NetBSD


# f612e24f 19-May-2000 Peter Wemm <peter@FreeBSD.org>

Install /usr/include/dev/ppbus as well as dev/usb


# 83a15ece 18-Apr-2000 Jonathan Lemon <jlemon@FreeBSD.org>

Revert previous commit, and remove the <event.h> symlink. As this is
a system-specific extension, not a standardized interface, it should
be located with the sys/ includes.

Requested by: wollman


# 6fad667d 16-Apr-2000 Jonathan Lemon <jlemon@FreeBSD.org>

Create <event.h> -> <sys/event.h> link that I forgot earlier.

Reminded by: ache


# 3021afb5 06-Apr-2000 Ruslan Ermilov <ru@FreeBSD.org>

The idea always was that `make copies' should undo the
`make symlinks' job, but it got broken in rev 1.109.

Restore the correct behaviour.


# 4ba51977 26-Jan-2000 Peter Wemm <peter@FreeBSD.org>

Sigh. Really fix it this time. It seems the first time through the
run it would modify the source tree, causing it to fail the second
time around. Sigh.


# 400dc950 26-Jan-2000 Peter Wemm <peter@FreeBSD.org>

Fix world breakage (kdump, truss) causes by rev 1.107 (adding dev/usb).
It was creating ${.OBJDIR}/${MACHINE}/usr/include/dev -> .../sys/dev
and mkioctls would descend that and saw *all* of src/sys/dev/*/*.h,
not just dev/usb/*.h. It then choked on the dpt includes.


# fcc56d99 25-Jan-2000 Nick Hibma <n_hibma@FreeBSD.org>

Install the USB include files in /usr/include/dev/usb.

We should still sort out some way of avoiding the clutter. Not all files
should be there.

Prompted by: Louis A. Mamakos <louie@TransSys.COM>


# 15f3c66c 09-Dec-1999 Marcel Moolenaar <marcel@FreeBSD.org>

Revert previous commit.

Requested by: bde


# 02cca882 08-Dec-1999 Marcel Moolenaar <marcel@FreeBSD.org>

Remove support for symlinks instead of copies. This also avoids
using mtree. Space is being saved by other means.


# 5af7944d 05-Dec-1999 Peter Wemm <peter@FreeBSD.org>

Create a symlink for <machine/joystick.h>, like soundcard.h


# 5bf42115 03-Dec-1999 Semen Ustimenko <semenu@FreeBSD.org>

Added ntfs subdir to be filled.


# fd9ec25a 05-Nov-1999 Jonathan Lemon <jlemon@FreeBSD.org>

Add missing netinet6.

Detected by: make world


# 4cf49a43 21-Oct-1999 Julian Elischer <julian@FreeBSD.org>

Whistle's Netgraph link-layer (sometimes more) networking infrastructure.
Been in production for 3 years now. Gives Instant Frame relay to if_sr
and if_ar drivers, and PPPOE support soon. See:
ftp://ftp.whistle.com/pub/archie/netgraph/index.html
for on-line manual pages.

Reviewed by: Doug Rabson (dfr@freebsd.org)
Obtained from: Whistle CVS tree


# f24bb3a4 14-Oct-1999 Boris Popov <bp@FreeBSD.org>

Make libncp actually compiled.

Reviewed by: mdodd


# 56638eb6 04-Oct-1999 Peter Wemm <peter@FreeBSD.org>

Complete move of kvm.h to lib/libkvm so it's self contained.


# e1a16478 03-Oct-1999 Marcel Moolenaar <marcel@FreeBSD.org>

Link ucontext.h to sys/ucontext.h

Pointed out by: bde


# c08e808e 05-Sep-1999 Peter Wemm <peter@FreeBSD.org>

Only install backwards compat symlink for <machine/soundcard.h> if using
the default SHARED=copies, otherwise the kernel source tree gets modified
if /usr/include/machine is a symlink to the source tree (which is not the
case by default). Nothing in our src tree uses <machine/soundcard.h>.

Pointed out by: bde


# df791b1e 04-Sep-1999 Peter Wemm <peter@FreeBSD.org>

Install a symlink for <machine/soundcard.h> -> <sys/soundcard.h> rather
than having stubs. (OK'ed by dfr)


# a4add9a9 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# 7f29144b 21-Mar-1999 Poul-Henning Kamp <phk@FreeBSD.org>

Nuke old copies of /usr/include/timepps.h


# 8b2de661 11-Mar-1999 Poul-Henning Kamp <phk@FreeBSD.org>

Remove <timepps.h> here as well.

You will need to manually rip it from /usr/include if it gives you any
trouble.


# f7393ece 17-Jan-1999 Dmitrij Tejblum <dt@FreeBSD.org>

Install <sys/aio.h> as <aio.h>.


# 1c3cb578 14-Jan-1999 John Polstra <jdp@FreeBSD.org>

Instead of a wrapper <linker_set.h>, use a symlink to
<sys/linker_set.h>.

Submitted by: bde


# a528ae53 13-Jan-1999 John Polstra <jdp@FreeBSD.org>

Add a wrapper <linker_set.h> for <sys/linker_set.h>, so that
userland programs can use linker sets.


# b7f76213 23-Dec-1998 Doug Rabson <dfr@FreeBSD.org>

Implement fpsetmask() and other fp*() functions. Programs should use

#include <ieeefp.h>

to access these functions instead of the i386 specific

#include <machine/floatingpoint.h>

Submitted by: Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>


# 68626e8d 18-Dec-1998 Dmitrij Tejblum <dt@FreeBSD.org>

Install <sys/inttypes.h> as <inttypes.h>.


# 996997fd 17-Oct-1998 Bruce Evans <bde@FreeBSD.org>

Don't even think about using a sysctl to build osreldate.h, since this
breaks cross-builds. Just depend on ${.CURDIR}/../sys/conf/newvers.sh
existing.

Don't override the (correct) defaults for the depend, lint or tags target.

In LDIRS: fixed order-rot. Don't comment out dead networking directories;
remove them.


# d0de224a 02-Oct-1998 Andrey A. Chernov <ache@FreeBSD.org>

back out h2ph from here, Bruce found another proper place


# 3514e2d6 01-Oct-1998 Andrey A. Chernov <ache@FreeBSD.org>

Add h2ph call to afterinstall target
Error code ignored to allow building without perl installed


# 3f8c4506 15-Sep-1998 Poul-Henning Kamp <phk@FreeBSD.org>

(this is an extract from src/share/examples/atm/README)

===================================
HARP | Host ATM Research Platform
===================================

HARP 3

What is this stuff?
-------------------
The Advanced Networking Group (ANG) at the Minnesota Supercomputer Center,
Inc. (MSCI), as part of its work on the MAGIC Gigabit Testbed, developed
the Host ATM Research Platform (HARP) software, which allows IP hosts to
communicate over ATM networks using standard protocols. It is intended to
be a high-quality platform for IP/ATM research.

HARP provides a way for IP hosts to connect to ATM networks. It supports
standard methods of communication using IP over ATM. A host's standard IP
software sends and receives datagrams via a HARP ATM interface. HARP provides
functionality similar to (and typically replaces) vendor-provided ATM device
driver software.

HARP includes full source code, making it possible for researchers to
experiment with different approaches to running IP over ATM. HARP is
self-contained; it requires no other licenses or commercial software packages.

HARP implements support for the IETF Classical IP model for using IP over ATM
networks, including:

o IETF ATMARP address resolution client
o IETF ATMARP address resolution server
o IETF SCSP/ATMARP server
o UNI 3.1 and 3.0 signalling protocols
o Fore Systems's SPANS signalling protocol

What's supported
----------------
The following are supported by HARP 3:

o ATM Host Interfaces
- FORE Systems, Inc. SBA-200 and SBA-200E ATM SBus Adapters
- FORE Systems, Inc. PCA-200E ATM PCI Adapters
- Efficient Networks, Inc. ENI-155p ATM PCI Adapters

o ATM Signalling Protocols
- The ATM Forum UNI 3.1 signalling protocol
- The ATM Forum UNI 3.0 signalling protocol
- The ATM Forum ILMI address registration
- FORE Systems's proprietary SPANS signalling protocol
- Permanent Virtual Channels (PVCs)

o IETF "Classical IP and ARP over ATM" model
- RFC 1483, "Multiprotocol Encapsulation over ATM Adaptation Layer 5"
- RFC 1577, "Classical IP and ARP over ATM"
- RFC 1626, "Default IP MTU for use over ATM AAL5"
- RFC 1755, "ATM Signaling Support for IP over ATM"
- RFC 2225, "Classical IP and ARP over ATM"
- RFC 2334, "Server Cache Synchronization Protocol (SCSP)"
- Internet Draft draft-ietf-ion-scsp-atmarp-00.txt,
"A Distributed ATMARP Service Using SCSP"

o ATM Sockets interface
- The file atm-sockets.txt contains further information

What's not supported
--------------------
The following major features of the above list are not currently supported:

o UNI point-to-multipoint support
o Driver support for Traffic Control/Quality of Service
o SPANS multicast and MPP support
o SPANS signalling using Efficient adapters

This software was developed under the sponsorship of the Defense Advanced
Research Projects Agency (DARPA).

Reviewed (lightly) by: phk
Submitted by: Network Computing Services, Inc.


# 78e77472 15-Sep-1998 Justin T. Gibbs <gibbs@FreeBSD.org>

Add new cam include hierarchy.


# c2c43bd1 09-Sep-1998 KATO Takenori <kato@FreeBSD.org>

Change i386 in a few paths to ${MACHINE} to support MACHINE=pc98.


# cfa4d739 08-Sep-1998 John Polstra <jdp@FreeBSD.org>

Add a new library function getobjformat(). It checks all the
standard places ("/etc/objformat", ${OBJFORMAT}, argv) for an
indication of the user's preferred object file format. This
consolidates some code that was starting to be duplicated in more
and more places.

Use the new function in ldconfig.

Note: I don't think that gcc should use getobjformat(), even though
it could. The compiler should limit itself to functions that are
widespread, to ease porting and cross-compilation.


# 0c20d793 01-Aug-1998 Alexander Langer <alex@FreeBSD.org>

Added iso646.h as defined by the Single UNIX Specification, version 2.


# a28ce30e 11-Jun-1998 Peter Wemm <peter@FreeBSD.org>

Install arpa/nameser_compat.h


# 8afeddf0 07-Jun-1998 Poul-Henning Kamp <phk@FreeBSD.org>

This is a prototype implementation of the draft-mogul-pps-api-##.txt
paper.

It will be updated along with the draft and possible subsequent
standard.

The ppbus based pps driver is updated to implement this API.


# 3933c622 21-May-1998 Eivind Eklund <eivind@FreeBSD.org>

Move __FreeBSD_version from src/sys/conf/newvers.sh to
src/sys/sys/param.h, to facilitate access from the kernel. This make
it possible to do outside kernel development and have it actually work
properly.


# 8a6472b7 28-Mar-1998 Peter Dufault <dufault@FreeBSD.org>

Finish _POSIX_PRIORITY_SCHEDULING. Needs P1003_1B and
_KPOSIX_PRIORITY_SCHEDULING options to work. Changes:

Change all "posix4" to "p1003_1b". Misnamed files are left
as "posix4" until I'm told if I can simply delete them and add
new ones;

Add _POSIX_PRIORITY_SCHEDULING system calls for FreeBSD and Linux;

Add man pages for _POSIX_PRIORITY_SCHEDULING system calls;

Add options to LINT;

Minor fixes to P1003_1B code during testing.


# d60d35dd 08-Mar-1998 John Birrell <jb@FreeBSD.org>

My sched.h is getting walloped by Peter Dufault's. Nuke mine. Sorry.


# dc79e6f2 07-Mar-1998 John Birrell <jb@FreeBSD.org>

Add a POSIX sched header. pthread_yield() in draft 4 becomes
sched_yield() in the final draft (10). This header contains the
prototype. Other things in here are "future".


# 917e476d 04-Mar-1998 Peter Dufault <dufault@FreeBSD.org>

Reviewed by: msmith, bde long ago
POSIX.4 headers and sysctl variables. Nothing should change
unless POSIX4 is defined or _POSIX_VERSION is set to 199309.


# 59bd6ec5 12-Feb-1998 Bruce Evans <bde@FreeBSD.org>

Uncommit the generated file key_prot.h. Install it from where it
is generated. It must be installed in both /usr/include/rpc/ and
/usr/include/rpcsvc/ for historical reasons. The generated version
was once missing ANSI prototypes because the wrong flags were passed
to rpcgen, but that is fixed now. The committed version had `#pragma
indent' which gratuitously broke K&R support. Apart from this, all
versions before and after this commit are identical.


# 0fbd9e98 10-Feb-1998 John Polstra <jdp@FreeBSD.org>

Remove the include of <dlfcn.h> from crt0.c; it is not needed now
that the dl* trampolines have been moved into libc.

Move dlfcn.h from src/lib/csu/i386 into src/include. Nothing in
src/lib/csu/i386 uses it any more.


# 7e291b9c 30-Jan-1998 Warner Losh <imp@FreeBSD.org>

kill ufs/lfs so that make installworld completes successfully.


# 85101103 02-Jan-1998 Jordan K. Hubbard <jkh@FreeBSD.org>

unborkify osreldate.h install (change \ to / - someone was in DOS mode! ;)


# 953757af 01-Jan-1998 Steve Price <steve@FreeBSD.org>

Install osreldate.h from ${.OBJDIR}.

Submitted by: Bruce Evans <bde@zeta.org.au>


# bd00bedc 03-Oct-1997 Mark Murray <markm@FreeBSD.org>

Reinsert telnet.h into the list of files installed into include/arpa/
I suspect a commit of mine had this (bogusly).


# 2ca29c44 28-Sep-1997 Mark Murray <markm@FreeBSD.org>

Changes for KTH KerberosIV.
telent.h is installed from libtelnet, not the include dir.


# 3b6f5a5b 16-Sep-1997 Bruce Evans <bde@FreeBSD.org>

Removed installhdrs target. It was an unnecessary complication.


# c4ea5f72 13-Sep-1997 Peter Wemm <peter@FreeBSD.org>

SYSV has both <poll.h> and <sys/poll.h>. (poll.h merely #includes
sys/poll.h). Just provide a link, it's close enough. :-) In an ideal
world the prototype for poll() would be in <poll.h> but some code seems
to expect it in <sys/poll.h>, so we can't win there.


# cfca13bf 21-Aug-1997 Bruce Evans <bde@FreeBSD.org>

Don't traverse subdirectories twice for normal installs.


# 4604167e 21-Aug-1997 John-Mark Gurney <jmg@FreeBSD.org>

fix a problem with headers not being installed properly... basicly the
installhdrs target was not being propagated to the subdirs...

also fix rpcsvc's Makefile to have a installhdrs target to install the
headers..


# ef75e7ac 18-Aug-1997 Peter Wemm <peter@FreeBSD.org>

split beforeinstall hook up so that the header install stuff is reachable
without risking invoking ${SHARED}.


# 3b29be9b 31-Jul-1997 Satoshi Asami <asami@FreeBSD.org>

Use relative symlinks so they work even when ${DESTDIR} is not empty.

Reviewed by: jkh, bde


# cf44448e 25-Jun-1997 Mike Smith <msmith@FreeBSD.org>

Add stringlist functions from NetBSD. (required for the new ftp(1)
Obtained from: NetBSD


# b97151f2 05-Jun-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Go to SHARED=copies by default.
Agreed-upon by: lots-o-folks.


# 1ec6937f 27-May-1997 Bill Paul <wpaul@FreeBSD.org>

Add new files in include/rpc.


# 5851a365 21-May-1997 John Polstra <jdp@FreeBSD.org>

Fill out the ELF header files to make them more or less complete.
Fix a macro name that was misspelled both in brandelf.c and
imgact_elf.h.


# 3672faea 12-May-1997 Peter Wemm <peter@FreeBSD.org>

Build osreldate.h at build time rather than install time. This fixes
a breakage with 'make reinstall' on a read-only source tree.


# 26b2d5c0 09-May-1997 David Nugent <davidn@FreeBSD.org>

Removed login_cap.h, now moved to src/lib/libutil.


# d206682b 25-Apr-1997 Satoshi Asami <asami@FreeBSD.org>

Don't try to install f2c'h now that it's installed from
/usr/src/usr.bin/f2c. :)


# 5f9b5b67 09-Mar-1997 Bruce Evans <bde@FreeBSD.org>

Don't use a dot in the chown command. In fact, don't use a chown command.
Use mtree instead of mkdir+chown+chmod to build the subdirectory hierachy.
The corresponding mtree command in src/etc/Makefile can't be relied on
because the hierachy gets blown away in the default SHARED=symlinks case.


# 4eaa194d 02-Mar-1997 Bruce Evans <bde@FreeBSD.org>

Install headers for isofs/cd9660 and msdosfs. The mount utilities need
them now that <sys/mount.h> no longer declares filesytem-specific mount
args structs.

Renamed some macros to be less ufs-centric.

Fixed order of mkdirs. The order has been broken since the backwards
`.for' loop bug was fixed in `make' on 1996/09/21.


# 79403fe3 23-Feb-1997 Peter Wemm <peter@FreeBSD.org>

Revert $FreeBSD$ to $Id$


# 1130b656 14-Jan-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# 66f27e5c 04-Jan-1997 Søren Schmidt <sos@FreeBSD.org>

Add the forgotten login_cap.h


# 89eac964 30-Dec-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Geeze, I'm really off-target on my Makefile hacking tonite. Guess I'll
go to bed. :-) Revert this change which would have broken the ${DESTDIR}
relative link when chrooted.

Pointed-Out-To-My-Embarassment-By: bde


# cb9de2a6 29-Dec-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Add some missing ${DESTDIR}s here.


# cf3c4df7 17-Oct-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Add back netns


# 976cca35 20-Sep-1996 Bruce Evans <bde@FreeBSD.org>

Fixed CLEANFILES. osreldate was missing.
Cleaned up LDIRS line.


# a2480c3c 01-Sep-1996 Adam David <adam@FreeBSD.org>

install rpc header files


# 1133312c 30-Aug-1996 Peter Wemm <peter@FreeBSD.org>

echo -> ${ECHO}
do the rm -rf and ln -s in two seperate commands to allow a fork/exec
without a "sh -c" in the middle.

Submitted by: bde


# 56de53f2 29-Aug-1996 Peter Wemm <peter@FreeBSD.org>

Clean up include Makefile:
- use .for loops instead of shell for loops. This means we can be
shown what is happening while it's going, rather than some pacifier
"echo" statement.
- use "${INSTALL} -C", nuke the "cmp -s" hack
- for "copies" mode, the include files are no longer touched each time
the world is built. (ie: no rm -rf. symlinks are removed, mtree builds
the new dirs or confirms the existing ones)
- osreldate.h is build in the local dir and conditionally installed,
rather than built in /usr/include and either renamed or deleted.


# 0f7d6847 20-Aug-1996 Julian Elischer <julian@FreeBSD.org>

Submitted by: John Birrell <cimaxp1!jb@werple.net.au>

Here are the diffs for libc_r to get it one step closer to P1003.1c
These make most of the thread/mutex/condvar structures opaque to the
user. There are three functions which have been renamed with _np
suffixes because they are extensions to P1003.1c (I did them for JAVA,
which needs to suspend/resume threads and also start threads suspended).

I've created a new header (pthread_np.h) for the non-POSIX stuff.

The egrep tags stuff in /usr/src/lib/libc_r/Makefile that I uncommented
doesn't work. I think its best to delete it. I don't think libc_r needs
tags anyway, 'cause most of the source is in libc which does have tags.

also:

Here's the first batch of man pages for the thread functions.
The diff to /usr/src/lib/libc_r/Makefile removes some stuff that was
inherited from /usr/src/lib/libc/Makefile that should only be done with
libc.

also:

I should have sent this diff with the pthread(3) man page.
It allows people to type

make -DWANT_LIBC_R world

to get libc_r built with the rest of the world. I put this in the
pthread(3) man page. The default is still not to build libc_r.


also:
The diff attached adds a pthread(3) man page to /usr/src/share/man/man3.
The idea is that without libc_r installed, this man page will give people
enough info to know that they have to build libc_r.


# 7b2dfbf8 04-Aug-1996 Wolfram Schneider <wosch@FreeBSD.org>

Create FreeBSD copyright (c comment) for OS version


# 149fed77 09-Jul-1996 Andrey A. Chernov <ache@FreeBSD.org>

Add netatalk symlink, ifconfig not compiled in other case


# c72c7259 15-Jun-1996 Garrett Wollman <wollman@FreeBSD.org>

Add `netkey' to list of kernel directories to include in /usr/include.


# c9c3e92c 04-Jun-1996 Poul-Henning Kamp <phk@FreeBSD.org>

Install pccard includes.


# 2f8ed783 14-Feb-1996 Garrett Wollman <wollman@FreeBSD.org>

Don't install netns, it doesn't exist any more.


# d24ceb93 06-Feb-1996 Garrett Wollman <wollman@FreeBSD.org>

Don't install netccitt and netiso, they are going away.


# c2dc2eab 23-Jan-1996 Mike Pritchard <mpp@FreeBSD.org>

Add a missing "chmod 755 /usr/include/ufs" when copies of the include
files are installed instead of symlinks.


# f70177e7 21-Jan-1996 Julian Elischer <julian@FreeBSD.org>

Reviewed by: julian and (hsu?)
Submitted by: John Birrel(L?)

changes for threadsafe operations


# 985200a1 12-Nov-1995 Mark Murray <markm@FreeBSD.org>

Removed reference to missing mp.h in comment. We have GNU MP now.


# 2ef81f49 27-Oct-1995 Julian Elischer <julian@FreeBSD.org>

Submitted by: john hay
add a link in /usr/include to /sys/netipx


# 48cfb668 05-Aug-1995 Bruce Evans <bde@FreeBSD.org>

Change `install' to `${INSTALL}' so that default install flags can be
specified in the top level Makefiles.

Previously I missed dozens of Makefiles that skip the install after
using `cmp -s' to decide that the install isn't necessary.


# cffeb062 05-Aug-1995 Garrett Wollman <wollman@FreeBSD.org>

Don't install bogus tzfile.h. In fact, don't install any tzfile.h.


# 38d29ffc 13-Jul-1995 Rodney W. Grimes <rgrimes@FreeBSD.org>

Remove NOOBJ, we now need it.

Remove JUST_TELL_ME hack, let the newvers.sh output fall into the
obj dir, and add CLEANFILES= to clean up after it.


# 5e92b09f 13-Jul-1995 Rodney W. Grimes <rgrimes@FreeBSD.org>

Add a sprinkling of ${.CURDIR} to some paths so that this works
in the presence of an obj dir (though NOOBJ is set now, that shall
change in the near future.)


# 03060874 29-Mar-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add a necessary include file for the catgets* routines.
Obtained from: NetBSD


# 7f5473b3 26-Mar-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

add strhash.h for libc's new string hashing function.


# d7e1495a 22-Mar-1995 Poul-Henning Kamp <phk@FreeBSD.org>

A little fix related to libm/msun migration.
Reviewed by: phk
Submitted by: rgrimes


# afb8c020 19-Mar-1995 Poul-Henning Kamp <phk@FreeBSD.org>

Create osreldate.h from sys/conf/newvers.sh if we an find it. This
should take a completely ridiculous reboot out of the "make release"
process...


# 07cf92fa 18-Mar-1995 Rodney W. Grimes <rgrimes@FreeBSD.org>

Temporarily add mkdir/chown of /usr/include/${LUDIR} so that things
are consistent with the mtree file. These and all other mkdir/chown/
chmod calls shall be removed in a future version of this file.


# 89247e2d 15-Nov-1994 Andrey A. Chernov <ache@FreeBSD.org>

Add malloc.h for better SYSV/Linux compatibility like most
providers (like SUN f.e.) does.
malloc.h have comment about its SYSVism


# 49ccad71 01-Nov-1994 Paul Traina <pst@FreeBSD.org>

Clean up install rules


# bef25be8 30-Oct-1994 Andreas Schulz <ats@FreeBSD.org>

Delete the clean and cleandir target and let the bsd.prog.mk do the
work. Error was with the private clean/cleandir pair, the obj under
include/rpcsvc doesn't get cleaned out.


# a5a29f81 26-Oct-1994 L Jonas Olsson <ljo@FreeBSD.org>

Install f2c.h for FORTRAN support.
Obtained from: netlib.att.com


# 508bd973 02-Oct-1994 Bruce Evans <bde@FreeBSD.org>

Don't install symlink frame.h -> machine/frame.h. <frame.h> is nonstandard
and unused.


# 620377c4 29-Sep-1994 Paul Traina <pst@FreeBSD.org>

Only reinstall osreldate.h if necessary


# 26d43d51 29-Sep-1994 Paul Traina <pst@FreeBSD.org>

skey.h has moved elsewhere


# 458c5c89 15-Sep-1994 Bruce Evans <bde@FreeBSD.org>

Install osreldate.h with the correct owner, group and mode. It is still
created at install time and not compared with the current version, so
it can't be installed using install and the timestamp of the target gets
clobbered.


# 218cd6b6 08-Sep-1994 Bruce Evans <bde@FreeBSD.org>

Don't install math.h if WANT_MSUN is defined. lib/msun has its own
math.h with many extensions.


# f34a7038 28-Aug-1994 Bruce Evans <bde@FreeBSD.org>

Use ${ECHO} instead of `echo' so that `make -s' is fairly quiet.


# d90963f5 19-Aug-1994 Paul Richards <paul@FreeBSD.org>

Added skey.h to Makefile and reformatted the list a bit.
Reviewed by:
Submitted by:


# 9ae15916 10-Aug-1994 Garrett Wollman <wollman@FreeBSD.org>

Make it easier for programs to figure out what revision of FreeBSD they
are running under. Here's how to bootstrap (order is important):

1) Re-compile gcc (just the driver is all you need).
2) Re-compile libc.
3) Re-compile your kernel. Reboot.
4) cd /usr/src/include; make install

You can now detect the compilation environment with the following code:

#if !defined(__FreeBSD__)
#define __FreeBSD_version 199401
#elif __FreeBSD__ == 1
#define __FreeBSD_version 199405
#else
#include <osreldate.h>
#endif

You can determine the run-time environment by calling the new C library
function getosreldate(), or by examining the MIB variable kern.osreldate.

For the time being, the release date is defined as 199409, which we have
already established as our target.


# 437c3dee 07-Aug-1994 Garrett Wollman <wollman@FreeBSD.org>

Make sure that rpcsvc headers actually get installed.


# 02474d67 04-Aug-1994 Garrett Wollman <wollman@FreeBSD.org>

histedit.h is now installed from here, not from libedit.


# dba7a33e 04-Aug-1994 Garrett Wollman <wollman@FreeBSD.org>

Install RPC headers from include, like they always should have been.


# a68c32c7 04-Aug-1994 Garrett Wollman <wollman@FreeBSD.org>

Added glueo build rpcsvc stuff, and install floatingpoint.h.


# ee9183fa 28-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

Add link.h to list of headers to install.


# 3a7b365f 28-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

Make comments about what is missing the same as in other makefiles.
Remove the commented out stuff about X11 as the system sources should
not be doing anything with X11.


# fb502a37 26-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

Update the Makefile to work correctly when copying and/or symlinking
/usr/include.

Make comment about mp.h missing and remove it from the list of files.
Fix installation of ufs include files as this is now a tree ufs/{ffs,lfs,
mfs,ufs}.

Make setting of SHARED optional by makeing it SHARED?=.

Comment out installation of X11 includes since it does not work
for XFree86 until we get XFree86 to install as /usr/X11.

Update _PATH_UNIX to be /kernel. Remove /usr/{contrib,old}/bin from
_PATH_STDPATH.


# 59deaec5 24-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

BSD 4.4 Lite Include Sources