summaryrefslogtreecommitdiffstats
path: root/lib/libc/gen
Commit message (Collapse)AuthorAgeFilesLines
* Turn execvpe() into an internal libc routine.ed2008-06-235-19/+9
| | | | | | | | | | | | Adding exevpe() has caused some ports to break. Even though execvpe() is a useful routine, it does not conform to any standards. This patch is a little bit different from the patch sent to the mailing list. I forgot to remove execvpe from the Symbol.map (which does not seem to miscompile libc, though). Reviewed by: davidxu Approved by: philip
* Process spawn attributes in POSIX document order.davidxu2008-06-191-21/+22
|
* Style fix.davidxu2008-06-171-1/+2
|
* Change my email address to the one from the FreeBSD project.ed2008-06-171-1/+1
| | | | Approved by: philip (mentor, implicit), davidxu
* Add POSIX routines called posix_spawn() and posix_spawnp(), whichdavidxu2008-06-175-14/+532
| | | | | | | | | 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
* Do not read away the target directory entry when encountering deletedkib2008-05-053-8/+9
| | | | | | | | | | | | | files after a seekdir(). The seekdir shall set the position for the next readdir operation. When the _readdir_unlocked() encounters deleted entry, dd_loc is already advanced. Continuing the loop leads to premature read of the target entry. Submitted by: Marc Balmer <mbalmer at openbsd org> Obtained from: OpenBSD MFC after: 2 weeks
* o Add MIPS to the list of architectures with defined TLS_TCB_ALIGNgonzo2008-04-291-2/+2
| | | | | | o Stick with TLS Variant II for MIPS for the moment. Approved by: imp
* Implement fdopendir(3) by splitting __opendir2() into two parts, the upper partdelphij2008-04-164-6/+71
| | | | | | deals with the usual __opendir2() calls, and the rest part with an interface translator to expose fdopendir(3) functionality. Manual page was obtained from kib@'s work for *at(2) system calls.
* Style fixes to opendir.c:delphij2008-04-161-6/+3
| | | | | - Use /*- for copyright block; - ANSIfy.
* Implement POSIX function tcgetsid() which returns session id.davidxu2008-04-154-1/+84
| | | | PR: stand/107561
* Minor style(9) nit: move to using ANSI definition of functions.imp2008-04-031-19/+5
|
* Fix descriptions of "struct msqid_ds and "struct ipc_perm" to matchru2008-04-031-11/+11
| | | | harsh reality.
* Document modff() and modfl(). Technically, modff() and modfl()das2008-03-292-12/+23
| | | | | | live in libm, while modf() lives in libc due to historical mistakes. I'm claiming in the manpage that they all live in libm, since programmers should not rely on the mistake.
* Removed no longer existing CTL_MACHDEP defines.ru2008-03-261-12/+1
| | | | Inspired by: phk
* Add the new kernel-mode NFS Lock Manager. To use it instead of thedfr2008-03-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | user-mode lock manager, build a kernel with the NFSLOCKD option and add '-k' to 'rpc_lockd_flags' in rc.conf. Highlights include: * Thread-safe kernel RPC client - many threads can use the same RPC client handle safely with replies being de-multiplexed at the socket upcall (typically driven directly by the NIC interrupt) and handed off to whichever thread matches the reply. For UDP sockets, many RPC clients can share the same socket. This allows the use of a single privileged UDP port number to talk to an arbitrary number of remote hosts. * Single-threaded kernel RPC server. Adding support for multi-threaded server would be relatively straightforward and would follow approximately the Solaris KPI. A single thread should be sufficient for the NLM since it should rarely block in normal operation. * Kernel mode NLM server supporting cancel requests and granted callbacks. I've tested the NLM server reasonably extensively - it passes both my own tests and the NFS Connectathon locking tests running on Solaris, Mac OS X and Ubuntu Linux. * Userland NLM client supported. While the NLM server doesn't have support for the local NFS client's locking needs, it does have to field async replies and granted callbacks from remote NLMs that the local client has contacted. We relay these replies to the userland rpc.lockd over a local domain RPC socket. * Robust deadlock detection for the local lock manager. In particular it will detect deadlocks caused by a lock request that covers more than one blocking request. As required by the NLM protocol, all deadlock detection happens synchronously - a user is guaranteed that if a lock request isn't rejected immediately, the lock will eventually be granted. The old system allowed for a 'deferred deadlock' condition where a blocked lock request could wake up and find that some other deadlock-causing lock owner had beaten them to the lock. * Since both local and remote locks are managed by the same kernel locking code, local and remote processes can safely use file locks for mutual exclusion. Local processes have no fairness advantage compared to remote processes when contending to lock a region that has just been unlocked - the local lock manager enforces a strict first-come first-served model for both local and remote lockers. Sponsored by: Isilon Systems PR: 95247 107555 115524 116679 MFC after: 2 weeks
* scandir(3) previously used st_size to obtain an initial estimatedas2008-03-161-13/+3
| | | | | | | | | | | | | of the array length needed to store all the directory entries. Although BSD has historically guaranteed that st_size is the size of the directory file, POSIX does not, and more to the point, some recent filesystems such as ZFS use st_size to mean something else. The fix is to not stat the directory at all, set the initial array size to 32 entries, and realloc it in powers of 2 if that proves insufficient. PR: 113668
* Remove trailing whitespace.ru2008-03-131-1/+1
|
* Add missing section number.ru2008-03-131-1/+1
|
* In file sem_timewait.3, remove reference to SYSV semphore in SEE ALSOdavidxu2008-03-132-4/+3
| | | | section, sync it with sem_wait.3.
* Add missing comma.davidxu2008-03-121-1/+1
|
* Add manual for function sem_timedwait().davidxu2008-03-122-1/+123
| | | | Reviewed by: ru, deischen
* stdio is currently limited to file descriptors not greater thanwollman2008-02-271-1/+19
| | | | | | | | {SHRT_MAX}, so {STREAM_MAX} should be no greater than that. (This does not exactly meet the letter of POSIX but comes reasonably close to it in spirit.) MFC after: 14 days
* Our fts(3) API, as inherited from 4.4BSD, suffers from integeryar2008-01-266-93/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fields in FTS and FTSENT structs being too narrow. In addition, the narrow types creep from there into fts.c. As a result, fts(3) consumers, e.g., find(1) or rm(1), can't handle file trees an ordinary user can create, which can have security implications. To fix the historic implementation of fts(3), OpenBSD and NetBSD have already changed <fts.h> in somewhat incompatible ways, so we are free to do so, too. This change is a superset of changes from the other BSDs with a few more improvements. It doesn't touch fts(3) functionality; it just extends integer types used by it to match modern reality and the C standard. Here are its points: o For C object sizes, use size_t unless it's 100% certain that the object will be really small. (Note that fts(3) can construct pathnames _much_ longer than PATH_MAX for its consumers.) o Avoid the short types because on modern platforms using them results in larger and slower code. Change shorts to ints as follows: - For variables than count simple, limited things like states, use plain vanilla `int' as it's the type of choice in C. - For a limited number of bit flags use `unsigned' because signed bit-wise operations are implementation-defined, i.e., unportable, in C. o For things that should be at least 64 bits wide, use long long and not int64_t, as the latter is an optional type. See FTSENT.fts_number aka FTS.fts_bignum. Extending fts_number `to satisfy future needs' is pointless because there is fts_pointer, which can be used to link to arbitrary data from an FTSENT. However, there already are fts(3) consumers that require fts_number, or fts_bignum, have at least 64 bits in it, so we must allow for them. o For the tree depth, use `long'. This is a trade-off between making this field too wide and allowing for 64-bit inode numbers and/or chain-mounted filesystems. On the one hand, `long' is almost enough for 32-bit filesystems on a 32-bit platform (our ino_t is uint32_t now). On the other hand, platforms with a 64-bit (or wider) `long' will be ready for 64-bit inode numbers, as well as for several 32-bit filesystems mounted one under another. Note that fts_level has to be signed because -1 is a magic value for it, FTS_ROOTPARENTLEVEL. o For the `nlinks' local var in fts_build(), use `long'. The logic in fts_build() requires that `nlinks' be signed, but our nlink_t currently is uint16_t. Therefore let's make the signed var wide enough to be able to represent 2^16-1 in pure C99, and even 2^32-1 on a 64-bit platform. Perhaps the logic should be changed just to use nlink_t, but it can be done later w/o breaking fts(3) ABI any more because `nlinks' is just a local var. This commit also inludes supporting stuff for the fts change: o Preserve the old versions of fts(3) functions through libc symbol versioning because the old versions appeared in all our former releases. o Bump __FreeBSD_version just in case. There is a small chance that some ill-written 3-rd party apps may fail to build or work correctly if compiled after this change. o Update the fts(3) manpage accordingly. In particular, remove references to fts_bignum, which was a FreeBSD-specific hack to work around the too narrow types of FTSENT members. Now fts_number is at least 64 bits wide (long long) and fts_bignum is an undocumented alias for fts_number kept around for compatibility reasons. According to Google Code Search, the only big consumers of fts_bignum are in our own source tree, so they can be fixed easily to use fts_number. o Mention the change in src/UPDATING. PR: bin/104458 Approved by: re (quite a while ago) Discussed with: deischen (the symbol versioning part) Reviewed by: -arch (mostly silence); das (generally OK, but we didn't agree on some types used; assuming that no objections on -arch let me to stick to my opinion)
* In getttyent(3), if /etc/ttys doesn't end in a newline, don'tdas2008-01-151-1/+1
| | | | | | | freak out and keep trying to expand the buffer until realloc() fails. PR: 114398
* Add a feature_present(3) function which checks to see if a named kerneljhb2008-01-103-2/+137
| | | | | | feature is present by checking the kern.features sysctl MIB. MFC after: 1 week
* Add a new file descriptor type for IPC shared memory objects and use it tojhb2008-01-083-267/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | implement shm_open(2) and shm_unlink(2) in the kernel: - Each shared memory file descriptor is associated with a swap-backed vm object which provides the backing store. Each descriptor starts off with a size of zero, but the size can be altered via ftruncate(2). The shared memory file descriptors also support fstat(2). read(2), write(2), ioctl(2), select(2), poll(2), and kevent(2) are not supported on shared memory file descriptors. - shm_open(2) and shm_unlink(2) are now implemented as system calls that manage shared memory file descriptors. The virtual namespace that maps pathnames to shared memory file descriptors is implemented as a hash table where the hash key is generated via the 32-bit Fowler/Noll/Vo hash of the pathname. - As an extension, the constant 'SHM_ANON' may be specified in place of the path argument to shm_open(2). In this case, an unnamed shared memory file descriptor will be created similar to the IPC_PRIVATE key for shmget(2). Note that the shared memory object can still be shared among processes by sharing the file descriptor via fork(2) or sendmsg(2), but it is unnamed. This effectively serves to implement the getmemfd() idea bandied about the lists several times over the years. - The backing store for shared memory file descriptors are garbage collected when they are not referenced by any open file descriptors or the shm_open(2) virtual namespace. Submitted by: dillon, peter (previous versions) Submitted by: rwatson (I based this on his version) Reviewed by: alc (suggested converting getmemfd() to shm_open())
* Fix a typo in regards to the ENOENT error.jhb2007-12-271-1/+1
| | | | | | PR: docs/118929 Submitted by: mymtom of hotmail MFC after: 3 days
* Implementing 'fallback' nsswitch source. 'fallback' source is usedbushman2007-12-122-113/+194
| | | | | | | | | | | | when particular function can't be found in nsswitch-module. For example, getgrouplist(3) will use module-supplied 'getgroupmembership' function (which can work in an optimal way for such source as LDAP) and will fall back to the stanard iterate-through-all-groups implementation otherwise. PR: ports/114655 Submitted by: Michael Hanselmann <freebsd AT hansmi DOT ch> Reviewed by: brooks (mentor)
* Since jb@ fixed the type of dd_lock in <dirent.h>, these casts are nodes2007-12-034-11/+11
| | | | longer required.
* Add _pthread_mutex_init_calloc_cb to libc's map, for which malloc definesjasone2007-11-271-0/+1
| | | | a stub.
* Change the casts from (pthread_mutex_t *) to (void *) to keep gcc quiet.cognet2007-11-191-3/+3
| | | | Anybody with a cleaner solution feel free to change it.
* Remove extraneous .Ef request.keramida2007-10-301-2/+1
| | | | MFC after: 3 days
* VM_METER is long deprecated.ru2007-10-161-2/+2
|
* Rescue parts of the sensorsd commit that are still relevant:ru2007-10-161-6/+9
| | | | | | - HW_FLOATINGPOINT renamed to HW_FLOATINGPT. - Documented HW_REALMEM. - Sorted as per <sys/sysctl.h>.
* Backout sensors framework.netchild2007-10-151-36/+6
| | | | | Requested by: phk Discussed on: cvs-all
* Fix mdoc in last commit.ru2007-10-141-13/+15
|
* Import OpenBSD's sysctl hardware sensors framework.netchild2007-10-141-6/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit includes the following core components: * sample configuration file for sensorsd * rc(8) script and glue code for sensorsd(8) * sysctl(3) doc fixes for CTL_HW tree * sysctl(3) documentation for hardware sensors * sysctl(8) documentation for hardware sensors * support for the sensor structure for sysctl(8) * rc.conf(5) documentation for starting sensorsd(8) * sensor_attach(9) et al documentation * /sys/kern/kern_sensors.c o sensor_attach(9) API for drivers to register ksensors o sensor_task_register(9) API for the update task o sysctl(3) glue code o hw.sensors shadow tree for sysctl(8) internal magic * <sys/sensors.h> * HW_SENSORS definition for <sys/sysctl.h> * sensors display for systat(1), including documentation * sensorsd(8) and all applicable documentation The userland part of the framework is entirely source-code compatible with OpenBSD 4.1, 4.2 and -current as of today. All sensor readings can be viewed with `sysctl hw.sensors`, monitored in semi-realtime with `systat -sensors` and also logged with `sensorsd`. Submitted by: Constantine A. Murenin <cnst@FreeBSD.org> Sponsored by: Google Summer of Code 2007 (GSoC2007/cnst-sensors) Mentored by: syrinx Tested by: many OKed by: kensmith Obtained from: OpenBSD (parts)
* Add fts_set_clientptr(3), fts_get_clientptr(3) and fts_get_stream(3) manscf2007-09-281-1/+2
| | | | | | | | page links to fts(3). Approved by: wes Approved by: re (hrs) MFC after: 5 days
* Change the C wrappers for mmap/lseek/pread/pwrite/truncate/ftruncate topeter2007-07-042-1/+63
| | | | | | | | | call the pad-less versions of the corresponding syscalls if the running kernel supports it. Check kern.osreldate once per program and cache the result to select the appropriate syscall. This maintains userland compatability with kernel.old's from quite a while back. Approved by: re (kensmith)
* Some libc symbol map cleanups.deischen2007-05-311-3/+0
| | | | | | | | | | | | | | | | | | | | | net: endhostdnsent is named _endhostdnsent and is private to netdb family of functions. posix1e: acl_size.c has been never compiled in, so there's no "acl_size". rpc: "getnetid" is a static function. stdtime: "gtime" is #ifdef'ed out in the source. some symbols are specific only to some architectures, e.g., ___tls_get_addr is only defined on i386. __htonl, __htons, __ntohl and __ntohs are no longer functions, they are now (internal) defines in <machine/endian.h>. Submitted by: ru
* ANSIfy function definitions, reduces diff against OpenBSD.delphij2007-05-251-17/+8
|
* Use C comments since we now preprocess these files with CPP.deischen2007-04-291-15/+26
|
* Cleanup sysconf(3) a bit. sysconf(3) assumes in some places it operatespjd2007-04-141-21/+18
| | | | | | | | | | on int, but in fact it should operate on long. - Introduce 'lvalue' variable, which is long. - Fix _SC_XOPEN_SHM for 64bit archs. - Fix _SC_PHYS_PAGES for 64bit archs. Reported by: simokawa - Use lvalue for pathconf(3), as it returns long. - Cast value explicitly to long on return.
* Expand the description of the host's UUID.ru2007-04-101-3/+3
| | | | OK'ed by: pjd
* Clean-ip TLS symbol versions. [_]__tls_get_addr function is part ofkan2007-04-091-6/+1
| | | | | | | the platform ABI and as such does not belong in FBSDprivate. __libc_tls_* functions do not have to be visible to outside world at all.
* Document KERN_HOSTUUID.pjd2007-04-091-1/+4
| | | | Reminded by: ru
* Bump date.pjd2007-04-051-1/+1
|
* Add security.jail.mount_allowed sysctl, which allows to mount andpjd2007-04-051-0/+7
| | | | | | | | | | | | | | | | | | unmount jail-friendly file systems from within a jail. Precisely it grants PRIV_VFS_MOUNT, PRIV_VFS_UNMOUNT and PRIV_VFS_MOUNT_NONUSER privileges for a jailed super-user. It is turned off by default. A jail-friendly file system is a file system which driver registers itself with VFCF_JAIL flag via VFS_SET(9) API. The lsvfs(1) command can be used to see which file systems are jail-friendly ones. There currently no jail-friendly file systems, ZFS will be the first one. In the future we may consider marking file systems like nullfs as jail-friendly. Reviewed by: rwatson
* Add entry for dl_iterate_phdr.kan2007-04-031-0/+1
|
* Add stub for dl_iterate_phdr.kan2007-04-031-0/+10
|
OpenPOWER on IntegriCloud