summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Implement WNOWAIT flag for wait4(2). It specifies that process whose statuskib2008-08-261-2/+10
| | | | | | | | | is returned shall be kept in the waitable state. Add WSTOPPED as an alias for WUNTRACED. Submitted by: Jukka Ukkonen <jau at iki fi> PR: standards/116221 MFC after: 2 weeks
* When calculating arguments to the interpreter for the shebang scriptkib2008-08-261-1/+18
| | | | | | | | executed by fexecve(2), imgp->args->fname is NULL. Moreover, there is no way to recover the path to the script being executed. Do what some other U*ixes do unconditionally, namely supply /dev/fd/n as the script path when called from fexecve(). Document requirement of having fdescfs mounted as caveat.
* Alphabetize the list of tests.kientzle2008-08-251-4/+4
|
* Update the total archive byte counters when writing entries to disk usingkientzle2008-08-241-0/+2
| | | | | | archive_write_disk. Update cpio to use this to emit block counts in -p mode. Update cpio tests to verify these block counts.
* Remove the stillborn attempt to cleanup tests as well as the build dir.kientzle2008-08-241-4/+0
|
* Fail copying path/.. only if SECURE_NODOTDOT was specified.kientzle2008-08-242-15/+7
| | | | | | | Since we already warn for any '..' elements in that case, the extra "lastdotdot" tracking turns out to be unnecessary. PR: bin/124924
* Fix the cpio bug tested for by r182092 of usr.bin/cpio/test.kientzle2008-08-241-1/+5
| | | | | | | | Since various 'find' incantations can emit container directories in various orders, we cannot refuse to update a dir because it's apparently the same age. MFC after: 3 days
* Add -fno-omit-frame-pointer to CFLAGS used to compile crt1.c on amd64.kib2008-08-221-0/+1
| | | | | | | | | | For gcc' __builtin_frame_address() to work, all call frames need to save frame pointer. In particular, this is important for the upper frame that should terminate the chain. No objections from: jhb PR: amd64/126543 MFC after: 1 week
* Add a "CACHING" section regarding the internal caching of kernel variablesjhb2008-08-211-0/+8
| | | | and the ability to clear that cache.
* Remove grantpt.c, which should have been deleted in the MPSAFE TTY commit.ed2008-08-201-286/+0
| | | | | | The routines in grantpt.c have been moved to ptsname.c in the MPSAFE TTY layer, because grantpt() is now effectively a no-op. I forgot to remove the corresponding source file from libc.
* Integrate the new MPSAFE TTY layer to the FreeBSD operating system.ed2008-08-2010-117/+286
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last half year I've been working on a replacement TTY layer for the FreeBSD kernel. The new TTY layer was designed to improve the following: - Improved driver model: The old TTY layer has a driver model that is not abstract enough to make it friendly to use. A good example is the output path, where the device drivers directly access the output buffers. This means that an in-kernel PPP implementation must always convert network buffers into TTY buffers. If a PPP implementation would be built on top of the new TTY layer (still needs a hooks layer, though), it would allow the PPP implementation to directly hand the data to the TTY driver. - Improved hotplugging: With the old TTY layer, it isn't entirely safe to destroy TTY's from the system. This implementation has a two-step destructing design, where the driver first abandons the TTY. After all threads have left the TTY, the TTY layer calls a routine in the driver, which can be used to free resources (unit numbers, etc). The pts(4) driver also implements this feature, which means posix_openpt() will now return PTY's that are created on the fly. - Improved performance: One of the major improvements is the per-TTY mutex, which is expected to improve scalability when compared to the old Giant locking. Another change is the unbuffered copying to userspace, which is both used on TTY device nodes and PTY masters. Upgrading should be quite straightforward. Unlike previous versions, existing kernel configuration files do not need to be changed, except when they reference device drivers that are listed in UPDATING. Obtained from: //depot/projects/mpsafetty/... Approved by: philip (ex-mentor) Discussed: on the lists, at BSDCan, at the DevSummit Sponsored by: Snow B.V., the Netherlands dcons(4) fixed by: kan
* Add a new routine kvm_getcptime(3) for fetching the equivalent ofjhb2008-08-194-3/+214
| | | | | | | | | | 'kern.cp_time'. For a live kernel it uses the sysctl. For a crashdump, it first checks to see if the kernel has a 'cp_time' global symbol. If it does, it uses that. If that doesn't work, when it uses the recently added kvm_getmaxcpu(3) and kvm_getpcpu(3) routines to walk all the CPUs and sum up their counters. MFC after: 1 week
* Add two new routines to libkvm for working with per-CPU data:jhb2008-08-194-3/+251
| | | | | | kvm_getmaxcpu() and kvm_getpcpu(). MFC after: 1 week
* atomic_fetchadd_int works on unsigned quantities - changekmacy2008-08-151-1/+1
| | | | | | sigev_generation to be unsigned MFC after: 1 month
* Import the uuid_enc_le(), uuid_dec_le(), uuid_enc_be() andemax2008-08-143-2/+148
| | | | | | | | | uuid_dec_be() functions. These routines are not part of the DCE RPC API. They are provided for convenience. Reviewed by: marcel Obtained from: NetBSD MFC after: 1 week
* Move CPU_SPINWAIT into the innermost spin loop, in order to allow fasterjasone2008-08-141-2/+3
| | | | | | preemption while busy-waiting. Submitted by: Mike Schuster <schuster@adobe.com>
* Re-order the terms of an expression in arena_run_reg_dalloc() to correctlyjasone2008-08-141-2/+2
| | | | | | detect whether the integer division table is large enough to handle the divisor. Before this change, the last two table elements were never used, thus causing the slow path to be used for those divisors.
* Import handy shorthand Bluetooth address (BD_ADDR) utility functionsemax2008-08-133-2/+67
| | | | | | | from NetBSD and document them. Obtained from: NetBSD MFC after: 1 week
* Change bpf(4) to use the cdevpriv API.ed2008-08-131-1/+1
| | | | | | | | | | | | | | | | | | Right now the bpf(4) driver uses the cloning API to generate /dev/bpf%u. When an application such as tcpdump needs a BPF, it opens /dev/bpf0, /dev/bpf1, etc. until it opens the first available device node. We used this approach, because our devfs implementation didn't allow per-descriptor data. Now that we can, make it use devfs_get_cdevpriv() to obtain the private data. To remain compatible with the existing implementation, add a symlink from /dev/bpf0 to /dev/bpf. I've already changed libpcap to compile with HAVE_CLONING_BPF, which makes it use /dev/bpf. There may be other applications in the base system (dhclient) that use the loop to obtain a valid bpf. Discussed on: src-committers Approved by: csjp
* Change the type of ti_traceme from a char to an int as itsmarcel2008-08-131-1/+1
| | | | address is passed to ps_pread for reading sizeof(int) bytes.
* Fix up test suite so it works again with the libarchive 1.x API.kientzle2008-08-115-2/+38
| | | | | | In particular, FreeBSD 6 still uses the libarchive 1.x API and this correction will permit MFCing new libarchive features back to FreeBSD 6.
* Correct test_tar_large so it works correctly with the libarchive 1.x API.kientzle2008-08-101-1/+1
|
* Explain why two apparently-identical archive_read_data() callskientzle2008-08-101-0/+2
| | | | really should have different return values.
* MfP4: Joerg Sonnenberger's fixes to make 'ar' and 'pax' writerskientzle2008-08-102-0/+6
| | | | robust against multiple calls to their destroy() functions.
* Add sbuf_new_auto as a shortcut for the very common case of creating ades2008-08-091-1/+1
| | | | | | | completely dynamic sbuf. Obtained from: Varnish MFC after: 2 weeks
* Add prototype defination for setfib(2) to sys/socket.h.delphij2008-08-081-1/+2
|
* Remove variables which are assigned values and never used thereafter.cperciva2008-08-081-5/+1
| | | | | Found by: LLVM/Clang Static Checker Approved by: jasone
* Remove some unused variables.das2008-08-084-4/+1
| | | | Reported by: Intel C Compiler
* In the linedas2008-08-083-3/+3
| | | | | | | #pragma STDC CX_LIMITED_RANGE ON the "ON" needs to be in caps. gcc doesn't understand this pragma anyway and assumes it is always on in any case, but icc supports it and cares about the case.
* Implement cproj{,f,l}().das2008-08-076-7/+170
|
* Use cpack() and the gcc extension __imag__ to implement cimag() anddas2008-08-076-6/+18
| | | | | | | | | | | | conj() instead of using expressions like z * I. The latter is bad for several reasons: 1. It is implemented using arithmetic, which is unnecessary, and can generate floating point exceptions, contrary to the requirements on these functions. 2. gcc implements complex multiplication using a formula that breaks down for infinities, e.g., it gives INFINITY * I == nan + inf I.
* Fix ia64 build.dfr2008-08-061-3/+3
|
* Fix 64bt build.dfr2008-08-061-1/+3
|
* Add an implementation of the RPCSEC_GSS authentication protocol for RPC. Thisdfr2008-08-0645-92/+4739
| | | | | | | | is based on an old implementation from the University of Michigan with lots of changes and fixes by me and the addition of a Solaris-compatible API. Sponsored by: Isilon Systems Reviewed by: alfred
* Cleanup for WARNS 6.marcel2008-08-067-47/+50
|
* Add EPERM to the ERRORS section.trhodes2008-08-041-1/+3
| | | | PR: 125746
* Initialize "nconv" to a reasonable value in all code paths. Prior tocperciva2008-08-041-1/+3
| | | | | | | this commit, sprintf("%s", "") could fail depending on what happened to be on the stack. Found by: LLVM/Clang Static Checker
* Set "max" to a reasonable value if BLOCKSIZE has a bogus unit. Priorcperciva2008-08-041-0/+1
| | | | | | | | | to this commit, "env BLOCKSIZE=4X df" prints not only "4X: unknown blocksize" as expected, but sometimes also "maximum blocksize is 1G" and "minimum blocksize is 512" depending on what happened to be on the stack. Found by: LLVM/Clang Static Checker
* Mark functions as __dead2 in order to help the LLVM static checkercperciva2008-08-041-1/+1
| | | | | | | understand which code paths aren't possible. This commit eliminates 117 false positive bug reports of the form "allocate memory; error out if pointer is NULL; use pointer".
* Restructure and use different variables in the tests that involvescf2008-08-031-13/+15
| | | | | | | | | environ[0] to be more obvious that environ is not NULL before environ[0] is tested. Although I believe the previous code worked, this change improves code maintainability. Reviewed by: ache MFC after: 3 days
* Add EAGAIN to the ERRORS list, as found in kern_jail.c.trhodes2008-08-031-1/+3
| | | | | PR: 125253 Submitted by: Mateusz Guzik <mjguzik@gmail.com> (original version)
* Restored from previous backing out (because that is OpenBSD way, soache2008-08-031-12/+16
| | | | | | | | | assumed to be reviewd by them): Stir directly from the kernel PRNG, without taking less random pid & time bytes too (when it is possible). The difference with OpenBSD code is that they have KERN_ARND sysctl for that task, while we need to read /dev/random
* Fix some style bogosity from fdlibm.das2008-08-032-12/+12
|
* Minor improvements:das2008-08-033-20/+20
| | | | | | | - Improve the order of some tests. - Fix style. Submitted by: bde
* A few minor corrections, including some from bde:das2008-08-023-17/+16
| | | | | | | - When y/x is huge, it's faster and more accurate to return pi/2 instead of pi - pi/2. - There's no need for 3 lines of bit fiddling to compute -z. - Fix a comment.
* remove whitespace bug (8 spaces into one tab)remko2008-08-021-1/+1
| | | | Submitted by: ed
* Teach fmtcheck() about wint_t, intmax_t, char *, intmax_t *, anddas2008-08-022-37/+99
| | | | | | | | | wide string arguments. Also simplify the code that handles length modifiers and make it more conservative. For instance, be explicit about the modifiers allowed for %d, rather than assuming that anything other than L, q, t, or z implies an int argument.
* On i386, gcc truncates long double constants to double precisiondas2008-08-024-8/+127
| | | | | | | | | | | | | | | | at compile time regardless of the dynamic precision, and there's no way to disable this misfeature at compile time. Hence, it's impossible to generate the appropriate tables of constants for the long double inverse trig functions in a straightforward way on i386; this change hacks around the problem by encoding the underlying bits in the table. Note that these functions won't pass the regression test on i386, even with the FPU set to extended precision, because the regression test is similarly damaged by gcc. However, the tests all pass when compiled with a modified version of gcc. Reported by: bde
* Detect if the application has cleared the environ variable by settingscf2008-08-021-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | the first value (environ[0]) to NULL. This is in addition to the current detection of environ being replaced, which includes being set to NULL. Without this fix, the environment is not truly wiped, but appears to be by getenv() until an *env() call is made to alter the enviroment. This change is necessary to support those applications that use this method for clearing environ such as Dovecot and Postfix. Applications such as Sendmail and the base system's env replace environ (already detected). While neither of these methods are defined by SUSv3, it is best to support them due to historic reasons and in lieu of a clean, defined method. Add extra units tests for clearing environ using four different methods: 1. Set environ to NULL pointer. 2. Set environ[0] to NULL pointer. 3. Set environ to calloc()'d NULL-terminated array. 4. Set environ to static NULL-terminated array. Noticed by: Timo Sirainen MFC after: 3 days
* Fix some problems with asinf(), acosf(), atanf(), and atan2f():das2008-08-014-71/+42
| | | | | | | | | | | | | | | | | | | | | | | | - Adjust several constants for float precision. Some thresholds that were appropriate for double precision were never changed when these routines were converted to float precision. This has an impact on performance but not accuracy. (Submitted by bde.) - Reduce the degrees of the polynomials used. A smaller degree suffices for float precision. - In asinf(), use double arithmetic in part of the calculation to avoid a corner case and some complicated arithmetic involving a division and some buggy constants. This improves performance and accuracy. Max error (ulps): asinf acosf atanf before 0.925 0.782 0.852 after 0.743 0.804 0.852 As bde points out, it's cheaper for asin*() and acos*() to use polynomials instead of rational functions, but that's a task for another day.
OpenPOWER on IntegriCloud