8278 Commits

Author SHA1 Message Date
das
041f2e6f18 Merge vfprintf.c, v1.61 and 1.62. For compatibility with __hdtoa()
and to reduce diffs between vfprintf.c and vfwprintf.c, declare xdigs*
to be char arrays rather than wchar_t arrays.

In collaboration with:	tjr
2004-01-23 22:48:16 +00:00
harti
9576ee9b99 Create the OID and tree files while building the modules and the daemon
instead of creating them by hand and storing them in the CVS tree. Add
gensnmptree to the bootstrap tools (it is used to generated these files).
This simplifies the update procedure.

Submitted by:	ru
2004-01-23 16:22:49 +00:00
harti
72a445939b Style: remove an empty line. 2004-01-23 11:01:57 +00:00
deischen
74d800d7d0 Initialize the (i386) frame pointer when setting up a thread
context.

Submitted by:	Marc Olzheim <marcolz@stack.nl>
Tested by:	Marc Olzheim <marcolz@stack.nl>
2004-01-22 19:15:08 +00:00
mtm
7a517ec35f o Implement the pthread_spin_* functions in libthr.
o Man pages
2004-01-22 15:31:56 +00:00
jhb
fffc52fe7a Clean up error handling in libstand filesystem code to be more consistent:
- bzipfs and gzipfs now properly return errno values directly from their
  read routines rather than returning -1.
- missing errno values on error returns for the seek routines on almost
  all filesystems were added.
- fstat() now returns -1 if an error occurs rather than ignoring it.
- nfs's readdir() routine now reports valid errno values if an error or
  EOF occurs rather than EPERM  (It was just returning 0 for success and
  1 for failure).
- nullfs used the wrong semantics for every function besides close() and
  seek().  Getting it right for close() appears to be an accident at that.
- read() for buffered files no longer returns 0 (EOF) if an error occurs,
  but returns -1 instead.
2004-01-21 20:12:23 +00:00
grehan
6edaeaeefa Include <stdlib.h> to get abort() prototype. 2004-01-21 05:04:25 +00:00
grehan
74fadada7a Updated manh shift constant type to 'ULL' for PPC to fix
shift-too-large compile error

reviewed by: das
2004-01-21 04:51:50 +00:00
emax
8a9c8a287a Import sdpd(8) sources. This is Bluetooth Service Discovery Protocol daemon.
Extend libsdp(3) API to allow service registration and removal.
Fix uninitialized variable bug in sdpcontrol(8).

Reviewed by: imp (mentor)
No objection: ru
2004-01-20 20:48:26 +00:00
ru
aafbac06b8 The <bsd.files.mk> API seems the best to use here. 2004-01-20 13:31:35 +00:00
das
1f53d67fd6 Discard the first 1024 bytes of output as suggested by
http://citeseer.nj.nec.com/fluhrer01weaknesses.html and
http://citeseer.nj.nec.com/531224.html .

PR:		61126
Submitted by:	Jeff Ito <jeffi@rcn.com>
2004-01-20 04:22:47 +00:00
das
d62dc6465a Use 'uint32_t' instead of 'long' when a 32-bit integer is intended.
This results in no functional change, aside from fixing a data
corruption bug on LP64 platforms.  The code here could still use a
significant amount of cleanup.

PR:		56502
Submitted by:	hrs (earlier version)
2004-01-20 03:02:18 +00:00
das
16839accd2 Simplify mpool_get() and mpool_write() by using pread() and pwrite()
instead of lseek()/_read() and lseek()/_write().

PR:		bin/54276
Submitted by:	<dnelson@allantgroup.com>
2004-01-20 00:40:35 +00:00
ru
420b17a9ff Clean up makefiles.
Reviewed by:	harti
2004-01-19 19:26:02 +00:00
nectar
b16f51f71f libc is now WARNS=2 clean with the exception of the gdtoa bits (which
are now not built with warnings enabled at all).
2004-01-19 16:16:53 +00:00
nectar
6dc87ee4ea Add prototypes for the three syscall stubs that are invoked here,
in order to quiet warnings.
2004-01-19 16:14:58 +00:00
mtm
b6945f083e Refactor _pthread_mutex_init
o Simplify the logic by removing a lot of unnecesary nesting
	o Reduce the amount of local variables
	o Zero-out the allocated structure and get rid of
	  all the unnecessary setting to 0 and NULL;

Refactor _pthread_mutex_destroy
	o Simplify the logic by removing a lot of unnecesary nesting
	o No need to check pointer that the mutex attributes points
	  to. Checking passed in pointer is enough.
2004-01-19 15:00:57 +00:00
mtm
2d3f49ebd3 Implement reference counting of read-write locks. This uses
a list in the thread structure to keep track of the locks and
how many times they have been locked. This list is checked
on every lock and unlock. The traversal through the list is
O(n). Most applications don't hold so many locks at once that
this will become a problem. However, if it does become a problem
it might be a good idea to review this once libthr is
off probation and in the optimization cycle.
This fixes:
	o deadlock when a thread tries to recursively acquire a
	  read lock when a writer is waiting on the lock.
	o a thread could previously successfully unlock a lock it did not own
	o deadlock when a thread tries to acquire a write lock on
	  a lock it already owns for reading or writing [ this is admittedly
	  not required by POSIX, but is nice to have ]
2004-01-19 14:51:45 +00:00
phk
a8d5f7300c add cross-reference to clock_gettime(2) 2004-01-19 12:41:39 +00:00
das
100a99f4f7 Bring the *printf(3) documentation up to date with the code:
- Update and improve the documentation for %[aA]
  o Like %[eE], %[aA] may round the result if a precision is specified.
  o Grammar police: Fix a split infinitive.
  o The FreeBSD implementation does better than the minimum required
    by C99 (literal translation of the mantissa).  The digit before
    the hexadecimal-point is never 0 unless the number itself is 0.
  o Clarify that the exponent field represents a decimal exponent of 2.
  o Discuss the fact that multiple valid representations are possible.
  o Remove the entry in the BUGS section claiming that %[aA] is not
    implemented.

- Remove the entry in the BUGS section claiming that the ' flag for
  printing thousands separators is unimplemented for floating-point.

- Remove the entry in the BUGS section claiming that the L modifier
  reduces the precision to "double" before conversion.
2004-01-19 08:28:30 +00:00
charnier
30e88bfa38 add missing endusershell() call. Original version was incorrect.
PR: bin/2442
Reviewed by: Friedemann Becker <zxmxy33@mail.uni-tuebingen.de>
2004-01-18 21:33:25 +00:00
ru
24ae6823ef Deal better with the crypto version of the PAM library that goes
on the release media -- only put what is different in the crypto
version compared to the base version.  This reduces PAM entries
in /usr/lib in the "crypto" distribution to:

	libpam.a
	libpam.so@
	libpam.so.2
	pam_krb5.so@
	pam_krb5.so.2
	pam_ksu.so@
	pam_ksu.so.2
	pam_ssh.so@
	pam_ssh.so.2

The libpam.so* is still redundant (it is identical to the "base"
version), but we can't set DISTRIBUTION differently for libpam.a
and libpam.so.

(The removal of libpam.so* from the crypto distribution could be
addressed by the release/scripts/crypto-make.sh script, but then
we'd also need to remove redundant PAM headers, and I'm not sure
this is worth a hassle.)
2004-01-18 14:58:07 +00:00
das
06e5503ed1 Implement __hdtoa() and __hldtoa() and enable printf() support for %a
and %A, which print floating-point numbers in hexadecimal.
2004-01-18 10:32:49 +00:00
ru
1ec4f4a6cb DISTRIBUTION is normally single-valued. 2004-01-18 09:32:52 +00:00
das
40c56bf93f Prototype __hdtoa() and __hldtoa(). 2004-01-18 08:28:47 +00:00
das
aa64e11b02 Fix some bugs affecting the %a and %A format specifiers. Since
these are not fully implemented and ifdef'd out, the bugs have
never manifested themselves.  Specifically:

	- Fix a memory leak in the case where %a follows another
	  floating-point format.
	- Make the %a/%A code behave like %e/%E with respect to
	  precision.
	- It is no longer valid to assume that '-' and '0x' are
	  mutually exclusive.
	- Address other minor issues.
2004-01-18 08:28:32 +00:00
das
9d7d7a8c5d Add a delta accidentally omitted from the previous commit:
Define DBL_MANH_SIZE and DBL_MANL_SIZE to be the sizes of the
high and low words of the mantissa in bits, respectively.
2004-01-18 08:05:21 +00:00
das
daf3a2f509 Define LDBL_MANH_SIZE and LDBL_MANL_SIZE to be the sizes of the
high and low words of the mantissa in bits, respectively.
2004-01-18 07:57:02 +00:00
das
3fa98ba928 Fix a bug that caused long double subnormals to be printed
incorrectly on architectures without an explicit normalization
bit (sparc64, powerpc).
2004-01-18 07:53:49 +00:00
phk
7948e91c15 Mostly mechanical rework of libalias:
Makes it possible to have multiple packet aliasing instances in a
single process by moving all static and global variables into an
instance structure called "struct libalias".

Redefine a new API based on s/PacketAlias/LibAlias/g

Add new "instance" argument to all functions in the new API.

Implement old API in terms of the new API.
2004-01-17 10:52:21 +00:00
schweikh
6cbe68d985 Remove crossref to pam.conf(5) which never existed. 2004-01-17 09:46:49 +00:00
davidxu
cfbecaf585 Backout revision 1.6, because some stub functions not in libc, and
non-threaded won't build. The cancellation point support should be
further discussed.
2004-01-17 07:15:06 +00:00
davidxu
47933921d0 Return EPERM if mutex owner is not current thread but it tries to
unlock the mutex, old code confuses some programs when it returns EINVAL.

Noticed by: bland
2004-01-17 03:09:57 +00:00
davidxu
f9aac56ad7 Enable cancellation point in sem_wait, it is required by POSIX.
For pshared semaphore, this commit still does not enable cancellation
point, I think there should be a pthread_enter_cancellation_point_np
for libc to implement a safe cancellation point.
2004-01-17 02:45:37 +00:00
ru
8a660e9607 Fixed the fatal bug: CFLAGS should be added to, not overridden.
This prevented CPU and optimization flags to be added here.
2004-01-17 02:27:55 +00:00
mtm
e3c786562f Add an implementation of pthread_rwlock_timed{rd,wr}lock() to libthr with
attendant documentation.
2004-01-16 10:52:10 +00:00
mtm
f04f7ffd82 o We are not required to initialize an invalid rwlock. So axe all that
code and simply return EINVAL (which is allowed by the standard) in
  all those pthread functions that previously initialized it.

o Refactor the pthread_rwlock_[try]rdlock() and pthread_rwlock_[try]wrlock()
  functions. They are now completeley condensed into rwlock_rdlock_common()
  and rwlock_wrlock_common(), respectively.

o If the application tries to destroy an rwlock that is currently
  held by a thread return EBUSY where it previously went ahead and
  freed all resources associated with the lock.

o Refactor _pthread_rwlock_init() to make it look (relatively) sane.

o When obtaining a read lock on an rwlock the check for whether it
  would exceed the maximum allowed read locks should happen *before*
  we obtain the lock.

o The pthread_rwlock_* functions shall *never* return EINTR, so make
  sure to requeue/resuspend the thread if it encounters such an error.

o Make a note that pthread_rwlock_unlock() needs to ensure it holds a
  lock on an rwlock it tries to unlock. It will be implemented in a
  separate commit because it requires some additional rwlock infrastructure.
2004-01-16 07:10:30 +00:00
jhb
ca8db354f6 - Move the code to try to open a single chunk file and prompt for the
associated floppy if needed into a static split_openfile() function.
- Use this function in splitfs_open() to open the first chunk rather
  than using open() directly.  This allows the first chunk to be located
  on a different disk than the actual foo.split file.
2004-01-15 18:38:15 +00:00
jhb
d195426865 Whitespace tweaks to make indentation consistent within this file and even
within a single function.
2004-01-15 18:36:48 +00:00
jhb
4446d36fa6 - Print out line number in a panic message using %d rather than %p. Line
numbers aren't pointers.
- Add a __printflike() attribute to libstand's panic() prototype to catch
  such bogons in the future.
2004-01-15 18:35:32 +00:00
ru
5bec276bea Fixed style of previous commit.
Submitted by:	bde
2004-01-15 17:27:28 +00:00
ru
90d1bd0020 Return ENOTSUP instead of -1. 2004-01-15 16:09:58 +00:00
ru
57b6bbbf56 Have a single set of POSIX threads man pages. The LIBRARY section
of each manpage lists libraries that have corresponding interfaces
implemented.

Prodded by:	threads
Reviewed by:	deischen
2004-01-14 21:44:26 +00:00
ru
8eb3bce250 The libc_r/man/sigwait.3 manpage has been repocopied to libc/sys/sigwait.2.
Reviewed by:	deischen
Repocopy by:	markm
2004-01-14 21:22:10 +00:00
ru
0223333b35 - libc/sys/sem.c was repocopied to libc/gen/sem.c.
- sem_*(3) manpages were repocopied from libc_r.

Reviewed by:	deischen
Repocopy by:	markm
2004-01-14 20:54:16 +00:00
des
9766be385f Translate from GNU C to ISO C. 2004-01-14 07:47:10 +00:00
ru
7b4183345a bsd.dep.mk,v 1.43 allows us to replace a hack with a solution. 2004-01-13 17:38:42 +00:00
des
ec1fd605cb Add and document ffsl(), fls() and flsl(). 2004-01-13 16:05:47 +00:00
nectar
9a454178d8 Kill whitespace at end of lines. 2004-01-12 13:33:24 +00:00
nectar
6722bb8a10 Fix a bug that could result in a null pointer dereference in
getpwent(3) or getpwuid(3) when using NIS adjunct maps.  The bug was
present in the internal `nis_passwd' function.  The lookup in the
adjunct map used the name passed into `nis_passwd', however no name
was of course supplied by getpwent or getpwuid.  Correctly use the
name from the `struct pwd' that was found instead.

PR:		bin/59962
Submitted by:	Gabriel Gomez <ggomez@fing.edu.uy>
2004-01-12 13:29:54 +00:00