summaryrefslogtreecommitdiffstats
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* Make this c++ compatible.dfr2008-05-161-0/+4
| | | | PR: 87726
* Add definition for OM_uint64.dfr2008-05-151-0/+1
| | | | Submitted by: tmclaugh
* Define the size_t type since readpassphrase(3) requires it in itsscf2008-05-081-0/+6
| | | | | | | definition and sys/types.h is not listed within the synopsis of the man page. MFC after: 1 week
* Tag FILE's _bf as being part of the public ABI as well due to the in-treejhb2008-05-071-1/+1
| | | | sort(1) referencing it.
* Fix conflicts after heimdal-1.1 import and add build infrastructure. Importdfr2008-05-071-13/+94
| | | | all non-style changes made by heimdal to our own libgssapi.
* Install the mpilib headers from mpt(4) into /usr/include/dev/mpt/mpilib.jhb2008-05-071-1/+3
| | | | | | This allows <sys/mpt_ioctl.h> to be used from userland. Prodded by: scottl
* Retire the __fgetcookie(), __fgetpendout(), and __fsetfileno() accessorsjhb2008-05-051-6/+0
| | | | as we aren't hiding FILE's internals anymore.
* Note that FILE's __cookie is also part of the public ABI.jhb2008-05-051-1/+1
|
* Expose FILE's internals to the world again in all their glory. Restorejhb2008-05-051-4/+172
| | | | | all the previous inline optimizations as well. FILE is back to using __mbstate_t, struct pthread *, and struct pthread_mutex *.
* Unbreak build: gnu sort has been configured to grope inside structmarcel2008-05-031-0/+3
| | | | | | | __sFILE. It's opaque now, so add a function that returns the pending output bytes. Pointy hat: jhb
* Unbreak build: libftpio gropes inside struct __sFILE. Implementmarcel2008-05-031-0/+3
| | | | | | | | accessor functions for its benefit now thaat FILE is opaque. I'm sure there's a better way. I leave that for people to work on in a src tree that isn't broken. Pointy hat: jhb
* Axe now-empty __BSD_VISIBLE block that held renameat().jhb2008-05-021-2/+0
| | | | | Reported by: kib Pointy hat: jhb
* - Move declaration of renameat() to the existing section of BSD_VISIBLEjhb2008-05-021-6/+6
| | | | | | | function prototypes. - Fix a few whitespace inconsistencies in prototypes. MFC after: 1 month
* Next round of stdio changes: Remove all inlining of stdio operations andjhb2008-05-021-172/+4
| | | | | | | | | | | | | | | | move the definition of the type backing FILE (struct __sFILE) into an internal header. - Remove macros to inline certain operations from stdio.h. Applications will now always call the functions instead. - Move the various foo_unlocked() functions from unlocked.c into foo.c. This lets some of the inlining macros (e.g. __sfeof()) move into foo.c. - Update a few comments. - struct __sFILE can now go back to using mbstate_t, pthread_t, and pthread_mutex_t instead of knowing about their private, backing types. MFC after: 1 month Reviewed by: kan
* Next stage of stdio cleanup: Retire __sFILEX and merge the fields back intojhb2008-04-171-4/+7
| | | | | | | | | | | | | | | | | | | __sFILE. This was supposed to be done in 6.0. Some notes: - Where possible I restored the various lines to their pre-__sFILEX state. - Retire INITEXTRA() and just initialize the wchar bits (orientation and mbstate) explicitly instead. The various places that used INITEXTRA didn't need the locking fields or _up initialized. (Some places needed _up to exist and not be off the end of a NULL or garbage pointer, but they didn't require it to be initialized to a specific value.) - For now, stdio.h "knows" that pthread_t is a 'struct pthread *' to avoid namespace pollution of including all the pthread types in stdio.h. Once we remove all the inlines and make __sFILE private it can go back to using pthread_t, etc. - This does not remove any of the inlines currently and does not change any of the public ABI of 'FILE'. MFC after: 1 month Reviewed by: peter
* Specifically mark the members of 'FILE' that are accessed via inlinejhb2008-04-171-6/+10
| | | | | | functions or macros since they are part of the public ABI as a result. MFC after: 1 month
* Implement fdopendir(3) by splitting __opendir2() into two parts, the upper partdelphij2008-04-161-0/+1
| | | | | | 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.
* Add the restrict qualifiers to the pointer arguments of the readlinkat.kib2008-04-101-1/+1
|
* Add memrchr(3).delphij2008-04-101-0/+1
| | | | Obtained from: OpenBSD
* Correct the prototype for the faccessat().kib2008-04-011-1/+1
| | | | Reported by: ru
* Add the libc glue and headers definitions for the *at() syscalls.kib2008-03-312-0/+14
| | | | | | | Based on the submission by rdivacky, sponsored by Google Summer of Code 2007 Reviewed by: rwatson, rdivacky Tested by: pho
* Implement csqrtl().das2008-03-301-0/+2
|
* Hook hypotl() and cabsl() up to the build.das2008-03-301-1/+2
|
* Allow an application to define FOPEN_MAX (like we allow for OPEN_MAXjb2008-03-261-0/+2
| | | | in sys/syslimits.h).
* Add POSIX pthread API pthread_getcpuclockid() to get a thread's cpudavidxu2008-03-222-0/+2
| | | | time clock id.
* Add cpu affinity APIs to get and set thread's cpu affinity mask, thedavidxu2008-03-031-0/+7
| | | | functions are intented to be are compatible with glibc.
* Added the "restrict" type-qualifier to the readlink() prototype.ru2008-02-261-1/+1
|
* Change readlink(2)'s return type and type of the last argumentru2008-02-121-1/+1
| | | | | | to match POSIX. Prodded by: Alexey Lyashkov
* Per discussion on -threads, rename _islocked_np() to _isowned_np().des2008-02-061-1/+1
|
* Add pthread_mutex_islocked_np(), a cheap way to verify that a mutex isdes2008-02-031-0/+1
| | | | | | | locked. This is intended primarily to support the userland equivalent of the various *_ASSERT_LOCKED() macros we have in the kernel. MFC after: 2 weeks
* Our fts(3) API, as inherited from 4.4BSD, suffers from integeryar2008-01-261-18/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* _POSIX_THREAD_CPUTIME is now supported.davidxu2008-01-181-1/+1
|
* Add a feature_present(3) function which checks to see if a named kerneljhb2008-01-101-0/+1
| | | | | | feature is present by checking the kern.features sysctl MIB. MFC after: 1 week
* Implement and document csqrt(3) and csqrtf(3).das2007-12-151-1/+3
|
* 1. Add function pthread_mutex_setspinloops_np to turn a mutex's spindavidxu2007-12-141-0/+4
| | | | | | | | loop count. 2. Add function pthread_mutex_setyieldloops_np to turn a mutex's yield loop count. 3. Make environment variables PTHREAD_SPINLOOPS and PTHREAD_YIELDLOOPS to be only used for turnning PTHREAD_MUTEX_ADAPTIVE_NP mutex.
* Implement carg(3) and cargf(3).das2007-12-121-0/+2
| | | | Rotting in an old src tree since: March 2005
* Implementing 'fallback' nsswitch source. 'fallback' source is usedbushman2007-12-121-1/+3
| | | | | | | | | | | | 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)
* Only protect the prototypes with #ifndef _ASSERT_H_, the standardsphk2007-12-011-3/+2
| | | | specifically allow changes to the NDEBUG macro between #includes of assert.h
* Add missing #ifndef _ASSERT_H_ protection against multiple inclusionsphk2007-12-011-0/+4
|
* Remove some OpenSolaris compatibility stuff now that we're doing it ajb2007-11-281-4/+0
| | | | different way.
* Use a forward definition of an opaque structure rather than a voidjb2007-11-201-1/+2
| | | | to avoid a strict alias type check failure in gcc 4.2.
* Back out not human readable optimization in prev. commit which shownache2007-11-011-1/+1
| | | | to generate 3bytes longer opcode.
* Add a new "non-portable" mutex type, PTHREAD_MUTEX_ADAPTIVE_NP. Thiskris2007-10-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | is also implemented in glibc and is used by a number of existing applications (mysql, firefox, etc). This mutex type is a default mutex with the additional property that it spins briefly when attempting to acquire a contested lock, doing trylock operations in userland before entering the kernel to block if eventually unsuccessful. The expectation is that applications requesting this mutex type know that the mutex is likely to be only held for very brief periods, so it is faster to spin in userland and probably succeed in acquiring the mutex, than to enter the kernel and sleep, only to be woken up almost immediately. This can help significantly in certain cases when pthread mutexes are heavily contended and held for brief durations (such as mysql). Spin up to 200 times before entering the kernel, which represents only a few us on modern CPUs. No performance degradation was observed with this value and it is sufficient to avoid a large performance drop in mysql performance in the heavily contended pthread mutex case. The libkse implementation is a NOP. Reviewed by: jeff MFC after: 3 days
* Remove 3rd clause and renumber after getting permission from theimp2007-10-291-4/+1
| | | | author (quite some time ago).
* Micro-optimization of prev. commit, changeache2007-10-271-1/+1
| | | | (_c < 0 || _c >= 128) to (_c & ~0x7F)
* Small improvement for __isctype(): don't use __mb_sb_limit butache2007-10-271-1/+1
| | | | | hardcode 128 here instead, since default locale never define anything above 127 char.
* Back out iswascii change from prev. commit, iswascii was right,ache2007-10-141-1/+1
| | | | some overlook from me.
* The problem is: currently our single byte ctype(3) functions are brokenache2007-10-133-23/+56
| | | | | | | | | | | | | | | | | | | | | | | | | for wide characters locales in the argument range >= 0x80 - they may return false positives. Example 1: for UTF-8 locale we currently have: iswspace(0xA0)==1 and isspace(0xA0)==1 (because iswspace() and isspace() are the same code) but must have iswspace(0xA0)==1 and isspace(0xA0)==0 (because there is no such character and all others in the range 0x80..0xff for the UTF-8 locale, it keeps ASCII only in the single byte range because our internal wchar_t representation for UTF-8 is UCS-4). Example 2: for all wide character locales isalpha(arg) when arg > 0xFF may return false positives (must be 0). (because iswalpha() and isalpha() are the same code) This change address this issue separating single byte and wide ctype and also fix iswascii() (currently iswascii() is broken for arguments > 0xFF). This change is 100% binary compatible with old binaries. Reviewied by: i18n@
* Install the forgotten /usr/include/geom/multipath/ header.ru2007-10-011-2/+4
| | | | Approved by: re (kensmith)
* Bring in the GEOM Virtualisation class, which allows to create huge GEOMpjd2007-09-231-1/+1
| | | | | | | | | providers with limited physical storage and add physical storage as needed. Submitted by: Ivan Voras Sponsored by: Google Summer of Code 2006 Approved by: re (kensmith)
OpenPOWER on IntegriCloud