aboutsummaryrefslogtreecommitdiff
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* Fix build with WITHOUT_AUDIT=yes in src.confEmmanuel Vadot2021-04-151-5/+2
| | | | | | | | Always install the audit related includes are some part of the source always requires them. Reported by: many Fixes: 8c3eaf244a417a4
* Only symlink cryptodev.h into /usr/include/crypto/John Baldwin2021-03-191-4/+1
| | | | | | | I missed updating the symlink side in the earlier commit. Fixes: 283352dd4f6a3bb2f3c7cb45ce5dca3d86f5e3f4 MFC after: 1 week
* base: remove if_wg(4) and associated utilities, manpageKyle Evans2021-03-171-7/+2
| | | | | | | | | | | | 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.
* Revert "include: Remove symlink installation"Emmanuel Vadot2021-03-161-9/+108
| | | | This reverts commit 0006530aa14b9df56f88df7d819fae89b115d865.
* Revert "include: Tag directly the last headers"Emmanuel Vadot2021-03-161-8/+8
| | | | This reverts commit 839fc8cdf9b6bafe120e7da8a4b78950ad7295c4.
* include: Tag directly the last headersEmmanuel Vadot2021-03-161-8/+8
| | | | | | | | | 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
* include: Remove symlink installationEmmanuel Vadot2021-03-161-108/+9
| | | | | | | | | | | | | | 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
* pkgbase: Install all cam includes with INCSEmmanuel Vadot2021-03-161-3/+54
| | | | | | | | 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
* pkgbase: Install all BSM includes with INCSEmmanuel Vadot2021-03-161-2/+25
| | | | | | | | 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
* Stop installing kernel-only crypto headers to /usr/include/crypto.John Baldwin2021-03-161-15/+1
| | | | | | | | The only user-facing header from OCF is <crypto/cryptodev.h>. PR: 254167 (exp-run) MFC after: 1 week Sponsored by: Chelsio Communications
* if_wg: import latest fixup work from the wireguard-freebsd projectKyle Evans2021-03-151-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* Remove xform_poly1305.h from the build, it is not necessary.Scott Long2021-03-051-2/+1
|
* Remove __NO_TLS.Konstantin Belousov2021-02-231-2/+2
| | | | | | | | | All supported platforms support thread-local vars and __thread. Reviewed by: emaste Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D28796
* Fix make includes path to nvpair.hAlex Richardson2021-01-191-1/+1
| | | | Fixes a typo introduced in 9e5787d2284e187abb5b654d924394a65772e004
* include: Delete stale symlinks using find(1) instead of a shell loop.Alex Richardson2021-01-191-14/+7
| | | | | | | This reduces the number of execve() syscalls during make includes by 88. Reviewed By: jhb Differential Revision: https://reviews.freebsd.org/D27622
* pccard: Remove wi(4) driverWarner Losh2021-01-081-1/+1
| | | | | | | | | 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
* hid: Import hidraw(4) - driver for access to raw HID device dataVladimir Kondratyev2021-01-071-2/+4
| | | | | | | | | | | | 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
* Factor-out hardware-independent part of USB HID support to new moduleVladimir Kondratyev2021-01-071-2/+9
| | | | | | | | 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
* include: Use printf(1) instead of shell loops for header symlinksAlex Richardson2021-01-071-97/+52
| | | | | | | | | | | | | | 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
* include: Use INCSGROUPS for a few filesEmmanuel Vadot2021-01-041-65/+128
| | | | | | | | | 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
* include: Tag the last includes files as part of the -dev packageEmmanuel Vadot2021-01-041-22/+22
| | | | | Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D27618
* Add tcgetwinsize(3) and tcsetwinsize(3) to termiosKonstantin Belousov2020-12-251-0/+6
| | | | | | | | | | | | | | These functions get/set tty winsize respectively, and are trivial wrappers around corresponding termio ioctls. The functions are expected to be a part of POSIX.1 issue 8: https://www.austingroupbugs.net/view.php?id=1151#c3856. They are currently available in NetBSD and in musl libc. PR: 251868 Submitted by: Soumendra Ganguly <soumendraganguly@gmail.com> MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D27650
* Change POSIX compliance level for visibility of strerror_l(3).Konstantin Belousov2020-12-171-1/+1
| | | | | | | | | | | | | Third-party code tests for strerror_l(3) without specifying _POSIX_SOURCE, and then expects that the function is prototyped with _POSIX_SOURCE set to 200112. Reported and tested by: antoine Sponsored by: The FreeBSD Foundation MFC after: 13 days Notes: svn path=/head/; revision=368723
* Implement strerror_l().Konstantin Belousov2020-12-161-0/+1
| | | | | | | | | | | | | | Only for the arches that provide user-mode TLS. PR: 251651 Requested by: yuri Discussed with: emaste, jilles, tijl Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D27495 MFC after: 2 weeks Notes: svn path=/head/; revision=368692
* Add collation version support to querylocale(3).Thomas Munro2020-11-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | Provide a way to ask for an opaque version string for a locale_t, so that potential changes in sort order can be detected. Similar to ICU's ucol_getVersion() and Windows' GetNLSVersionEx(), this API is intended to allow databases to detect when text order-based indexes might need to be rebuilt. The CLDR version is extracted from CLDR source data by the Makefile under tools/tools/locale, written into the machine-generated Makefile under shared/colldef, passed to localedef -V, and then written into LC_COLLATE file headers. The initial version is 34.0. tools/tools/locale was recently updated to pull down 35.0, but the output hasn't been committed under share/colldef yet, so that will provide the first observable change when it happens. Other versioning schemes are possible in future, because the format is unspecified. Reviewed by: bapt, 0mp, kib, yuripv (albeit a long time ago) Differential Revision: https://reviews.freebsd.org/D17166 Notes: svn path=/head/; revision=367476
* Remove obsolete check for GCC < 3 and support for Intel CompilerWarner Losh2020-10-242-4/+1
| | | | | | | | | | | | | | We no longer support old versions of GCC. Remove this check by assuming it's false. That will make the entire expression false. Also remove support for Intel compiler, it's badly bitrotted. Technically, this removes support for C89 and K&R from compilers that don't define _Bool in those compilation environments as well. I'm unaware of any working compiler today for which that would be relevant (pcc has it and tcc sadly isn't working for other reasons), though if one pops up in ports, I'll work to resolve the issue. Notes: svn path=/head/; revision=367028
* Add search of LOCALBASE/share/calendar for calendars supplied by a port.Stefan Eßer2020-10-231-1/+4
| | | | | | | | | | | | | | | | | Calendar files in LOCALBASE override similarily named ones in the base system. This could easily be changed if the base system calendars should have precedence, but it could lead to a violation of POLA since then the port's files were ignored unless those in base have been deleted. There was no definition of _PATH_LOCALBASE in paths.h, but verbatim uses of /usr/local existed for _PATH_DEFPATH. Use _PATH_LOCALBASE here to ease a consistent modification of this prefix. Reviewed by: imp, pfg Differential Revision: https://reviews.freebsd.org/D26882 Notes: svn path=/head/; revision=366962
* Further refinements of ptsname_r(3) interface:Xin LI2020-10-201-4/+10
| | | | | | | | | | | | | | | | | - Hide ptsname_r under __BSD_VISIBLE for now as the specification is not finalized at this time. - Keep Symbol.map sorted. - Avoid the interposing of ptsname_r(3) from an user application from breaking ptsname(3) by making the implementation a static method and call the static function from ptsname(3) instead. Reported by: kib Reviewed by: kib, jilles MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D26845 Notes: svn path=/head/; revision=366866
* Implement ptsname_r.Xin LI2020-10-171-0/+1
| | | | | | | | | | MFC after: 2 weeks PR: 250062 Reviewed by: jilles, 0mp, Ray <i maskray me> Differential Revision: https://reviews.freebsd.org/D26647 Notes: svn path=/head/; revision=366781
* [PowerPC64LE] Ensure nvram is built on powerpc64le.Brandon Bergren2020-09-131-1/+1
| | | | | | | | | | Fix some cases where conditionals that were trying to exclude powerpcspe were also excluding powerpc64le. Sponsored by: Tag1 Consulting, Inc. Notes: svn path=/head/; revision=365694
* getlogin_r: fix the type of lenKyle Evans2020-09-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | getlogin_r is specified by POSIX to to take a size_t len, not int. Fix our version to do the same, bump the symbol version due to ABI change and provide compat. This was reported to break compilation of Ruby 2.8. Some discussion about the necessity of the ABI compat did take place in the review. While many 64-bit platforms would likely be passing it in a 64-bit register and zero-extended and thus, not notice ABI breakage, some do sign-extend (e.g. mips). PR: 247102 Submitted by: Bertram Scharpf <software@bertram-scharpf.de> (original) Submitted by: cem (ABI compat) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D26335 Notes: svn path=/head/; revision=365506
* Merge OpenZFS support in to HEAD.Matt Macy2020-08-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=364746
* <regex.h>: reserve a regcomp field for REG_POSIXKyle Evans2020-07-311-0/+1
| | | | | | | | | For libc regcomp, this will be a nop. libregex will take this to mean that it needs to turn off GNU extensions, effectively switching it back to the POSIX-compliant libc implementation at runtime. Notes: svn path=/head/; revision=363734
* Make CLOCK_REALTIME and TIMER_ABSTIME available for XOPEN_SOURCE >= 500.Konstantin Belousov2020-07-141-6/+8
| | | | | | | | | | | | Reported by: jbeich PR: 247701 Reviewed by: jilles Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D25554 Notes: svn path=/head/; revision=363193
* Install extra TCP stack header files: They are needed to compile a userlandOlivier Cochard2020-07-081-0/+1
| | | | | | | | | | | component of TCP Blackbox Recorder as example. Approved by: rrs Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D25584 Notes: svn path=/head/; revision=363032
* Add pthread_getname_np() and pthread_setname_np() aliases forKonstantin Belousov2020-06-101-0/+3
| | | | | | | | | | | | | | | pthread_get_name_np() and pthread_set_name_np(). This re-applies r361770 after compatibility fixes. Reviewed by: antoine, jkim, markj Tested by: antoine (exp-run) Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D25117 Notes: svn path=/head/; revision=362032
* Revert r361770 "Add pthread_getname_np() and pthread_setname_np() aliases" ↵Konstantin Belousov2020-06-041-2/+0
| | | | | | | | | | | | for now. It is not compatible enough with Linux. Requested by: antoine, jkim Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=361784
* Add pthread_getname_np() and pthread_setname_np() aliasesKonstantin Belousov2020-06-031-0/+2
| | | | | | | | | | | | | | for pthread_get_name_np() and pthread_set_name_np(), to be compatible with Linux. PR: 238404 Proposed and reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D25117 Notes: svn path=/head/; revision=361770
* Oops, I didn't notice the "cd" is needed for each install line.Rick Macklem2020-05-311-0/+1
| | | | Notes: svn path=/head/; revision=361682
* Update the Makefile to copy rpcsec_tls.h to /usr/include/rpc.Rick Macklem2020-05-311-1/+3
| | | | Notes: svn path=/head/; revision=361679
* Implement RTLD_DEEPBIND.Konstantin Belousov2020-05-151-0/+2
| | | | | | | | | | | PR: 246462 Tested by: Martin Birgmeier <d8zNeCFG@aon.at> Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D24841 Notes: svn path=/head/; revision=361073
* Add memalign(3), mostly for glibc compatibility.Konstantin Belousov2020-05-141-0/+3
| | | | | | | | | | Reviewed by: emaste, imp (previous version) Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D24307 Notes: svn path=/head/; revision=361060
* Make include/malloc.h usable again.Konstantin Belousov2020-05-121-5/+5
| | | | | | | | | | | | | | | | | | Lot of third-party Linux code uses #include <malloc.h>, expecting to find the malloc extensions there. Instead of trying to fight them, accept that attempt to deprecate the header causes more troubles than solves potential portability issues, and provide our jemalloc extensions. PR: 155429 Reviewed by: imp, jhibbits, dab, hselasky, philip, emaste, jilles Exp-run by: antoine (PR 245366) Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D24297 Notes: svn path=/head/; revision=360984
* Clear namespace pollution in include/malloc_np.hKonstantin Belousov2020-05-121-15/+21
| | | | | | | | | | | | | | | | | Do not include stdbool.h, it makes the header incompatible with some third-party code that typedefs bool manually. Remove inclusion of strings.h, which typically conflicts with the use of symbol 'index'. Separate inclusion of sys/cdefs.h is not needed because sys/types.h already handles that. Exp-run by: antoine (PR 245366) Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D24297 Notes: svn path=/head/; revision=360983
* Implement a close_range(2) syscallKyle Evans2020-04-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | close_range(min, max, flags) allows for a range of descriptors to be closed. The Python folk have indicated that they would much prefer this interface to closefrom(2), as the case may be that they/someone have special fds dup'd to higher in the range and they can't necessarily closefrom(min) because they don't want to hit the upper range, but relocating them to lower isn't necessarily feasible. sys_closefrom has been rewritten to use kern_close_range() using ~0U to indicate closing to the end of the range. This was chosen rather than requiring callers of kern_close_range() to hold FILEDESC_SLOCK across the call to kern_close_range for simplicity. The flags argument of close_range(2) is currently unused, so any flags set is currently EINVAL. It was added to the interface in Linux so that future flags could be added for, e.g., "halt on first error" and things of this nature. This patch is based on a syscall of the same design that is expected to be merged into Linux. Reviewed by: kib, markj, vangyzen (all slightly earlier revisions) Differential Revision: https://reviews.freebsd.org/D21627 Notes: svn path=/head/; revision=359836
* Introduce nexthop objects and new routing KPI.Alexander V. Chernikov2020-04-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=359823
* Clean up global variable declarations in the dump and restoreKirk McKusick2020-04-041-1/+1
| | | | | | | | | | | | utilities so that they will compile with -fno-common. Started by: Kyle Evans (kevans) Reviewed by: Kyle Evans (kevans) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D24210 Notes: svn path=/head/; revision=359627
* Remove redundant development tag from include MakefileEd Maste2020-04-011-1/+0
| | | | | | | | | | | 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 Notes: svn path=/head/; revision=359522
* Finish removal of bktrWarner Losh2020-03-011-11/+3
| | | | | | | | | | Remove the old ioctl .h files Remove copying/linking ioctl .h files in instasllworld Remove bktr from lint Add now-removed files with ObsoleteFiles Notes: svn path=/head/; revision=358500
* Add pthread_peekjoin_np(3).Konstantin Belousov2020-02-151-0/+1
| | | | | | | | | | | | | | The function allows to peek at the thread exit status and even see return value, without joining (and thus finally destroying) the target thread. Reviewed by: markj Sponsored by: The FreeBSD Foundation (kib) MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D23676 Notes: svn path=/head/; revision=357985