||The author of this software is David M. Gay.
Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
Permission to use, copy, modify, and distribute this software for any
purpose without fee is hereby granted, provided that this entire notice
is included in all copies of any software which is or includes a copy
or modification of this software and in all copies of the supporting
documentation for such software.
THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
/******************************* PRALARM *****************************
||PR Atomic operations
||Copyright (c) 1983, 1990, 1993
The Regents of the University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
4. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
||prcountr.c -- NSPR Instrumentation Counters
* Implement the interface defined in prcountr.h
* Design Notes:
* The Counter Facility (CF) has a single anchor: qNameList.
* The anchor is a PRCList. qNameList is a list of links in QName
* structures. From qNameList any QName structure and its
* associated RName structure can be located.
* For each QName, a list of RName structures is anchored at
* rnLink in the QName structure.
* The counter itself is embedded in the RName structure.
* For manipulating the counter database, single lock is used to
* protect the entire list: counterLock.
* A PRCounterHandle, defined in prcountr.h, is really a pointer
* to a RName structure. References by PRCounterHandle are
* dead-reconed to the RName structure. The PRCounterHandle is
* "overloaded" for traversing the QName structures; only the
* function PR_FindNextQnameHandle() uses this overloading.
* ToDo (lth): decide on how to lock or atomically update
* individual counters. Candidates are: the global lock; a lock
* per RName structure; Atomic operations (Note that there are
* not adaquate atomic operations (yet) to achieve this goal). At
* this writing (6/19/98) , the update of the counter variable in
* a QName structure is unprotected.
||This file is based on the third-party code dtoa.c. We minimize our
modifications to third-party code to make it easy to merge new versions.
The author of dtoa.c was not willing to add the parentheses suggested by
GCC, so we suppress these warnings.
This file is automatically generated; please do not edit it.
||actual length to allocate. Plus a little extra
||Copyright 1987, 1988 by the Student Information Processing Board
of the Massachusetts Institute of Technology
Permission to use, copy, modify, and distribute this software
and its documentation for any purpose and without fee is
hereby granted, provided that the above copyright notice
appear in all copies and that both that copyright notice and
this permission notice appear in supporting documentation,
and that the names of M.I.T. and the M.I.T. S.I.P.B. not be
used in advertising or publicity pertaining to distribution
of the software without specific, written prior permission.
M.I.T. and the M.I.T. S.I.P.B. make no representations about
the suitability of this software for any purpose. It is
provided "as is" without express or implied warranty.
||lock for the CPU Q
description: implementation for the kernel interval timing functions
Description: functions for IPC support
Description: implements the named semaphores API in prsemipc.h
for classic NSPR. If _PR_HAVE_NAMED_SEMAPHORES is not defined,
the named semaphore functions all fail with the error code
||Compute the log of the least power of 2 greater than or equal to n
||Divide 64-bit a by 32-bit b, which must be normalized so its high bit is 1.
||On Unix, the error code for gethostbyname() and gethostbyaddr()
is returned in the global variable h_errno, instead of the usual
||prolock.c -- NSPR Ordered Lock
* Implement the API defined in prolock.h
||We were not including <string.h> in optimized builds. On AIX this
caused libnspr4.so to export memcpy and some binaries linked with
libnspr4.so resolved their memcpy references with libnspr4.so. To
be backward compatible with old libnspr4.so binaries, we do not
include <string.h> in optimized builds for AIX. (bug 200561)
||define the required constant if it is not already defined in the headers
||Store the thread's registers in the thread structure so the GC
* can scan them. Then scan them.
NSPR date and time functions
Thread pools create and manage threads to provide support for
scheduling jobs onto one or more threads.
||prtrace.c -- NSPR Trace Instrumentation
* Implement the API defined in prtrace.h