aboutsummaryrefslogtreecommitdiff
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* MFS r365682: getlogin_r: fix the type of lenKyle Evans2020-09-131-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 Approved by: re (gjb) Notes: svn path=/releng/12.2/; revision=365684
* MFC r359836-r359837, r359891, r360236-r360237: close_range(2)Kyle Evans2020-08-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit diverges from our usual procedure of committing generated files separately because the original commit, r359836, conflated userland use (in tests) with the implementation. __FreeBSD_version was already bumped ~15 hours prior to this MFC, 1201522 marks the introduction of close_range. CPython will use this syscall for some pretty sizable performance gains. r359836: Implement a close_range(2) syscall 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. r359837: sysent: re-roll after introduction of close_range in r359836 r359891: close_range/closefrom: fix regression from close_range introduction close_range will clamp the range between [0, fdp->fd_lastfile], but failed to take into account that fdp->fd_lastfile can become -1 if all fds are closed. =-( In this scenario, just return because there's nothing further we can do at the moment. Add a test case for this, fork() and simply closefrom(0) twice in the child; on the second invocation, fdp->fd_lastfile == -1 and will trigger a panic before this change. r360236: close_range(2): use newly assigned AUE_CLOSERANGE r360237: sysent: re-roll after 360236 (AUE_CLOSERANGE used) Notes: svn path=/stable/12/; revision=363879
* MFC r363193:Konstantin Belousov2020-07-211-6/+8
| | | | | | | | | Make CLOCK_REALTIME and TIMER_ABSTIME available for XOPEN_SOURCE >= 500. PR: 247701 Notes: svn path=/stable/12/; revision=363385
* MFC r361770, r361784, r362032:Konstantin Belousov2020-06-171-0/+3
| | | | | | | | Add pthread_getname_np() and pthread_setname_np() aliases for pthread_get_name_np() and pthread_set_name_np(). Notes: svn path=/stable/12/; revision=362264
* MFC r361060:Konstantin Belousov2020-05-281-0/+3
| | | | | | | Add memalign(3). Notes: svn path=/stable/12/; revision=361569
* MFC r360984:Konstantin Belousov2020-05-261-5/+5
| | | | | | | Make include/malloc.h usable again. Notes: svn path=/stable/12/; revision=361501
* MFC r361073:Konstantin Belousov2020-05-221-0/+2
| | | | | | | | | Implement RTLD_DEEPBIND. PR: 246462 Notes: svn path=/stable/12/; revision=361380
* MFC r360983:Konstantin Belousov2020-05-191-15/+21
| | | | | | | Clear namespace pollution in include/malloc_np.h Notes: svn path=/stable/12/; revision=361244
* MFC of 359627Kirk McKusick2020-04-151-1/+1
| | | | | | | Update dump and restore to compile with -fno-common. Notes: svn path=/stable/12/; revision=359946
* MFC r357985:Konstantin Belousov2020-02-291-0/+1
| | | | | | | Add pthread_peekjoin_np(3). Notes: svn path=/stable/12/; revision=358473
* MFC r357284, r357419: stdio unlockedKyle Evans2020-02-131-1/+8
| | | | | | | | | | | | | | | | | | | | | | | r357284: stdio: provide _unlocked variants of fflush, fputc, fputs, fread, fwrite fflush_unlocked is currently desired in ports by sysutils/metalog, and redefined as the locked fflush. fputc_unlocked, fputs_unlocked, fread_unlocked, and fwrite_unlocked are currently desired in ports by devel/elfutils, and redefined as the locked fputs, fread, and fwrite respectively. r357419: libc: provide fputc_unlocked Among the same justification as the other stdio _unlocked; in addition to an inline version in <stdio.h>, we must provide a function in libc as well for the functionality. This fixes the lang/gcc* builds, which want to use the symbol from libc. Notes: svn path=/stable/12/; revision=357852
* MFC r356994: Mark rfork(2) as __returns_twiceKyle Evans2020-01-271-1/+1
| | | | | | | | rfork is not generally a built-in that would be recognized as behaving like vfork/fork; provide the hint. Notes: svn path=/stable/12/; revision=357180
* MFC r355761: <unistd.h>: remove redundant __BSD_VISIBLEKyle Evans2019-12-191-2/+0
| | | | | | | This bit is already inside of a larger __BSD_VISIBLE block. Notes: svn path=/stable/12/; revision=355900
* Add sigsetop extensions commonly found in musl libc and glibcKyle Evans2019-12-191-0/+3
| | | | | | | | | | These functions (sigandset, sigisemptyset, sigorset) are commonly available in at least musl libc and glibc; sigorset, at least, has proven quite useful in qemu-bsd-user work for tracking the current process signal mask in a more self-documenting/aesthetically pleasing manner. Notes: svn path=/stable/12/; revision=355898
* MFC r355568:Dimitry Andric2019-12-121-1/+1
| | | | | | | | | | | | | | | | | | | Correctly check for C++17 and higher when declaring timespec_get() Summary: In rS338751, the check to declare `timespec_get()` for C++17 and higher was incorrectly done against a `cplusplus` define, while it should have been `__cplusplus`. Fix this by using `__cplusplus`, and also bump `__FreeBSD_version` so it becomes possible to correctly check for `timespec_get()` in upstream libc++ headers. Reviewed by: brooks, emaste Differential Revision: https://reviews.freebsd.org/D22735 Notes: svn path=/stable/12/; revision=355658
* MFC r352056:Konstantin Belousov2019-09-161-3/+5
| | | | | | | | | | Make snprintf(3) and vscanf(3) definitions available under appropriate POSIX visibility. PR: 207287 Notes: svn path=/stable/12/; revision=352379
* MFC r350957:Konstantin Belousov2019-09-023-3/+3
| | | | | | | | | Increase YPMAXRECORD to 16M to be compatible with Linux. Sponsored by: Mellanox Technologies Notes: svn path=/stable/12/; revision=351691
* MFC r343826, r346698, r349057-r349060, r349073-r349077, r349080-r349086, ↵Ian Lepore2019-06-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r349088, r349091-r349097, r349115, r349119, r349130-r349132, r349143-r349145, r349164-r349168, r349174, r349269-r349273 r343826 by yuripv: pwm.8: fix markup in synopsis, add -f description r346698 by manu: arm: allwinner: aw_pwm: compile it as module too r349057: Allow pwm(9) components to be selected individually, while 'device pwm' still includes it all. r349058: In detach(), check for failure of bus_generic_detach(), only release resources if they got allocated (because detach() gets called from attach() to handle various failures), and delete the pwmbus child if it got created. r349059: Don't call pwmbus_attach_bus(), because it may not be present if this driver is compiled into the kernel but pwmbus will be loaded as a module when needed (and because of that, pwmbus_attach_bus() is going away in the near future). Instead, just directly do what that function did: register the fdt xfef handle, and attach the pwmbus. r349060: Handle failure to enable the clock or obtain its frequency. r349073: Do not include pwm.h here, it is purely a userland interface file containing ioctl defintions for the pwmc driver. It is not part of the pwmbus interface. r349074: 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. r349075: Remove pwmbus_attach_bus(), it no longer has any callers. Also remove a couple prototypes for functions that never existed (and never will). r349076: Use device_delete_children() instead of a locally-rolled copy of it that leaks the device-list memory. r349077: Add a missing #include. I suspect this used to get included via some header pollution that was cleaned up recently, and this file got missed in the cleanup because it's not attached to the build unless you specifically request this device in a custom kernel config. r349080: Make pwmbus driver and devclass vars static; they're not mentioned in any header file, so they can't be used outside this file anyway. r349081: Unwrap prototype lines so that return type and function name are on the same line. No functional changes. r349082: Spell unsigned int as u_int and channel as chan; eliminates the need to wrap some long lines. r349083: Give the aw_pwm driver a module version. r349084: Rename the channel_max method to channel_count, because that's what it's returning. (If the channel count is 2, then the max channel number is 1.) r349085: Destroy the cdev on device detach. Also, make the driver and devclass static, because nothing outside this file needs them. r349086: Restructure the pwm device hirearchy and interfaces. The pwm and pwmbus interfaces were nearly identical, this merges them into a single pwmbus interface. The pwmbus driver now implements the pwmbus interface by simply passing all calls through to its parent (the hardware driver). The channel_count method moves from pwm to pwmbus, and the get_bus method is deleted (just no longer needed). The net effect is that the interface for doing pwm stuff is now the same regardless of whether you're a child of pwmbus, or some random driver elsewhere in the hierarchy that is bypassing the pwmbus layer and is talking directly to the hardware driver via cross-hierarchy connections established using fdt data. The pwmc driver is now a child of pwmbus, instead of being its sibling (that's why the get_bus method is no longer needed; pwmc now gets the device_t of the bus using device_get_parent()). r349088: Make pwm channel numbers unsigned. r349091: The pwm interface was replaced with pwmbus, include the right header file. r349092: Make channel number unsigned, and spell unsigned int u_int. This should have been part of r349088. r349093: This code no longer uses fdt/ofw stuff, no need to include ofw headers. r349094: Add module makefiles for pwm. r349095: Split the dtb MODULES_EXTRA line to a series of += lines, making it easier to maintain and keep in alphabetical order, and paving the way for adding some other modules that aren't dtb-related. r349096: Add module makefiles for Texas Instruments ARM SoCs. The natural place to look for them based on how other SoCs are organized would be sys/modules/ti, but that's already taken. Drop a clue into modules/ti/Makefile directing people to modules/arm_ti if they're looking for ARM modules. r349097: Build SoC-specific modules with GENERIC for the SoCs that have them. r349115: Rename pwmbus.h to ofw_pwm.h, because after all the recent changes, there is nothing left in the file that related to pwmbus at all. It just contains prototypes for the functions implemented in dev/pwm.ofw_pwm.c, so name it accordingly and fix the include protect wrappers to match. A new pwmbus.h will be coming along in a future commit. r349119: Rework pwmbus and pwmc so that each child will handle a single PWM channel. Previously, there was a pwmc instance for each instance of pwm hardware regardless of how many pwm channels that hardware supported. Now there will be a pwmc instance for each channel when the hardware supports multiple channels. With a separate instance for each channel, we can have "named channels" in userland by making devfs alias entries in /dev/pwm. These changes add support for ivars to pwmbus, and use an ivar to track the channel number for each child. It also adds support for hinted children. In pwmc, the driver checks for a label hint, and if present, it's used to create an alias for the cdev in /dev/pwm. It's not anticipated that hints will be heavily used, but it's easy to do and allows quick ad-hoc creation of named channels from userland by using kenv to create hint.pwmc.N.label= hints. Upcoming changes will add FDT support, and most labels will probably be specified that way. r349130: Add ofw_pwmbus to enumerate pwmbus devices on systems configured with fdt data. Also, add fdt support to pwmc. r349131: Implement the ofw_bus_get_node method in aw_pwm(4) so that ofw_pwmbus can find its metadata for instantiating children. r349132: Add back a const qualifier I somehow fumbled away between test-building and committing recent changes. r349143: Put the pwmc cdev filenames under the pwm directory along with any label names. I.e., everything related to pwm now goes in /dev/pwm. This will make it easier for userland tools to turn an unqualified name into a fully qualified pathname, whether it's the base pwmcX.Y name or a label name. r349144: Follow changes in the pwmc(4) driver in relation to device filenames. The driver now names its cdev nodes pwmcX.Y where X is unit number and Y is the channel within that unit. Change the default device name from pwmc0 to pwmc0.0. The driver now puts cdev files and label aliases in the /dev/pwm directory, so allow the user to provide unqualified names with -f and automatically prepend the /dev/pwm part for them. Update the examples in the manpage to show the new device name format and location within /dev/pwm. r349145: Put periods at the ends of argument descriptions. Explain the relationship between the period and duty arguments. r349164: Remove everything related to channels from the pwmc public interface, now that there is a pwmc(4) instance per channel and the channel number is maintained as a driver ivar rather than being passed in from userland. r349165: Explain the relationship between PWM hardware channels being controlled and pwmc(4) device filenames. Also, use uppercase PWM when the term is being used as an acronym, and expand the acronym where it's first used. r349166: Rearrange the argument checking and processing so that enable and disable can be combined with configuring the period and duty cycle (the same ioctl sets all 3 values at once, so there's no reason to require the user to run the program twice to get all 3 things set). r349167: Oops, it seems I left out the word 'cycle', fix it. r349168: Add a pwmc(4) manpage. r349174: Handle labels specified with hints even on FDT systems. Hints are the easiest thing for a user to control (via loader.conf or kenv+kldload), so handle them in addition to any label specified via the FDT data. r349269: Some mundane tweaks and cleanups to help de-clutter the diffs of some upcoming functional changes. Add an ofw_compat_data table for probing compat strings, and use it to add PNP data. Remove some stray semicolons at the end of macro definitions, and add a PWM_LOCK_ASSERT macro to round out the usual suite. Move the device_t and driver_methods structs to the end of the file. Tweak comments. r349270: Add support for the PWM(9) API. This allows configuring the pwm output using pwm(9), but also maintains the historical sysctl config interface for compatiblity with existing apps. The two config systems are not compatible with each other; if you use both interfaces to change configurations you're likely to end up with incorrect output or none at all. r349271: Catch up with recent changes in pwmbus(9). The pwm(9) and pwmbus(9) interfaces were unified into pwmbus(9), and the PWMBUS_CHANNEL_MAX method was renamed PWMBUS_CHANNEL_COUNT. The pwmbus_attach_bus() function just went away completely. Also, fix a few typos such as s/is/if/. r349272: Do some general cleanup and light wordsmithing. Sort methods alphabetically. Wrap long lines. Start sentences on a new line. Remove contractions (not because it's a good idea, just to silence igor). Add some explanation of the units for the period and duty arguments and the convention for channel numbers. r349273: Add pwm to the armv7 GENERIC kernel, it's now used by TI and Allwinner. Notes: svn path=/stable/12/; revision=349430
* Add support for loader veriexecSimon J. Gerraty2019-04-121-3/+12
| | | | | | | | | Also sbin/veriexec for mac_veriexec MFC r343281,344564-344568,344780,344784,345289,346070 Notes: svn path=/stable/12/; revision=346145
* MFC r342379, r342383:Pedro F. Giffuni2019-01-281-9/+9
| | | | | | | | | | | | | | | | | | gai_strerror() - Update string error messages according to RFC 3493. Error messages in gai_strerror(3) vary largely among OSs. For new software we largely replaced the obsoleted EAI_NONAME and with EAI_NODATA but we never updated the corresponding message to better match the intended use. We also have references to ai_flags and ai_family which are not very descriptive for non-developer end users. Bring new error messages based on informational RFC 3493, which has obsoleted RFC 2553, and make them consistent among the header and manpage. Notes: svn path=/stable/12/; revision=343519
* Reduce NL_ARGMAX to 4096 to match Linux.Brooks Davis2018-10-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | NL_ARGMAX is the maximum number of positional arguments supported by printf(3). Prior to r308145 it was declared as 99 and not enforced. r308145 added enforcement and increased the value to 64k. Unfortunately, development versions of PostgreSQL used the system definition to allocate and zero an NL_ARGMAX * 4 sized array on the stack of its snprintf implementation with measurable performance impacts. This has been fixed in new PostgreSQL versions, but it is possible that other programs suffer from this problem. A value of 4096 puts us on par with Linux and is certainly large enough for any reasonable program. Reviewed by: mjg Reported by: mjg Approved by: re (gjb) Differential revision: https://reviews.freebsd.org/D17387 Differential revision: https://reviews.freebsd.org/D8286 Notes: svn path=/head/; revision=339184
* Fix C11 and POSIX 1003.1b-1993 compliance in time.hBrooks Davis2018-09-181-0/+4
| | | | | | | | | | | | | Only expose timespec_get in C11, C++17, or BSD code. Always define struct timespect if defining timespec_get. PR: 231425 Reviewed by: kib Approved by: re (gjb) Differential Revision: https://reviews.freebsd.org/D17174 Notes: svn path=/head/; revision=338751
* Remove arc4random_stir and arc4random_addrandom from stdlib.h.Xin LI2018-08-261-6/+0
| | | | | | | | | | | | Users of arc4random(3) should never call them directly. All ports tree usage was fixed as part of bug 230756. Relnotes: yes Approved by: re (marius), exp-run (bug 230756 by portmgr antoine) Notes: svn path=/head/; revision=338331
* Handle -DNO_ROOT for `make compat` in include/Alex Richardson2018-08-231-1/+1
| | | | | | | | | | 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 Notes: svn path=/head/; revision=338266
* Update userland arc4random() with OpenBSD's Chacha20 based arc4random().Xin LI2018-08-191-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ObsoleteFiles.inc: Remove manual pages for arc4random_addrandom(3) and arc4random_stir(3). contrib/ntp/lib/isc/random.c: contrib/ntp/sntp/libevent/evutil_rand.c: Eliminate in-tree usage of arc4random_addrandom(). crypto/heimdal/lib/roken/rand.c: crypto/openssh/config.h: Eliminate in-tree usage of arc4random_stir(). include/stdlib.h: Remove arc4random_stir() and arc4random_addrandom() prototypes, provide temporary shims for transistion period. lib/libc/gen/Makefile.inc: Hook arc4random-compat.c to build, add hint for Chacha20 source for kernel, and remove arc4random_addrandom(3) and arc4random_stir(3) links. lib/libc/gen/arc4random.c: Adopt OpenBSD arc4random.c,v 1.54 with bare minimum changes, use the sys/crypto/chacha20 implementation of keystream. lib/libc/gen/Symbol.map: Remove arc4random_stir and arc4random_addrandom interfaces. lib/libc/gen/arc4random.h: Adopt OpenBSD arc4random.h,v 1.4 but provide _ARC4_LOCK of our own. lib/libc/gen/arc4random.3: Adopt OpenBSD arc4random.3,v 1.35 but keep FreeBSD r114444 and r118247. lib/libc/gen/arc4random-compat.c: Compatibility shims for arc4random_stir and arc4random_addrandom functions to preserve ABI. Log once when called but do nothing otherwise. lib/libc/gen/getentropy.c: lib/libc/include/libc_private.h: Fold __arc4_sysctl into getentropy.c (renamed to arnd_sysctl). Remove from libc_private.h as a result. sys/crypto/chacha20/chacha.c: sys/crypto/chacha20/chacha.h: Make it possible to use the kernel implementation in libc. PR: 182610 Reviewed by: cem, markm Obtained from: OpenBSD Relnotes: yes Differential Revision: https://reviews.freebsd.org/D16760 Notes: svn path=/head/; revision=338059
* POSIX compliance improvements in the pthread(3) functions.Pedro F. Giffuni2018-08-181-37/+54
| | | | | | | | | | | | | | | | This basically adds makes use of the C99 restrict keyword, and also adds some 'const's to four threading functions: pthread_mutexattr_gettype(), pthread_mutexattr_getprioceiling(), pthread_mutexattr_getprotocol(), and pthread_mutex_getprioceiling. The changes are in accordance to POSIX/SUSv4-2018. Hinted by: DragonFlyBSD Relnotes: yes MFC after: 1 month Differential Revision: D16722 Notes: svn path=/head/; revision=337992
* Add pthread_get_name_np(3).Konstantin Belousov2018-08-171-0/+1
| | | | | | | | | | | | | | | | The function retrieves the thread name previously set by pthread_set_name_np(3). The name is cached in the process memory. Requested by: Willem Jan Withagen <wjw@digiware.nl> Man page update: Yuri Pankov <yuripv@yuripv.net> Reviewed by: ian (previous version) Discussed with: arichardson, bjk (man page) Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D16702 Notes: svn path=/head/; revision=337983
* Reorder alphabetically.Konstantin Belousov2018-08-171-3/+3
| | | | | | | | | Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D16702 Notes: svn path=/head/; revision=337981
* Install symlink for sys/nvpair.h in include/Makefile symlinks targetKyle Evans2018-08-131-0/+5
| | | | | | | | | Noticed while fixing the install/sysroot situation for libnvpair and libzfs_core- if one uses the symlinks target, libzfs_core.h is not installed. Notes: svn path=/head/; revision=337700
* Use INCS for non-sys/ libnvpair and libzfs_core includesKyle Evans2018-08-131-6/+0
| | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=337696
* Bring in timespce_get form NetBSD.Warner Losh2018-08-101-0/+5
| | | | | | | | | | | | | | Bring in the functionality for timespec_get from NetBSD. I've lightly edited the .c file to remove _DIAGASSERT because FreeBSD doesn't have that functionality and the typical #define'ing it to assert isn't right here. The man page is verbatim from NetBSD, but will be revised as part of a larger cleanup of the time man pages (they are inconsistent and vague in all the wrong places). Differential Review: https://reviews.freebsd.org/D16649 Notes: svn path=/head/; revision=337576
* msun: add ld80/ld128 powl, cpow, cpowf, cpowl from openbsdMatt Macy2018-07-151-0/+4
| | | | | | | | | | | | | | | | | | | | | | This corresponds to the latest status (hasn't changed in 9+ years) from openbsd of ld80/ld128 powl, and source cpowf, cpow, cpowl (the complex power functions for float complex, double complex, and long double complex) which are required for C99 compliance and were missing from FreeBSD. Also required for some numerical codes using complex numbered Hamiltonians. Thanks to jhb for tracking down the issue with making weak_reference compile on powerpc. When asked to review, bde said "I don't like it" - but provided no actionable feedback or superior implementations. Discussed with: jhb Submitted by: jmd Differential Revision: https://reviews.freebsd.org/D15919 Notes: svn path=/head/; revision=336299
* Add a missed chunk r335939.Konstantin Belousov2018-07-081-0/+1
| | | | | | | | | Noted by: David Carlier MFC after: 9 days Differential revision: https://reviews.freebsd.org/D16178 Notes: svn path=/head/; revision=336088
* This exposes ZFS user and group quotas via the normalSean Eric Fagan2018-07-051-6/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | quatactl(2) mechanism. (Read-only at this point, however.) In particular, this is to allow rpc.rquotad query quotas for NFS mounts, allowing users to see their quotas on the hosts using the datasets. The changes specifically: * Add new RPC entry points for querying quotas. * Changes the library routines to allow non-UFS quotas. * Changes rquotad to check for quotas on mounted filesystems, rather than being limited to entries in /etc/fstab * Lastly, adds a VFS entry-point for ZFS to query quotas. Note that this makes one unavoidable behavioural change: if quotas are enabled, then they can be queried, as opposed to the current method of checking for quotas being specified in fstab. (With ZFS, if there are user or group quotas, they're used, always.) Reviewed by: delphij, mav Approved by: mav Sponsored by: iXsystems Inc Differential Revision: https://reviews.freebsd.org/D15886 Notes: svn path=/head/; revision=336017
* Add time2posix and posix2time to time.hEitan Adler2018-05-251-0/+2
| | | | | | | | | | | These are documented in `time2posix.3` but the symbols are not actually visible. Since these are not POSIX hide them behind _BSD_VISIBLE. Reviewed by: wollman Differential Revision: https://reviews.freebsd.org/D15530 Notes: svn path=/head/; revision=334207
* Add implementations for clog(3), clogf(3), and clog(3).Konstantin Belousov2018-05-131-0/+4
| | | | | | | | | PR: 216863 Submitted by: bde, Steven G. Kargl <sgk@troutmask.apl.washington.edu> MFC after: 2 weeks Notes: svn path=/head/; revision=333577
* Import the netdump client code.Mark Johnston2018-05-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=333283
* Retire lmc(4)Ed Maste2018-05-011-1/+1
| | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=333144
* pthread.h: minor indentation cleanups.Pedro F. Giffuni2018-04-041-29/+17
| | | | | | | | | No functional change. X-MFC with: r331969 Notes: svn path=/head/; revision=332035
* pthread.h: drop nullability attributes.Pedro F. Giffuni2018-04-041-101/+95
| | | | | | | | | | | | | | | These have been found to be practically useless. We were actually following the Android bionic library and had some interest in replicating the same warnings and behaviour but Android has since removed them. We are still keeping some uses of nullability attributes in other headers, somewhat in line with Apple's libc. MFC after: 1 week Hinted by: bionic (git 3f66e74b903905e763e104396aff52a81718cfde) Notes: svn path=/head/; revision=331969
* Remove redundant check.Cy Schubert2018-04-031-1/+1
| | | | | | | | | | Reported by: kib@ MFC after: 2 weeks X-MFC with: r331936 Differential Revision: https://reviews.freebsd.org/D12785 Notes: svn path=/head/; revision=331948
* Include update to stdio.h missed in r331936.Cy Schubert2018-04-031-0/+8
| | | | | | | | | | | | | | In my attempt to limit the commit in r331936 to only the gets_s() commit and not include unrelated patches in my tree, this patch was missed. Reported by: pfg MFC after: 2 weeks X-MFC with: r331936 Differential Revision: https://reviews.freebsd.org/D12785 Notes: svn path=/head/; revision=331943
* Add the "TCP Blackbox Recorder" which we discussed at the developerJonathan T. Looney2018-03-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=331347
* Implement getrandom(2) and getentropy(3)Conrad Meyer2018-03-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The general idea here is to provide userspace programs with well-defined sources of entropy, in a fashion that doesn't require opening a new file descriptor (ulimits) or accessing paths (/dev/urandom may be restricted by chroot or capsicum). getrandom(2) is the more general API, and comes from the Linux world. Since our urandom and random devices are identical, the GRND_RANDOM flag is ignored. getentropy(3) is added as a compatibility shim for the OpenBSD API. truss(1) support is included. Tests for both system calls are provided. Coverage is believed to be at least as comprehensive as LTP getrandom(2) test coverage. Additionally, instructions for running the LTP tests directly against FreeBSD are provided in the "Test Plan" section of the Differential revision linked below. (They pass, of course.) PR: 194204 Reported by: David CARLIER <david.carlier AT hardenedbsd.org> Discussed with: cperciva, delphij, jhb, markj Relnotes: maybe Differential Revision: https://reviews.freebsd.org/D14500 Notes: svn path=/head/; revision=331279
* Add kernel and userspace code to dump the firmware state of supportedHans Petter Selasky2018-03-081-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=330653
* Improve missing tty handling in init(8). This removes a check that didEdward Tomasz Napierala2018-02-271-0/+2
| | | | | | | | | | | | | | | | | | | nothing - it was checking for ENXIO, which, with devfs, is no longer returned - and was badly placed anyway, and replaces it with similar one that works, and is done just before starting getty, instead of being done when rereading ttys(5). From the practical point of view, this makes init(8) handle disappearing terminals (eg /dev/ttyU*) gracefully, without unneccessary getty restarts and resulting error messages. Reviewed by: imp@ MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D14307 Notes: svn path=/head/; revision=330054
* Do not include float interfaces when using libsa.Warner Losh2018-02-231-0/+2
| | | | | | | | | | We don't support float in the boot loaders, so don't include interfaces for float or double in systems headers. In addition, take the unusual step of spiking double and float to prevent any more accidental seepage. Notes: svn path=/head/; revision=329859
* We don't support gcc < 4.2.1, so varargs.h now is just #errorWarner Losh2018-02-121-9/+1
| | | | | | | | | | | always. Unifdef for versions prior to 4.2.1 and remove now-unused header files. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D14323 Notes: svn path=/head/; revision=329164
* Avoid implicit gcc nonnull attribute in vwarnx().Pedro F. Giffuni2018-01-281-1/+1
| | | | | | | | | | | | | | We removed the nonnull attributes from our headers long ago, but still __printflike() includes it implicitly. This will cause the NULL check to be optimized away in higher -O levels and it will also trigger a -Wnonnull-compare warning. Avoid warning with it in vwarnx(). Obtained from: DragonfLyBSD (git 6329e2f68af73662a1960240675e796ab586bcb1) Notes: svn path=/head/; revision=328517
* Use the __alloc_size2 attribute where relevant.Pedro F. Giffuni2018-01-221-3/+3
| | | | | | | | | | | | | This follows the documented use in GCC. It is basically only relevant for calloc(3), reallocarray(3) and mallocarray(9). Suggested by: Mark Millard Reference: https://docs.freebsd.org/cgi/mid.cgi?9DE674C6-EAA3-4E8A-906F-446E74D82FC4 Notes: svn path=/head/; revision=328237