Commit Graph

1407 Commits

Author SHA1 Message Date
Andrey A. Chernov
c0046493c9 Add arc4random_uniform()
Obtained from:  OpenBSD
2008-07-22 11:40:42 +00:00
Andrey A. Chernov
3204108bc3 Add arc4random_buf.
Style: remove arg names from arc4random_addrandom.
2008-07-21 14:03:04 +00:00
David Xu
1b2bb4a55f posix_spawn() is supported, set _POSIX_SPAWN to 200212L. 2008-07-08 03:08:32 +00:00
Ed Schouten
c605eea952 Turn execvpe() into an internal libc routine.
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
2008-06-23 05:22:06 +00:00
Ed Schouten
6b0a300c02 Remove __restrict keywords from array arguments to make GCC's -std=c99 work.
When GCC is invoked with -std=c99, the following errors are displayed when
including <spawn.h>:

/usr/include/spawn.h:69: error: static or type qualifiers in abstract declarator
/usr/include/spawn.h:69: error: static or type qualifiers in abstract declarator
/usr/include/spawn.h:72: error: static or type qualifiers in abstract declarator
/usr/include/spawn.h:72: error: static or type qualifiers in abstract declarator

We'd better remove the __restrict keywords here. The same is also done
in <regex.h>.

Submitted by:	Andrzej Tobola <ato iem pw edu pl>
Reviewed by:	davidxu
Approved by:	philip (mentor, implicit)
2008-06-19 07:30:32 +00:00
Ed Schouten
d1b2bd213c Change my email address to the one from the FreeBSD project.
Approved by:	philip (mentor, implicit), davidxu
2008-06-17 07:09:58 +00:00
David Xu
947aa542e9 Add POSIX routines called posix_spawn() and posix_spawnp(), which
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
2008-06-17 06:26:29 +00:00
Ed Schouten
45792eb9b8 Turn sgtty into a binary-only compatibility interface.
sgtty was the original interface to configure terminal attributes on my
UNIX-like operating systems. It has been deprecated by the POSIX termios
interface, which is implemented in almost any modern system.

An advantage of turning this into a binary compatibility interface, is
that we can now eventually remove the COMPAT_43TTY switch from kernel
configurations. This removes many ioctl()'s from the TTY layer.

While there, increase the __FreeBSD_version, which may be useful for the
people working on the Ports tree.

Reviewed by:	kib
Approved by:	philip (mentor)
2008-06-14 10:42:18 +00:00
David Xu
83a0758789 Make pthread_cleanup_push() and pthread_cleanup_pop() as a pair of macros,
use stack space to keep cleanup information, this eliminates overhead of
calling malloc() and free() in thread library.

Discussed on: thread@
2008-06-09 01:14:10 +00:00
Bjoern A. Zeeb
2e598474fa Remove ISDN4BSD (I4B) from HEAD as it is not MPSAFE and
parts relied on the now removed NET_NEEDS_GIANT.
Most of I4B has been disconnected from the build
since July 2007 in HEAD/RELENG_7.

This is what was removed:
- configuration in /etc/isdn
- examples
- man pages
- kernel configuration
- sys/i4b (drivers, layers, include files)
- user space tools
- i4b support from ppp
- further documentation

Discussed with: rwatson, re
2008-05-26 10:40:09 +00:00
Robert Watson
e4372ceba0 Remove netatm from HEAD as it is not MPSAFE and relies on the now removed
NET_NEEDS_GIANT.  netatm has been disconnected from the build for ten
months in HEAD/RELENG_7.  Specifics:

- netatm include files
- netatm command line management tools
- libatm
- ATM parts in rescue and sysinstall
- sample configuration files and documents
- kernel support as a module or in NOTES
- netgraph wrapper nodes for netatm
- ctags data for netatm.
- netatm-specific device drivers.

MFC after:	3 weeks
Reviewed by:	bz
Discussed with:	bms, bz, harti
2008-05-25 22:11:40 +00:00
Kirk McKusick
f72ab79315 Expand dump to allow MAX_INT dump levels.
PR:           bin/100732
Submitted by: Matthew Vincenz <msvincen@midway.uchicago.edu>
2008-05-24 05:20:46 +00:00
Doug Rabson
b38ab77c7e Make this c++ compatible.
PR: 87726
2008-05-16 02:06:10 +00:00
Doug Rabson
a64b9907e1 Add definition for OM_uint64.
Submitted by: tmclaugh
2008-05-15 19:55:19 +00:00
Sean Farley
074fb5c7cc Define the size_t type since readpassphrase(3) requires it in its
definition and sys/types.h is not listed within the synopsis of the man
page.

MFC after:	1 week
2008-05-08 23:57:29 +00:00
John Baldwin
41a5b871a0 Tag FILE's _bf as being part of the public ABI as well due to the in-tree
sort(1) referencing it.
2008-05-07 15:12:45 +00:00
Doug Rabson
33f1219925 Fix conflicts after heimdal-1.1 import and add build infrastructure. Import
all non-style changes made by heimdal to our own libgssapi.
2008-05-07 13:53:12 +00:00
John Baldwin
c16e21016f Install the mpilib headers from mpt(4) into /usr/include/dev/mpt/mpilib.
This allows <sys/mpt_ioctl.h> to be used from userland.

Prodded by:	scottl
2008-05-07 04:11:21 +00:00
John Baldwin
143b946188 Retire the __fgetcookie(), __fgetpendout(), and __fsetfileno() accessors
as we aren't hiding FILE's internals anymore.
2008-05-05 16:14:02 +00:00
John Baldwin
a1b482ad63 Note that FILE's __cookie is also part of the public ABI. 2008-05-05 16:04:58 +00:00
John Baldwin
19e03ca803 Expose FILE's internals to the world again in all their glory. Restore
all the previous inline optimizations as well.  FILE is back to using
__mbstate_t, struct pthread *, and struct pthread_mutex *.
2008-05-05 16:03:52 +00:00
Marcel Moolenaar
0aca787a7b Unbreak build: gnu sort has been configured to grope inside struct
__sFILE. It's opaque now, so add a function that returns the pending
output bytes.

Pointy hat: jhb
2008-05-03 23:36:00 +00:00
Marcel Moolenaar
430f2c8721 Unbreak build: libftpio gropes inside struct __sFILE. Implement
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
2008-05-03 20:09:44 +00:00
John Baldwin
e15fdac776 Axe now-empty __BSD_VISIBLE block that held renameat().
Reported by:	kib
Pointy hat:	jhb
2008-05-02 15:59:22 +00:00
John Baldwin
163b945ae1 - Move declaration of renameat() to the existing section of BSD_VISIBLE
function prototypes.
- Fix a few whitespace inconsistencies in prototypes.

MFC after:	1 month
2008-05-02 15:28:23 +00:00
John Baldwin
c17bf9a9a5 Next round of stdio changes: Remove all inlining of stdio operations and
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
2008-05-02 15:25:07 +00:00
John Baldwin
1e98f88776 Next stage of stdio cleanup: Retire __sFILEX and merge the fields back into
__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
2008-04-17 22:17:54 +00:00
John Baldwin
7266fe16da Specifically mark the members of 'FILE' that are accessed via inline
functions or macros since they are part of the public ABI as a result.

MFC after:	1 month
2008-04-17 19:06:00 +00:00
Xin LI
6fda52ba75 Implement fdopendir(3) by splitting __opendir2() into two parts, the upper part
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.
2008-04-16 18:59:36 +00:00
Konstantin Belousov
196afaa91c Add the restrict qualifiers to the pointer arguments of the readlinkat. 2008-04-10 12:13:56 +00:00
Xin LI
82e45205c8 Add memrchr(3).
Obtained from:	OpenBSD
2008-04-10 00:12:44 +00:00
Konstantin Belousov
914c696304 Correct the prototype for the faccessat().
Reported by:	ru
2008-04-01 10:49:06 +00:00
Konstantin Belousov
ba2983e5b3 Add the libc glue and headers definitions for the *at() syscalls.
Based on the submission by rdivacky,
	sponsored by Google Summer of Code 2007
Reviewed by:	rwatson, rdivacky
Tested by:	pho
2008-03-31 12:14:04 +00:00
David Schultz
511dd36b32 Implement csqrtl(). 2008-03-30 20:07:15 +00:00
David Schultz
84c1c0a1ca Hook hypotl() and cabsl() up to the build. 2008-03-30 20:03:46 +00:00
John Birrell
2c2f4a605d Allow an application to define FOPEN_MAX (like we allow for OPEN_MAX
in sys/syslimits.h).
2008-03-26 23:43:11 +00:00
David Xu
9939a13667 Add POSIX pthread API pthread_getcpuclockid() to get a thread's cpu
time clock id.
2008-03-22 09:59:20 +00:00
David Xu
c3f43618db Add cpu affinity APIs to get and set thread's cpu affinity mask, the
functions are intented to be are compatible with glibc.
2008-03-03 08:28:13 +00:00
Ruslan Ermilov
a059c409c2 Added the "restrict" type-qualifier to the readlink() prototype. 2008-02-26 20:33:52 +00:00
Ruslan Ermilov
5f56182b6f Change readlink(2)'s return type and type of the last argument
to match POSIX.

Prodded by:	Alexey Lyashkov
2008-02-12 20:09:04 +00:00
Dag-Erling Smørgrav
1cbdac2668 Per discussion on -threads, rename _islocked_np() to _isowned_np(). 2008-02-06 19:34:31 +00:00
Dag-Erling Smørgrav
5fd410a787 Add pthread_mutex_islocked_np(), a cheap way to verify that a mutex is
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
2008-02-03 22:38:10 +00:00
Yaroslav Tykhiy
48aaad5fbc Our fts(3) API, as inherited from 4.4BSD, suffers from integer
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)
2008-01-26 17:09:40 +00:00
David Xu
0248203e2b _POSIX_THREAD_CPUTIME is now supported. 2008-01-18 08:48:32 +00:00
John Baldwin
ce309a2f26 Add a feature_present(3) function which checks to see if a named kernel
feature is present by checking the kern.features sysctl MIB.

MFC after:	1 week
2008-01-10 22:11:21 +00:00
David Schultz
aaf70b2314 Implement and document csqrt(3) and csqrtf(3). 2007-12-15 08:38:44 +00:00
David Xu
093fcf1694 1. Add function pthread_mutex_setspinloops_np to turn a mutex's spin
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.
2007-12-14 06:25:57 +00:00
David Schultz
205bd64894 Implement carg(3) and cargf(3).
Rotting in an old src tree since: March 2005
2007-12-12 23:43:51 +00:00
Michael Bushkov
a59d6a8724 Implementing 'fallback' nsswitch source. 'fallback' source is used
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)
2007-12-12 10:08:03 +00:00
Poul-Henning Kamp
19d6d0eb9a Only protect the prototypes with #ifndef _ASSERT_H_, the standards
specifically allow changes to the NDEBUG macro between #includes of assert.h
2007-12-01 19:28:13 +00:00
Poul-Henning Kamp
22ac70fcd3 Add missing #ifndef _ASSERT_H_ protection against multiple inclusions 2007-12-01 18:56:50 +00:00
John Birrell
990e94172d Remove some OpenSolaris compatibility stuff now that we're doing it a
different way.
2007-11-28 22:09:12 +00:00
John Birrell
6276af0ff1 Use a forward definition of an opaque structure rather than a void
to avoid a strict alias type check failure in gcc 4.2.
2007-11-20 01:49:00 +00:00
Andrey A. Chernov
70e7b0732a Back out not human readable optimization in prev. commit which shown
to generate 3bytes longer opcode.
2007-11-01 03:18:02 +00:00
Kris Kennaway
2017a7cdfe Add a new "non-portable" mutex type, PTHREAD_MUTEX_ADAPTIVE_NP. This
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
2007-10-29 21:01:47 +00:00
Warner Losh
ca5c51742b Remove 3rd clause and renumber after getting permission from the
author (quite some time ago).
2007-10-29 00:31:54 +00:00
Andrey A. Chernov
5dfb7ce5fc Micro-optimization of prev. commit, change
(_c < 0 || _c >= 128) to (_c & ~0x7F)
2007-10-27 22:32:27 +00:00
Andrey A. Chernov
eb75c0a0d0 Small improvement for __isctype(): don't use __mb_sb_limit but
hardcode 128 here instead, since default locale never define anything
above 127 char.
2007-10-27 09:32:32 +00:00
Andrey A. Chernov
ce0d9ca3db Back out iswascii change from prev. commit, iswascii was right,
some overlook from me.
2007-10-14 10:23:54 +00:00
Andrey A. Chernov
367ed4e13d The problem is: currently our single byte ctype(3) functions are broken
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@
2007-10-13 16:28:22 +00:00
Ruslan Ermilov
13650420dc Install the forgotten /usr/include/geom/multipath/ header.
Approved by:	re (kensmith)
2007-10-01 18:07:29 +00:00
Pawel Jakub Dawidek
f854db0bf5 Bring in the GEOM Virtualisation class, which allows to create huge GEOM
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)
2007-09-23 07:34:23 +00:00
Bruce M Simpson
0ad9d01971 Remove old prototypes for addr2ascii() and ascii2addr(), functions which no
longer exist in libc.

Requested by:	Craig Rodrigues
Approved by:	re (kensmith)
2007-08-24 20:25:52 +00:00
Bernd Walter
1b2d5599a5 declare struct tftphdr and embedded union as beeing packed, which is
required for arm.

Tested on:	arm, i386, amd64
Approved by:	re (rwatson)
MFC after:	1 week
2007-08-01 11:59:09 +00:00
Robert Watson
2b851aeb63 Disconnect netatm from the build as it is not MPSAFE and relies on
NET_NEEDS_GIANT, which will shortly be removed.  This is done in a
away that it may be easily reattached to the build before 7.1 if
appropriate locking is added.  Specifics:

- Don't install netatm include files
- Disconnect netatm command line management tools
- Don't build libatm
- Don't include ATM parts in rescue or sysinstall
- Don't install sample configuration files and documents
- Don't build kernel support as a module or in NOTES
- Don't build netgraph wrapper nodes for netatm

This removes the last remaining consumer of NET_NEEDS_GIANT.

Reviewed by:	harti
Discussed with:	bz, bms
Approved by:	re (kensmith)
2007-07-14 21:49:24 +00:00
Bjoern A. Zeeb
9fa28ff687 I4B header files were repo-copied from sys/i386/include to
sys/i4b/include/ so they will be available to all architectures
once I4B compiles on those.

I4B header files are now installed in include/i4b/ and no longer
in include/machine/.

For now we still install the headers for i386 only.

Approved by:	re (kensmith)
2007-07-06 07:20:59 +00:00
Sean Farley
2966d28c32 Significantly reduce the memory leak as noted in BUGS section for
setenv(3) by tracking the size of the memory allocated instead of using
strlen() on the current value.

Convert all calls to POSIX from historic BSD API:
 - unsetenv returns an int.
 - putenv takes a char * instead of const char *.
 - putenv no longer makes a copy of the input string.
 - errno is set appropriately for POSIX.  Exceptions involve bad environ
   variable and internal initialization code.  These both set errno to
   EFAULT.

Several patches to base utilities to handle the POSIX changes from
Andrey Chernov's previous commit.  A few I re-wrote to use setenv()
instead of putenv().

New regression module for tools/regression/environ to test these
functions.  It also can be used to test the performance.

Bump __FreeBSD_version to 700050 due to API change.

PR:		kern/99826
Approved by:	wes
Approved by:	re (kensmith)
2007-07-04 00:00:41 +00:00
George V. Neville-Neil
8409aedfa6 Commit IPv6 support for FAST_IPSEC to the tree.
This commit includes all remaining changes for the time being including
user space updates.

Submitted by:    bz
Approved by:    re
2007-07-01 12:08:08 +00:00
Rong-En Fan
534046e301 - Remove UMAP filesystem. It was disconnected from build three years ago,
and it is seriously broken.

Discussed on:   freebsd-arch@
Approved by:	re (mux)
2007-06-25 05:06:57 +00:00
Xin LI
0bb263df82 Require users to provide a length information for inet_ntoa_r,
this is common on other platforms.

Reported by:	pointyhat via kris
2007-06-14 07:13:28 +00:00
Xin LI
0c927cdd8e Add inet_ntoa_r, a reentrant version of inet_ntoa. This is
available on a lot of platforms, as well as libkern for years.

Submitted by:	"MQ"
2007-06-11 07:21:21 +00:00
Stefan Farfeleder
43b0ef8114 Use tabs after #define.
Obtained from:	NetBSD
Spotted by:	njl
2007-06-11 06:25:19 +00:00
Hidetoshi Shimokawa
41b23fe0b2 Add _PATH_FWMEM for libkvm. 2007-06-11 02:21:18 +00:00
Stefan Farfeleder
47517a7042 Merge NetBSD changes, among them:
el.c 1.44, el.h 1.17, editline.3 1.53, histedit.h 1.31:
# add EL_GETFP, and EL_SETFP.

el.c 1.42, term.c 1.46, term.h 1.18, editline.3 1.52, histedit.h 1.29:
# - Add more readline functions, enough for gdb-6.5
# - Make el_get varyadic, and implement EL_GETTC.
# - XXX: the EL_SETTC api will change in the future.

Note: The latter change breaks the ABI of the el_get() function.

Approved by:	re (kensmith)
2007-06-10 19:06:09 +00:00
Hajimu UMEMOTO
dde4a85d9d Merge BIND 9.4.1 into main chunk.
MFC after:	2 weeks
2007-06-03 17:20:27 +00:00
Andrey A. Chernov
ba174a5e38 Back out all POSIXified *env() changes.
Not because I admit they are technically wrong and not because of bug
reports (I receive nothing). But because I surprisingly meets so
strong opposition and resistance so lost any desire to continue that.

Anyone who interested in POSIX can dig out what changes and how
through cvs diffs.
2007-05-01 16:02:44 +00:00
Andrey A. Chernov
86580aa6fc Fix unsetenv and putenv prototypes to conform Open Group specs Issue 6
(also IEEE Std 1003.1-2001)
2007-04-30 02:27:43 +00:00
Pawel Jakub Dawidek
0fdce72711 Install only types.h from sys/rpc/.
Requested by:		ache
Explained how by:	ru
2007-04-13 01:39:33 +00:00
Pawel Jakub Dawidek
7f64b05f79 Move rpc/types.h under sys/, as this is used by ZFS kernel module.
Repo-copied by:	simon
2007-04-10 22:10:16 +00:00
Pawel Jakub Dawidek
f3fdfb670c - Remove SEEK_DATA and SEEK_HOLE from stdio.h, they don't belong here.
- Only define SEEK_DATA and SEEK_HOLE in sys/unistd.h when neither
  _POSIX_SOURCE nor _XOPEN_SOURCE is defined.

Pointed out by:	bde, ache
2007-04-07 16:02:30 +00:00
Pawel Jakub Dawidek
f6521d1c31 Implement SEEK_DATA and SEEK_HOLE extensions to lseek(2) as found in
OpenSolaris. For more information please refer to:

	http://blogs.sun.com/bonwick/entry/seek_hole_and_seek_data
2007-04-05 21:10:53 +00:00
Kirk McKusick
772ad651bf Update the dump program to save extended attributes. Update
the restore program to restore all dumped extended attributes.

If the restore is running as root, it will always be able
to restore all extended attributes. If it is not running
as root, it makes a best effort to set them. Using the -v
command line flag or the `verbose' command in interactive
mode will display all the extended attributes being set on
files (and at the end on directories) that are being restored.
It will note any extended attributes that could not be set.

The extended attributes are placed on the dump image immediately
following each file's data. Older versions of restore can work
with the newer dump images. Old versions of restore will
correctly restore the file data and then (silently) skip
over the extended attribute data and proceed to the next file.

This resolves PR 93085 which will be closed once the code
has been MFC'ed.

Note that this code will not compile until these header
files have been updated: <protocols/dumprestore.h> and
<sys/extattr.h>.

PR:		bin/93085
Comments from:	Poul-Henning Kamp and Robert Watson
MFC after:	3 weeks
2007-02-26 08:15:56 +00:00
Craig Rodrigues
d139ce67c0 Makefile changes to reflect moving sys/isofs/cd9660 to sys/fs/cd9660.
Continue to install userland include files in /usr/include/isofs/cd9660
so as not to break userland applications such as libstand.
2007-02-11 14:01:32 +00:00
Jens Schweikhardt
e8117c82f6 Properly parenthesize the __tg_is_complex() macro by moving a closing
paren to where it belongs.

MFC after:	7 days
2007-02-02 18:30:23 +00:00
Jens Schweikhardt
8011e03458 Comment the token after #endif, like we do everywhere else.
Static analyzers like FlexeLint complain about it.

MFC after:	7 days
2007-02-02 18:11:18 +00:00
Peter Wemm
401a7f6f1b Oops, remove an objformat.h reference. 2007-01-25 22:38:04 +00:00
Peter Wemm
8182cee74a Remove more a.out strays, as threatened in 2002. 2007-01-25 22:34:22 +00:00
David Xu
6a274b2b01 Add function __mq_oshandle() to get file handle of a mqueue. 2007-01-06 11:30:04 +00:00
Hajimu UMEMOTO
2cd19db26a Merge BIND9 9.3.3 into main chunk.
Obtained from:	ISC
MFC after:	1 week
2006-12-15 20:59:55 +00:00
Pawel Jakub Dawidek
143943aa35 Forgot to commit this file: add definition for _SC_PHYS_PAGES. 2006-12-14 21:42:03 +00:00
Joseph Koshy
9e1ea8f2fe Attempt to improve application portability by marking `struct ar_hdr'
as `packed'.

The C standard leaves the alignment of individual members of a C
struct upto the implementation, so pedantically speaking portable
code cannot assume that the layout of a `struct ar_hdr' in memory
will match its layout in a file.  Using a __packed attribute
declaration forces file and memory layouts for this structure to
match.

Submitted by:	ru
2006-11-13 04:28:29 +00:00
Tom Rhodes
6aeb05d7be Merge posix4/* into normal kernel hierarchy.
Reviewed by:	glanced at by jhb
Approved by:	silence on -arch@ and -standards@
2006-11-11 16:26:58 +00:00
Pawel Jakub Dawidek
f348204c94 Hook up gjournal bits to the build.
Sponsored by:	home.pl
2006-10-31 22:22:30 +00:00
Ruslan Ermilov
04c7da702f A GEOM cache can speed up read performance by sending fixed size
read requests to its consumer.  It has been developed to address
the problem of a horrible read performance of a 64k blocksize FS
residing on a RAID3 array with 8 data components, where a single
disk component would only get 8k read requests, thus effectively
killing disk performance under high load.  Documentation will be
provided later.  I'd like to thank Vsevolod Lobko for his bright
ideas, and Pawel Jakub Dawidek for helping me fix the nasty bug.
2006-10-06 08:27:07 +00:00
John Birrell
3c3f6fd0cf Include the Solaris compatibility definions iff _SOLARIS_C_SOURCE is defined. 2006-10-04 07:25:55 +00:00
Maksim Yevmenkin
1cda541cf5 Prepare for upcoming bthidd(8) update. Install vkbd(4) header into dev/vkbd.
MFC after:	1 month
2006-09-07 18:24:24 +00:00
Maxim Sobolev
e5d34218fb Add device to access and modify Open Firmware NVRAM settings in
PowerPC-based Apple's machines and small utility to do it from
userland modelled after the similar utility in Darwin/OSX.

Only tested on 1.25GHz G4 Mac Mini.

MFC after:	1 month
2006-08-01 22:19:01 +00:00
Jason Evans
78a6842d2f Add __{BEGIN,END}_DECLS macros, so that function prototypes remain
unmangled for C++ programs.

Submitted by:	Niklas Sorensson <nik@cs.chalmers.se>
2006-06-30 20:57:41 +00:00
Andrey A. Chernov
d61b5f8ac7 Add size_t declaration 2006-05-22 05:57:39 +00:00
Andrey A. Chernov
fa9ad9461a Make gl_offs size_t too, as required by POSIX
Make non-standard gl_matchc in the similar fashion as gl_pathc size_t too,
like done in NetBSD & others
2006-05-22 05:39:57 +00:00
Andrey A. Chernov
de7ac8d19c Use size_t for gl_pathc as asked in the libc's Makefile:
# If you bump SHLIB_MAJOR, see standards/55112.

PR:             55112
Reviewed by:    ume
2006-05-22 05:10:17 +00:00
Hajimu UMEMOTO
1bdf356bd3 Fix gethostbyaddr() prototype to conform to IEEE Std 1003.1 on 64 bit
arch.

X-MFC after:	never
2006-05-21 11:27:28 +00:00
Hajimu UMEMOTO
734aa10414 Return EAI_OVERFLOW instead of EAI_MEMORY when the supplied buffer is
too short.  This conforms to RFC3493, POSIX and XPG6.

Obtained from:	NetBSD
2006-05-21 11:22:31 +00:00
Hajimu UMEMOTO
d808369aa1 Upgrade res_update(3) and the friends to BIND9's one excluding TSIG
support.

X-MFC after:	never
2006-05-21 11:19:36 +00:00
Hajimu UMEMOTO
2d39807f07 Comment out the function prototypes which our libc actually
doesn't have.
2006-05-13 12:43:12 +00:00
Hajimu UMEMOTO
3da59cd007 Fix gethostbyaddr() prototype to conform to IEEE Std 1003.1:
http://www.opengroup.org/onlinepubs/009695399/functions/gethostbyaddr.html

gethostbyaddr_r() is changed as well.
It breaks ABI backward compatibility on 64 bit arch.  So, we fix it
on 32 bit arch only for now.

Reported by:	Rostislav Krasny <rosti.bsd@gmail.com>
2006-05-12 15:37:23 +00:00
Hajimu UMEMOTO
0e3a96aae0 English grammar fix in comment.
Submitted by:	keramida
2006-04-29 04:26:16 +00:00
Hajimu UMEMOTO
06a99fe36f - Extend the nsswitch to support Services, Protocols and Rpc
databases.
- Make nsswitch support caching.

Submitted by:	Michael Bushkov <bushman__at__rsu.ru>
Sponsored by:	Google Summer of Code 2005
2006-04-28 12:03:38 +00:00
Daniel Eischen
28c94ec4cb Add a prototype for fcloseall(). 2006-04-22 15:10:11 +00:00
Hajimu UMEMOTO
d3ac2b30d4 - make reentrant version of netdb functions glibc style API, and
expose them to outside of libc.
- make netdb functions NSS friendly.

Reviewed by:	arch@ and current@ (no objection)
2006-04-15 16:20:27 +00:00
John Birrell
992879a026 Copy the new CLOCK_ defines from sys/time.h for SUSv3 compatibility.
Approved by: rwatson
2006-04-15 03:08:55 +00:00
Hajimu UMEMOTO
eb27a220f8 Expose res_update and friends again. At least, ports/mail/spamilter
uses them.
Now, we have res_nupdate and res_nmkupdate as well, but they are
still based on our old resolver for binary backward compatibility.
So, they don't provide new features such as TSIG support.

Reported by:	pointyhat via kris
2006-03-30 20:15:53 +00:00
Jason Evans
6b2c15da6a Add malloc_usable_size(3).
Discussed with:		arch@
2006-03-28 22:16:04 +00:00
Hajimu UMEMOTO
5342d17f09 Update the resolver in libc to BIND9's one.
Since, res_sendsigned(3) and the friends use MD5 functions, it is
hard to include them without having MD5 functions in libc.  So,
res_sendsigned(3) is not merged into libc.

Since, res_update(3) in BIND9 is not binary compatible with our
res_update(3), res_update(3) is leaved as is, except some
necessary modifications.
The res_update(3) and the friends are not essential part of the
resolver.  They are not defined in resolv.h but defined in
res_update.h separately in BIND9.  Further, they are not called from
our tree.  So, I hide them from our resolv.h, but leave them only
for binary backward compatibility (perhaps, no one calls them).

Since, struct __res_state_ext is not exposed in BIND9, I hide it
from our resolv.h.  And, global variable _res_ext is removed.  It
breaks binary backward compatibility.  But, since it is not used from
outside of our libc, I think it is safe.

Reviewed by:	arch@ (no objection)
2006-03-21 16:11:11 +00:00
Ruslan Ermilov
cea557add0 Extend coverage of the MK_IPX build option to the following:
- <netipx> headers [1]
- IPX library (libipx)
- IPX support in ifconfig(8)
- IPXrouted(8)
- new MK_NCP option

New MK_NCP build option controls:

- <netncp> and <fs/nwfs> headers
- NCP library (libncp)
- ncplist(1) and ncplogin(1)
- mount_nwfs(8)
- ncp and nwfs kernel modules

User knobs: WITHOUT_IPX, WITHOUT_IPX_SUPPORT, WITHOUT_NCP.

[1] <netsmb/netbios.h> unconditionally uses <netipx> headers
so they are still installed.  This needs to be dealt with.
2006-03-20 14:24:58 +00:00
Robert Watson
013f1b341e Merge Perforce change 93569 from TrustedBSD audit3 branch:
Do install sys/security/audit include files.  It would be nice just
  to install audit_ioctl.h, but we seem only to support installing
  directories, so we get them all.  The two not intended for extra-
  kernel use have !_KERNEL #error's, which should help.

Obtained from:	TrustedBSD Project
2006-03-19 15:44:53 +00:00
Ruslan Ermilov
e1fe3dba5c Reimplementation of world/kernel build options. For details, see:
http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html

The src.conf(5) manpage is to follow in a few days.

Brought to you by:	imp, jhb, kris, phk, ru (all bugs are mine)
2006-03-17 18:54:44 +00:00
Andre Oppermann
c74dfa2faf Import of OpenBSD's strtonum(3) which is a nicer version of strtoll(3)
providing proper error checking and other improvements.

Obtained from:	OpenBSD
Requested by:	flz (to port Open[BGP|OSPF]D)
MFC after:	3 days
2006-03-14 16:57:30 +00:00
Ruslan Ermilov
5f0c9ae10a Hopefully fix all nearby style bugs that Bruce has mentioned. 2006-03-10 11:07:39 +00:00
Ruslan Ermilov
6549999b97 - Fix variable assignment to be portable.
- "Line up" continuations.

Submitted by:	bde
2006-03-10 11:00:11 +00:00
Hajimu UMEMOTO
a18487548f ns_name_skip was not prefixed by `__'.
Obtained from:	BIND9
2006-03-09 03:47:11 +00:00
Poul-Henning Kamp
f3fede8ab9 Add nested include of <wchar.h> 2006-03-02 10:01:52 +00:00
Daniel Eischen
0411773be7 Const'ify arguments to a couple of functions to fix breakage
with -O2.
2006-02-28 16:02:26 +00:00
Hajimu UMEMOTO
f9ad25aace Decrease the value of RES_DFLRETRY from 4 to 2.
PR:		bin/62139
Reported by:	Rostislav Krasny <rosti.bsd__at__gmail.com>
Obtained from:	BIND9
MFC after:	1 week
2006-02-24 17:00:50 +00:00
David Xu
d56a014b6e Introduce a new proc service routine ps_linfo() to get LWP info. 2006-02-07 02:29:55 +00:00
Poul-Henning Kamp
8dcefe6112 Remove spurious "union arg" from printf.h
Make sure to always print something in the alternate time format.
2006-02-04 14:35:01 +00:00
Stefan Farfeleder
3acb8d3f94 Analogous to __printflike and __scanflike, add the macro __format_arg which
expands to the GCC format_arg attribute if supported.

This fixes a syntax error in <nl_types.h> for compilers/tools not
implementing the GCC __attribute__ extensions.
2006-01-26 20:53:40 +00:00
Poul-Henning Kamp
6dbacee284 Make the %V{is} extension handle a NULL pointer like %s does: output "(null)"
Add %M{essage} extension which prints an errno value as the
corresponding string if possible or numerically otherwise.

It is not currently possible to do the syslog(3) like %m extension
because errno would need to get capatured on entry to the first
function in the printf family, so %M requires you to supply errno
as an argument.

Add %Q{uote} extension which will print a string in double quotes with
appropriate back-slash escapes (only) if necessary.
2006-01-25 12:45:24 +00:00
Jason Evans
b3d51d3afc Expose the posix_memalign() prototype, now that the function is implemented
by libc.
2006-01-12 07:58:59 +00:00
Doug Rabson
c0b9f4fe65 Add a new extensible GSS-API layer which can support GSS-API plugins,
similar the the Solaris implementation. Repackage the krb5 GSS mechanism
as a plugin library for the new implementation. This also includes a
comprehensive set of manpages for the GSS-API functions with text mostly
taken from the RFC.

Reviewed by: Love Hörnquist Åstrand <lha@it.su.se>, ru (build system), des (openssh parts)
2005-12-29 14:40:22 +00:00
Tom Rhodes
257551c6a0 Add a64l(), l64a(), and l64a_r() XSI extentions. These functions convert
between a 32-bit integer and a radix-64 ASCII string.  The l64a_r() function
is a NetBSD addition.

PR:		51209 (based on submission, but very different)
Reviewed by:	bde, ru
2005-12-24 22:37:59 +00:00
Poul-Henning Kamp
866196b69d Add abort2() prototype 2005-12-23 12:28:10 +00:00
Alexander Kabaev
0eb88f2029 Implement ELF symbol versioning using GNU semantics. This code aims
to be compatible with symbol versioning support as implemented by
GNU libc and documented by http://people.redhat.com/~drepper/symbol-versioning
and LSB 3.0.

Implement dlvsym() function to allow lookups for a specific version of
a given symbol.
2005-12-18 19:43:33 +00:00
Poul-Henning Kamp
75067f4f70 Add an extensible version of our *printf(3) implementation to libc
on probationary terms:  it may go away again if it transpires it is
a bad idea.

This extensible printf version will only be used if either
    environment variable USE_XPRINTF is defined
or
    one of the extension functions are called.
or
    the global variable __use_xprintf is set greater than zero.

In all other cases our traditional printf implementation will
be used.

The extensible version is slower than the default printf, mostly
because less opportunity for combining I/O operation exists when
faced with extensions.  The default printf on the other hand
is a bad case of spaghetti code.

The extension API has a GLIBC compatible part and a FreeBSD version
of same.  The FreeBSD version exists because the GLIBC version may
run afoul of our FILE * locking in multithreaded programs and it
even further eliminate the opportunities for combining I/O operations.

Include three demo extensions which can be enabled if desired: time
(%T), hexdump (%H) and strvis (%V).

%T can format time_t (%T), struct timeval (%lT) and struct timespec (%llT)
   in one of two human readable duration formats:
	"%.3llT" -> "20349.245"
	"%#.3llT" -> "5h39m9.245"

%H will hexdump a sequence of bytes and takes a pointer and a length
   argument.  The width specifies number of bytes per line.
	"%4H" -> "65 72 20 65"
	"%+4H" -> "0000 65 72 20 65"
	"%#4H" -> "65 72 20 65  |er e|"
	"%+#4H" -> "0000 65 72 20 65  |er e|"

%V will dump a string in strvis format.
	"%V" -> "Hello\tWor\377ld"	(C-style)
	"%0V" -> "Hello\011Wor\377ld"	(octal)
	"%+V" -> "Hello%09Wor%FFld"	(http-style)

Tests, comments, bugreports etc are most welcome.
2005-12-16 18:56:39 +00:00
Peter Wemm
7bb2af36b7 Fix ypwhich -m. This should be MFC'ed back at least as far as RELENG_5.
Submitted by: Gil Kloepfer <gil@arlut.utexas.edu>
PR: 64445
2005-12-06 02:01:06 +00:00
David Xu
ea8fe575cd barrier and spin_lock had already been implemented in libpthread and
libthr for a long time, set both _POSIX_BARRIERS and _POSIX_SPIN_LOCKS
to 200112L.
2005-12-02 02:36:13 +00:00
Ruslan Ermilov
1332b4bd91 Install the mqueue.h header. 2005-12-01 21:46:01 +00:00
David Xu
1f4ae9be57 Fix compiling for c++, include cdefs.h. 2005-11-30 07:26:36 +00:00
Craig Rodrigues
a8c06a09c4 Remove commented out reference to posix4/mqueue.h. It hasn't been installed
for 3 years, and now we have another (working) implementation
of POSIX message queues elsewhere in the source tree.
2005-11-28 03:21:58 +00:00
David Xu
c6678cae14 Bring in POSIX message queue header file. 2005-11-26 12:55:36 +00:00
Ruslan Ermilov
52fbcc15a0 Revert last revision, strmode() should be moved to <unistd.h> to be
properly fixed.
2005-11-24 08:30:44 +00:00
Ruslan Ermilov
20d91f5626 Fix prototype to match the code and documentation. 2005-11-24 07:20:26 +00:00
Ruslan Ermilov
fee45c0c38 Fix prototype of strmode() to match the code and documentation. 2005-11-24 06:59:35 +00:00
Xin LI
b0f3cf4492 Since speaker.h now lives in sys/dev/speaker, reflect this fact here. 2005-11-11 16:48:01 +00:00
David Xu
bd3e40ce72 Add POSIX timer interfaces. 2005-10-30 03:15:05 +00:00
David Xu
02ea638732 Add prototype for following functions, plus tab fixes.
pthread_condattr_getpshared
	pthread_condattr_setpshared
	pthread_mutexattr_getpshared
	pthread_mutexattr_setpshared
2005-10-24 05:53:54 +00:00
David Xu
d2c8dd81be Use __pid_t instead of pid_t for sigqueue as other functions. 2005-10-16 22:23:03 +00:00
David Xu
05e72fac12 Add sigqueue function prototype. 2005-10-14 13:12:27 +00:00
David Xu
a48182f787 Add pthread_timedjoin_np prototype. 2005-10-04 07:23:56 +00:00
Scott Long
6fa40729c8 Add the lmcconfig tool for controlling the lmc driver. Add man pages and
glue.

Submitted by: David Boggs
2005-10-03 07:09:41 +00:00
Stefan Farfeleder
efe444ea48 Back out 1.247. On ia64 <osreldate.h> is included from assembler source,
the prototype broke buildword.

Noticed by:	marcel
2005-09-14 09:01:06 +00:00
Stefan Farfeleder
e0970cbd7f Put a getosreldate() prototype into <osreldate.h>, getosreldate(3) implies
there is one.
2005-09-12 16:11:48 +00:00
Stefan Farfeleder
9d301680d6 Fix the prototypes for devname() and devname_r(), the first two argument
types are supposed to be dev_t and mode_t (prefixed with __ due to
namespace reasons).
2005-09-12 15:58:15 +00:00
Stefan Farfeleder
533dcdacf1 Don't declare ___res_ext() twice. 2005-09-12 15:53:28 +00:00
Stefan Farfeleder
323abbb7ce Improve POSIX conformance:
- Don't pollute the namespace by including <sys/types.h>, <sys/time.h>,
  <sys/signal.h> and <limits.h>.  Use __MINSIGSTKSZ and __ULONG_MAX from
  <machine/_limits.h>, __sigset_t from <sys/_sigset.h> instead.
- Include <time.h> because POSIX says we have to.

PTHREAD_{DESTRUCTOR_ITERATIONS,KEYS_MAX,STACK_MIN,THREADS_MAX} should
eventually move to <limits.h> but are left here for now.

Discussed on:	standards@, threads@
2005-09-01 15:33:22 +00:00
Andre Oppermann
da506dcad2 Appropriate namespace protection for memmem(3).
Submitted by:	wollman
MFC after:	3 days
2005-08-25 19:46:38 +00:00
Andre Oppermann
6050c8fe05 Add the function memmem(3) as found in glibc and others.
It is the binary equivalent to strstr(3).

 void *memmem(const void *big, size_t big_len,
	const void *little, size_t little_len);

Submitted by:	Pascal Gloor <pascal.gloor at spale.com>
MFC after:	3 days
2005-08-25 18:26:58 +00:00
Stefan Farfeleder
ad7c49168f - Prefix MUTEX_TYPE_MAX with PTHREAD_ to avoid namespace pollution.
- Remove the macros MUTEX_TYPE_FAST and MUTEX_TYPE_COUNTING_FAST.

OK'ed by:	deischen
2005-08-19 21:31:42 +00:00
Stefan Farfeleder
6ee81d6ffb Remove parameter names, the identifiers were in the user namespace. 2005-08-19 08:37:16 +00:00
Tim J. Robbins
d62e8d4c7c Add an implementation of the semi-standard wcsdup() function, as found
on Microsoft and GNU systems.
2005-08-13 05:54:33 +00:00
Stefan Farfeleder
76d00450e6 Sync libedit with recent NetBSD developments. Including improvements to the
vi-mode, removal of clause 3, cleanups and the export of the tokenization
functions.

Not included: config.h, filecomplete.{c,h}
2005-08-07 20:55:59 +00:00
Poul-Henning Kamp
3d86554c20 Respect the YES_HESIOD build variable. 2005-08-06 16:53:55 +00:00
Pawel Jakub Dawidek
5ca1fcfe06 Connect GEOM_ELI class to the build.
MFC after:	1 week
2005-07-27 21:47:55 +00:00
Hajimu UMEMOTO
85a71a15c8 Remove padding for ABI compatibility of ai_addrlen member
from struct addrinfo.  This change break ABI compatibility
on 64 bit arch.
2005-07-22 18:21:28 +00:00
Joseph Koshy
f263522a45 MFP4:
- Implement sampling modes and logging support in hwpmc(4).

- Separate MI and MD parts of hwpmc(4) and allow sharing of
  PMC implementations across different architectures.
  Add support for P4 (EMT64) style PMCs to the amd64 code.

- New pmcstat(8) options: -E (exit time counts) -W (counts
  every context switch), -R (print log file).

- pmc(3) API changes, improve our ability to keep ABI compatibility
  in the future.  Add more 'alias' names for commonly used events.

- bug fixes & documentation.
2005-06-09 19:45:09 +00:00
Hajimu UMEMOTO
ad0fab44e2 - Remove padding for ABI compatibility of n_net member from struct
netent.
- Change 1st argument of getnetbyaddr() to an uint32_t on 64 bit
  arch as well to confirm to POSIX-2001.

These changes break ABI compatibility on 64 bit arch.
There is similar padding issue for ai_addrlen of struct addrinfo.
However, it is leaved as is for now.

Discussed on:	arch@, standards@ and current@
X-MFC after:	never
2005-06-03 03:32:06 +00:00
Craig Rodrigues
4d62f529a3 According to:
http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/types.h.html

#include <sys/types.h>
should include the definitions of pthread types.

PR:		standards/78907
Reported by:	Brooks Davis
Approved by:	das (mentor)
2005-05-31 15:18:17 +00:00
Doug Rabson
8d7681bb7f Add support for XMM registers in GDB for x86 processors that support
SSE (or its successors).

Reviewed by: marcel, davidxu
MFC After: 2 weeks
2005-05-31 09:43:04 +00:00
Robert Watson
2c075601cd Correct mistake in previous commit: add 'bsm' to LDIRS not LSUBDIRS.
Pointy hat:	over here, please
2005-05-30 01:06:29 +00:00
Robert Watson
62fdab9284 Do install BSM include files (such as they are) when installing system
includes.

Submitted by:	wsalamon
Obtained from:	TrustedBSD Project
2005-05-29 16:17:00 +00:00
Hajimu UMEMOTO
2e631cd2fa disable defining NI_WITHSCOPEID. It was obsoleted, and was exist
only for backward compatibility since 5.2-RELEASE.
2005-05-27 19:02:12 +00:00
Ruslan Ermilov
228f8c4f8b Make <runefile.h> internal to libc.
Suggested by:	phantom
2005-05-16 09:32:41 +00:00
Hajimu UMEMOTO
036ae3dd79 - The ai_addrlen of a struct addrinfo used to be a size_t, per
RFC 2553.  In XNS5.2, and subsequently in POSIX-2001 and RFC
  3493, it was changed to a socklen_t.  And, the n_net of a
  struct netent used to be an unsigned long integer.  In XNS5,
  and subsequently in POSIX-2001, it was changed to an uint32_t.
  To accomodate for this while preserving ABI compatibility with
  the old interface, we need to prepend or append 32 bits of
  padding, depending on the (LP64) architecture's endianness.
- Correct 1st argument of getnetbyaddr() to uint32_t on 32
  bit arch.  Stay as is on 64 bit arch for ABI backward
  compatibility for now.

Reviewed by:	das, peter
MFC after:	2 weeks
2005-05-15 20:15:15 +00:00
Xin LI
8dcb56dc78 Provide more POSIX-complaint ttyname_r(3) interface[1], which is slightly
different from what has been offered in libc_r (the one spotted in the
original PR which is found in libthr has already been removed by David's
commit, which is rev. 1.44 of lib/libthr/thread/thr_private.h):
	- Use POSIX standard prototype for ttyname_r, which is,
		int ttyname_r(int, char *, size_t);
	  Instead of:
	  	char *ttyname_r(int, char *, size_t);
	  This is to conform IEEE Std 1003.1, 2004 Edition [1].
	- Since we need to use standard errno for return code, include
	  errno.h in ttyname.c
	- Update ttyname(3) implementation according to reflect the API
	  change.
	- Document new ttyname_r(3) behavior
	- Since we already make use of a thread local storage for
	  ttyname(3), remove the BUGS section.
	- Remove conflicting ttyname_r related declarations found in libc_r.

Hopefully this change should not have changed the API/ABI, as the ttyname_r
symbol was never introduced before the last unistd.h change which happens a
couple of days before.

[1] http://www.opengroup.org/onlinepubs/009695399/functions/ttyname.html

Requested by:	Tom McLaughlin <tmclaugh sdf lonestar org>
Through PR:	threads/76938
Patched by:	Craig Rodrigues <rodrigc crodrigues org> (with minor changes)
Prompted by:	mezz@
2005-05-13 16:27:30 +00:00
Xin LI
f73fd5bd75 Connect MLINKS for ttyname_r(3), and add prototype into unistd.h. 2005-05-11 14:07:25 +00:00
Hajimu UMEMOTO
bcb131aa3c hide implementation specific internal functions from netdb.h.
it is needed to make get{host,net}by*() thread-safe.
2005-04-27 19:12:57 +00:00
Scott Long
f98a656c0a Conditionalize the ipfilter header files on NO_IPFILTER. While normally these
should be harmless, the kdump(1) build does evil things with collecting
system header files, and thus would unconditionally collect and process these.

MFC After: 3 days
2005-04-26 02:01:39 +00:00
David Xu
213a268eec Increase PTHREAD_STACK_MIN to MINSIGSTKSZ because thread libraries now use
makecontext which enforces a minimum stack size to be MINSIGSTKSZ.

Bug report: Bill Middleton <flashdict at gmail dot com>, BSD-sharp project.
2005-04-11 03:47:42 +00:00
David Xu
fc5684ec15 Add pthread_condattr_getclock, pthread_condattr_setclock. 2005-04-03 23:55:02 +00:00
Warner Losh
dfd569ede5 Make sure that $_MARCH and friends exist
Submitted by: nyan@
2005-04-03 04:53:23 +00:00
David Schultz
6d2f64c103 Define CLOCK_* and TIMER_* in time.h, where they are supposed to be. 2005-04-02 12:33:27 +00:00
Warner Losh
8f3e5dd0aa When $MACHINE != $MACHINE_ARCH, install $MACHINE_ARCH/include into
/usr/include/$MACHINE_ARCH in addition to installing $MACHINE/include
into /usr/include/machine.
2005-04-01 23:22:01 +00:00
David Schultz
3eea66586b - Declare mknod in stat.h (in addition to unistd.h), as per XSI.
- Use blksize_t and blkcnt_t in struct stat.
- Hide non-standard fields in stat.h when !__BSD_VISIBLE.
- Add restrict qualifiers in stat.h.
2005-03-22 01:19:18 +00:00
Hajimu UMEMOTO
df3c03a773 just use crypto/rijndael, and nuke opencrypto/rindael.[ch].
the two became almost identical since latest KAME merge.

Discussed with:	sam
2005-03-11 17:24:46 +00:00
Nate Lawson
9f97a43bc3 Only install acpiio.h in /usr/include. That's all we want to export to users.
Submitted by:	ru (any bugs by me)
MFC after:	1 day
2005-03-02 10:45:09 +00:00
Ruslan Ermilov
829ba4de63 Sync the list of headers visible with SHARED=symlinks with those
visible with SHARED=copies.

Inspired by:	njl
2005-03-02 07:40:18 +00:00
Nate Lawson
bc8652a15a Install acpi includes in dev/acpica. This should later be trimmed (the pci
bus one is not needed) and ifdef _KERNEL added.

PR:		kern/74215
MFC after:	1 day
2005-02-28 02:20:03 +00:00
Alexey Zelkin
54de744402 Bring in NetBSD's improvements and cleanups to NLS subsystem, making
it type and endian clean and removing of stdio dependency from NLS
functions (catalog files now are processed via mmap()).

Also following changes were done (against NetBSD version):

. ANSI'fy prototypes
. Mention FreeBSD in comments
. Pull in sys/types.h instead of sys/_types.h since some types used here
  are defined in sys/types.h

Obtained from:	NetBSD (mostly)
2005-02-27 16:20:53 +00:00
Ruslan Ermilov
3fb3a43079 Make the format of LC_CTYPE files architecture independent by
introducing the disk formats for _RuneLocale and friends.

The disk formats do not have (useless) pointers and have 32-bit
quantities instead of rune_t and long.  (htonl(3) only works
with 32-bit quantities, so there's no loss).

Bootstrap mklocale(1) when necessary.  (Bootstrapping from 4.x
would be trivial (verified), but we no longer provide pre-5.3
source upgrades and this is the first commit to actually break
it.)
2005-02-26 21:47:54 +00:00
Marius Strobl
88e29e1139 The Intel C/C++ compiler doesn't require a typedef for _Bool when compiling
C source so don't declare one when using the GCC-compatibility (defaulting
to GCC 2.95.0) of ICC.

Submitted by:	netchild
MFC after:	1 week
2005-02-19 13:47:33 +00:00
Alexey Zelkin
ed61386604 . Convert return type of gai_strerror() to 'const char *' as POSIX requires.
. Convert ai_errlist[] to simple 'char *' array, and appropriately
  optimize gai_strerror()
2005-02-14 11:33:12 +00:00
Poul-Henning Kamp
d61902a5b4 Install GPIB related includefiles (unless NO_GPIB) 2005-02-06 15:18:24 +00:00
Hajimu UMEMOTO
c224435ed9 implement AI_NUMERICSERV (as defined in RFC3493).
Obtained from:	KAME
MFC after:	1 week
2005-01-27 14:45:11 +00:00
Jacques Vidrine
fb3be370b0 Correct a typo in the definition of _PW_VERSION_MASK. This macro is
currently unused other than as documentation.

Reported by:	 Stefan Farfeleder <stefan@fafoe.narf.at>
2005-01-26 17:26:54 +00:00
Diomidis Spinellis
6901ba9306 Fix the pbio include file installation process and the
corresponding documentation.

Noticed by: ru
Reviewed by: ru
2005-01-14 14:18:19 +00:00
Pawel Jakub Dawidek
2c144a95ed Add missing entry.
Reported by:	sos
2005-01-11 21:15:18 +00:00
Tim J. Robbins
17ebe40096 Implement rpmatch(), a semi-standard interface (as found on AIX, Tru64,
GNU) for determining whether a string is an affirmative or negative
response to a question according to the current locale. This is done
by matching the response against nl_langinfo(3) items YESEXPR and NOEXPR.
2005-01-09 03:55:13 +00:00
David Xu
792d9d0376 Fix typo, function name pthread_rwlock_timedrwlock should be
pthread_rwlock_timedwrlock.
2005-01-08 11:07:13 +00:00
Pawel Jakub Dawidek
28644c1bbb Introduce new field 'fts_bignum' which is 64bit long and will allow to
make utilities like du(1) 64bit-clean.
When this field is used, one cannot use 'fts_number' and 'fts_pointer'
fields.

This commit doesn't break API nor ABI.

This work is part of the BigDisk project:

	http://www.FreeBSD.org/projects/bigdisk/

Discussed on:	arch@
MFC after:	5 days
2005-01-07 00:06:20 +00:00
Marcel Moolenaar
1d1b40fed8 Constify arguments. 2005-01-03 02:56:15 +00:00
Ruslan Ermilov
e653b48c80 Start the dreaded NOFOO -> NO_FOO conversion.
OK'ed by:	core
2004-12-21 08:47:35 +00:00
Tom Rhodes
2f5cde3c64 According to the information on:
http://www.opengroup.org/onlinepubs/009695399/functions/swab.html
the prototype for swab() should be in <unistd.h> and not in <string.h>.
Move it, and update to match SUS.  Leave the prototype in string.h for
now, for backwards compat.

PR:		74751
Submitted by:	Craig Rodrigues <rodrigc@crodrigues.org>
Discussed with:	das
2004-12-10 15:24:40 +00:00
Poul-Henning Kamp
47837a50b0 Remove nfsclnt() prototype. 2004-12-07 07:10:39 +00:00
Ruslan Ermilov
3b1adda71f Fixed transition from SHARED=symlinks to SHARED=copies. 2004-11-17 23:48:17 +00:00
Mark Murray
51be47e42f Help Tinderbox and remove autofs 2004-11-10 22:21:07 +00:00
Ruslan Ermilov
a35d88931c For variables that are only checked with defined(), don't provide
any fake value.
2004-10-24 15:33:08 +00:00
Tim J. Robbins
31d330fb2a Remove the obsolete <rune.h> interface. 2004-10-17 06:51:50 +00:00
Doug Barton
2a61444749 1. Add much finer granularity to the NO_BIND knobs with the addition of:
NO_BIND_DNSSEC, NO_BIND_ETC, NO_BIND_NAMED, and NO_BIND_UTILS.

2. Make creation of directories in /usr/include that are only needed
in the WITH_BIND_LIBS case conditional.

Reviewed by:	ru, des
2004-09-27 08:23:43 +00:00
Ruslan Ermilov
e8f7141ed8 Pass the idea of the make(1) binary to use down to newvers.sh.
This is necessary so source upgrades use the correct binary.

MFC after:	3 days

For the record: Problem spotted by Scott Long, who mentioned
that source upgrades from 4.7 to recent 5.x and 6.0 are broken.
Detailed analysis shows that 4.7 has a broken make(1) binary.
A breakage was fixed in RELENG_4 in make/main.c,v 1.35.2.7 by
imp@, though the commit log erroneously stated "MFC 1.68"
while in fact it should have been spelled as "MFC 1.67".
2004-09-17 09:17:33 +00:00
Gleb Smirnoff
fdbe44b0cd Install netflow includes.
Approved by:	julian (mentor)
2004-09-16 20:42:03 +00:00
Yaroslav Tykhiy
b22ae8ba2d Add the macro RES_DFLRETRY long-promised by resolver(5).
It specifies the default number of retries per a name server.
This makes the code consistent with the manpage and allows to
kill another constant in res_init.c that should have been a
#define'd parameter.  (This appears to be a case when the manpage
was better than the code, so the latter was to be fixed.)

PR:	bin/62139 (in the audit trail)
2004-09-09 17:39:47 +00:00
Stefan Farfeleder
6549b8a280 Add a workaround to recognise I/_Complex_I as complex arguments. Although
the GCC manual claims that the expression 1.0fi has type float _Complex,
__builtin_types_compatible_p(float _Complex, __typeof__(1.0fi))) yields 0.
2004-09-03 23:44:09 +00:00
Stefan Farfeleder
a551dea2a8 Use the keyword '_Complex' rather than the macro 'complex' since
applications are allowed to undefine the latter.
2004-09-03 23:31:28 +00:00
Stefan Farfeleder
9b3310685b Embarrassing typo: s/nextbyint/nearbyint/ 2004-09-03 23:26:55 +00:00
Alfred Perlstein
0793d4d1e4 Hook autofs to the build. 2004-09-02 20:44:56 +00:00
Tim J. Robbins
e1bcce4f46 Replace the current implementations of ftw() and nftw() with the OpenBSD
implementations written by Todd C. Miller. These are cleaner, less buggy
and actively maintained.
2004-08-24 13:00:55 +00:00
Tim J. Robbins
17211a5f9a Let GCC know that ___runetype(), ___tolower() and ___toupper() are pure
functions, allowing it to generate better code for the <ctype.h> and
<wctype.h> functions. For example, it can now keep _CurrentRuneLocale
in a register across calls to these functions, and can delete calls to
___runetype() if the result is already known or not used.
2004-08-21 07:00:40 +00:00
Pawel Jakub Dawidek
e81856c34c Connect RAID3 GEOM class to the build. 2004-08-16 06:36:21 +00:00
Stefan Farfeleder
4dfac64545 Stop defining '_Complex' in a C99 environment, it is supposed to be a keyword. 2004-08-14 18:03:21 +00:00
Stefan Farfeleder
0edc8c86ca Use tabulators after '#define'. 2004-08-14 17:55:15 +00:00
Tim J. Robbins
8bdfc6bf38 Sort in dictionary order.
Suggested by:	ru
2004-08-12 12:36:04 +00:00
Tim J. Robbins
de6c9c9d5b Implement wcwidth() as an inline function. 2004-08-12 12:19:11 +00:00
Tim J. Robbins
c92997c22d Include _ctype.h instead of ctype.h to avoid namespace pollution. 2004-08-12 10:29:14 +00:00
Tim J. Robbins
16133e1530 Move some internal macros and inlines from ctype.h to a new file, _ctype.h,
which has been repo-copied from ctype.h. This will allow us to remove
namespace pollution from <wctype.h> and to make wcwidth() an inline function
without introducing more pollution.
2004-08-12 09:33:47 +00:00
Stefan Farfeleder
b902e8b239 Implement C99's standard header <tgmath.h>. It provides type-generic macros
for the <math.h> and <complex.h> functions that have float, double and long
double implementations.  Such type-generic macros expand to an actual
function, depending on the types of the macro arguments, eg. if <tgmath.h>
is included, the invocation cos(1.0f) calls the function cosf().
2004-08-08 20:05:47 +00:00
Pawel Jakub Dawidek
8a8fbaca32 Connect GEOM_MIRROR class to the build. 2004-07-30 23:18:53 +00:00
Tim J. Robbins
f0000ca014 Add __pure and __pure2 where appropriate. 2004-07-23 07:13:35 +00:00
Tim J. Robbins
affcb87197 Mark functions pure where applicable. 2004-07-23 02:29:37 +00:00
Tim J. Robbins
779f8b0d2a Mark functions pure where applicable. A notable exclusion is strcoll(),
which is not strictly pure because it calls malloc()/free() in some cases.
2004-07-23 02:20:05 +00:00
Tim J. Robbins
1949a3470f Implement the GNU extensions of mbsnrtowcs() and wcsnrtombs(). These are
convenient when the source string isn't null-terminated.

Implement the other conversion functions (mbstowcs(), mbsrtowcs(), wcstombs(),
wcsrtombs()) in terms of these new functions.
2004-07-21 10:54:57 +00:00
Marcel Moolenaar
a8028b2625 Re-implement this file, including copyright notice. Keep David Xu as
copyright owner. Typical bugs fixed by this are:
o  various style(9) bugs,
o  #ifdef'd out code,
o  lack of comments,
o  missing const,
o  introduction of obsolete functions,
o  missing __BEGIN_DECLS & __END_DECLS,

The major flaw in this version, that was also present in the previous
version is the lack of man page. Minor flaws undoubtedly still exist.
2004-07-17 17:05:12 +00:00
Tim J. Robbins
9531ef0fc1 Add fgetwln(), a wide character version of fgetln(). 2004-07-16 06:06:09 +00:00
David Xu
a3d4136ade Add proc_service.h, the common file both debugger and libthread_db will
use, program wants to load libthread_db.so should provid proc service
interface.
2004-07-15 03:43:18 +00:00
Tim J. Robbins
67aff1896c Add a new error code, REG_ILLSEQ, to indicate that a regular expression
contains an illegal multibyte character sequence.
2004-07-12 06:07:26 +00:00
Dag-Erling Smørgrav
fd078b3dd6 Reduce namespace pollution. 2004-07-09 13:52:42 +00:00
Tim J. Robbins
ee446de0b1 Add a function to iterate over all characters in a particular character
class. This is necessary in order to implement tr(1) efficiently in
multibyte locales, since the brute force method of finding all characters
in a class is infeasible with a 32-bit (or wider) wchar_t.
2004-07-08 06:43:37 +00:00
David Schultz
b03b864ac9 Add implementations of ftw(3) and nftw(3) and the corresponding header
ftw.h.  This is the implementation written by Joel Baker
<fenton@debian.org> for inclusion in NetBSD, but with several
bugfixes.

Obtained from:	Debian
2004-07-05 23:13:16 +00:00
Pawel Jakub Dawidek
e1237b285b Introduce GEOM_LABEL class.
This class is used for detecting volume labels on file systems:
UFS, MSDOSFS (FAT12, FAT16, FAT32) and ISO9660.
It also provide native labelization (there is no need for file system).

g_label_ufs.c is based on geom_vol_ffs from Gordon Tetlow.
g_label_msdos.c and g_label_iso9660.c are probably hacks, I just found
where volume labels are stored and I use those offsets here,
but with this class it should be easy to do it as it should be done by
someone who know how.
Implementing volume labels detection for other file systems also should
be trivial.

New providers are created in those directories:
/dev/ufs/ (UFS1, UFS2)
/dev/msdosfs/ (FAT12, FAT16, FAT32)
/dev/iso9660/ (ISO9660)
/dev/label/ (native labels, configured with glabel(8))

Manual page cleanups and some comments inside were submitted by
Simon L. Nielsen, who was, as always, very helpful. Thanks!
2004-07-02 19:40:36 +00:00
Tim J. Robbins
b7114d4a9c Fix typo: WRDE_DOOFS -> WRDE_DOOFFS.
Noticed by:	Stoned Elipot
2004-06-30 13:55:08 +00:00
Tim J. Robbins
838faf1c74 Now that <runetype.h> no longer brings in namespace pollution,
bring back the inline functions for the !__BSD_VISIBLE case.
2004-06-23 07:11:39 +00:00
Tim J. Robbins
ddc1eded85 Prefix the names of members of _RuneLocale and its sub-structures
with ``__'' to avoid polluting the namespace. This doesn't change the
documented rune interface at all, but breaks applications that accessed
_RuneLocale directly.
2004-06-23 07:01:44 +00:00
David E. O'Brien
49a3940873 Adjust the system endian and a.out headers to be more MI and cross-building
friendly.  Use the systems headers rather than local versions.

Reviewed by:	ru
2004-06-22 17:05:39 +00:00
Tim J. Robbins
8995b2315b Remove outdated comments. 2004-06-20 10:01:30 +00:00
Max Laier
02b199f158 Link ALTQ to the build and break with ABI for struct ifnet. Please recompile
your (network) modules as well as any userland that might make sense of
sizeof(struct ifnet).
This does not change the queueing yet. These changes will follow in a
seperate commit. Same with the driver changes, which need case by case
evaluation.

__FreeBSD_version bump will follow.

Tested-by:	(i386)LINT
2004-06-13 17:29:10 +00:00
Tim J. Robbins
f05d1a4641 Fix typo in putwc().
Noticed by:	stefanf
2004-06-07 10:31:10 +00:00
Tim J. Robbins
58d122c2e5 Use __isctype() instead of __istype() for iswdigit() and iswxdigit() for
consistency with <ctype.h>.
2004-05-31 12:44:50 +00:00
Stefan Farfeleder
8b5cd5a662 Add implementations for cimag{,f,l}, creal{,f,l} and conj{,f,l}. They are
needed for cases where GCC's builtin functions cannot be used and for
compilers that don't know about them.

Approved by:	das (mentor)
2004-05-30 09:21:56 +00:00
Stefan Farfeleder
fe1737b6f3 Remove the macros for creal{,f} and cimag{,f}. They failed to convert their
arguments to the needed type and so the result type depended on the argument
type.  Fixing them isn't really worth the effort because GCC emits the same
assembler code with or without them.

Not minded by:	ru
Approved by:	das (mentor)
2004-05-30 08:47:12 +00:00
Thomas Moestl
2815e4b0f9 Correct some types in the yp structures; this fixes a number of problems
on sparc64. Obtained from and cross-checked with the NetBSD version
of this file and the rpcgen-generated code.
2004-05-27 11:34:21 +00:00
Tim J. Robbins
84bb9aaa02 Bring back the macro versions of getwc(), getwchar(), putwc() and
putwchar(), but this time avoid redundantly declaring __stdinp and
__stdoutp when source files include both <stdio.h> and <wchar.h>.
2004-05-27 10:08:44 +00:00