forked from mirrors/gecko-dev
Bug 1753127 - NSPR doc: Remove some old docs UPGRADE_NSS_RELEASE r=bbeurdouche
Depends on D137588 Differential Revision: https://phabricator.services.mozilla.com/D137589
This commit is contained in:
parent
1666595fdb
commit
ecac0317d5
4 changed files with 3 additions and 572 deletions
|
|
@ -156,10 +156,7 @@ Where It's Headed
|
|||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
NSPR is applicable as a platform on which to write threaded applications
|
||||
that need to be ported to multiple platforms. The current implementation
|
||||
supports Macintosh (PPC), WIN-32 (WinNT, Win9x) and 20 versions of UNIX
|
||||
and is still expanding. The basic API is stable and expected to remain
|
||||
that way.
|
||||
that need to be ported to multiple platforms.
|
||||
|
||||
NSPR is functionally complete and has entered a mode of sustaining
|
||||
engineering. As operating system vendors issue new releases of their
|
||||
|
|
|
|||
|
|
@ -45,186 +45,3 @@ Multiplatform
|
|||
flaw has shown up in any tests or products - yet. The specific area
|
||||
surrounding pthread's *continuation thread* has been both observed
|
||||
and empirically proven faulty, and a correction identified.
|
||||
|
||||
.. _Macintosh:
|
||||
|
||||
Macintosh
|
||||
---------
|
||||
|
||||
- The current port of NSPR for Macintosh will not be usable in its own
|
||||
right. The implementation has dependencies on libraries that are
|
||||
implemented in the Netscape Communicator. The work to undo this
|
||||
dependency has already been started and the result will be made
|
||||
available soon.
|
||||
- Macintosh threads are not preemptable. As usual, it isn't that we
|
||||
couldn't preempt them, but rather that the Macintosh libraries are
|
||||
not prepared for such things to happen. NSPR does take advantage of
|
||||
Macintosh' asynchronous I/O capability to perform scheduling during
|
||||
I/O. Still, there is no enforceable mechanism to guarantee thread
|
||||
scheduling fairness.
|
||||
- Calendar time facilities are limited on Macintosh. One can only
|
||||
determine the immediate setting of Daylight Savings Time, not what it
|
||||
would be at some arbitrary time in the past or the future.
|
||||
- Initialization of NSPR may fail if the host is not connected to a
|
||||
network of some kind.
|
||||
|
||||
.. _WIN-16:
|
||||
|
||||
WIN-16
|
||||
------
|
||||
|
||||
.. code:: eval
|
||||
|
||||
http://www.sybase.com/products/languages/watccpl.html
|
||||
|
||||
The WIN-16 port is unique in the NSPR world in that it uses the WATCOM
|
||||
development environment. This environment does bring along some of its
|
||||
own special trappings.
|
||||
|
||||
- Win16 uses co-operative non-preemptive dispatching for its own
|
||||
processes. This means that when the application using NSPR is
|
||||
dispatched, a thread within that application will run until that
|
||||
thread voluntarily gives up control to another thread within the
|
||||
process. Further, the process in which the threads are being emulated
|
||||
will run until it invokes some function that gives control to
|
||||
Windows.
|
||||
- Windows 3.1 applications always run on a stack provided by Windows.
|
||||
This means that NSPR threads use a *shadow stack* to preserve context
|
||||
across a thread switch. At thread switch time, the stack of the
|
||||
current running thread is copied to other storage associated with
|
||||
that thread and the about-to-be-dispatched thread's stack data is
|
||||
copied back onto the Windows stack just before the thread is given
|
||||
control. This has disastrous implications on the generally accepted
|
||||
programming practice of taking the address of a stack variable and
|
||||
giving that address to another thread.
|
||||
|
||||
Consider that the Windows stack is swapped in and out with each thread
|
||||
switch. The thread that created a stack variable sees his own stack
|
||||
variables correctly across thread switches. However, another thread does
|
||||
not see the data as intended because the stack has been swapped out to
|
||||
the *shadow stack* and the current thread's stack now occupies the
|
||||
Windows stack. This can be difficult to diagnose.
|
||||
|
||||
For complete cross platform portability, do not take the address of a
|
||||
stack variable and make that address available to another thread. For
|
||||
more details, see the memo on `Automatic
|
||||
Addresses <http://www.mozilla.org/projects/nspr/tech-notes/autoaddresses.html>`__.
|
||||
|
||||
- Windows 3.1 does not support 64 bit file offsets. The NSPR 64 bit
|
||||
file offset APIs map to Windows 3.1 32 bit file offset APIs. You may
|
||||
use NSPR's 64bit file offset APIs in your Windows 3.1 applications
|
||||
for cross platform consistency, but do not expect to see real 64 bit
|
||||
file offset behavior. On Windows 3.1, when NSPR detects a value in a
|
||||
64 bit file offset greater than 32bit significance, it terminates
|
||||
with an ASSERT.
|
||||
- The general rules of 16 bit Large Model memory restrictions apply to
|
||||
applications using NSPR on Windows 3.1.
|
||||
- The NSPR Process Creation API functions return an error when invoked
|
||||
on Windows 3.1.
|
||||
- Functions called in an application by a shared library require an
|
||||
additional function prolog. The prolog is presented in the macro
|
||||
<tt>PR_CALLBACK</tt>. For any function made available to any shared
|
||||
library (most likely passed in as a function pointer), that function
|
||||
must have the <tt>PR_CALLBACK</tt> qualifier.
|
||||
- NSPR functions are normally declared <tt>__cdecl</tt>. These
|
||||
declarations are hidden in the <tt>PR_EXTERN()</tt> declarations in
|
||||
NSPR's header files. NSPR functions returning floating point types
|
||||
and structs by value, including the derived types PRInt64, are
|
||||
declared <tt>__PASCAL</tt>. These different declarations are to
|
||||
accommodate restrictions in Watcom's C/C++ version 11.0 and 11.0a
|
||||
compiler.
|
||||
- Windows 3.1 does not provide a non-blocking file I/O interface.
|
||||
NSPR's file I/O is done using Windows 3.1's synchronous file I/O API.
|
||||
The NSPR file I/O APIs may cause a thread switch even though the I/O
|
||||
is fully synchronous. Do not depend on File I/O being synchronous.
|
||||
- Command line applications using the LIBC printf() and related APIs
|
||||
behave funny on Windows 3.1. Read the fine print in the Windows SDK
|
||||
for the grizzly details.
|
||||
- Watch out for PRIntn overflow on Win16. Make sure all possible values
|
||||
of your PRIntn variables are within 2^16.
|
||||
|
||||
.. _WIN-95:
|
||||
|
||||
WIN-95
|
||||
------
|
||||
|
||||
The WIN-95 version of NSPR should really be labeled WIN-32. The same
|
||||
library will work on either WIN-NT or WIN-95.
|
||||
|
||||
- WIN-95 NSPR uses native threads as NSPR threads. Generally speaking,
|
||||
the native threads (on NT or '95) are quite functional. However,
|
||||
having lots of them (100s or even 1000s) is unrealistic.
|
||||
- <tt>PR_Interrupt()</tt> is not implemented.
|
||||
|
||||
.. _WIN-NT:
|
||||
|
||||
WIN-NT
|
||||
------
|
||||
|
||||
The WIN-NT port of NSPR takes advantage of some of the `features of
|
||||
NT <en/Using_IO_Timeout_And_Interrupt_On_NT>`__ that are not available
|
||||
in WIN-95, such as fibers and asynch I/O. The implementation is well
|
||||
suited for high performance application, such as a server, but clients
|
||||
may find the WIN-95 version more suited (and adequate) for interactive
|
||||
applications such as are prevalent on today's workstations.
|
||||
|
||||
- The NT version implements a MxN threading model, using native NT
|
||||
threads as the virtual processors and NT's fiber abstraction as the
|
||||
locally scheduled threads. The fibers are nice because much of the NT
|
||||
API understands them. But they are not really preemptable, and that
|
||||
can lead to problems, depending on the needs of your application.
|
||||
- The mode (blocking or nonblocking) of a socket cannot be changed at
|
||||
will once the socket has been used. Also, the new socket created by
|
||||
an <tt>PR_Accept()</tt> call on a listening socket inherits the mode
|
||||
of the listening socket, and cannot be changed.
|
||||
- A file descriptor is not usable after an IO operation on it fails
|
||||
with either <tt>PR_IO_TIMEOUT_ERROR</tt> or
|
||||
<tt>PR_IO_INTERRUPT_ERROR</tt>. The only thing you can do is to close
|
||||
the file descriptor. See the FAQ article for more info. There is no
|
||||
current workaround. You must write your program with this restriction
|
||||
in mind.
|
||||
- PR_Interrupt is implemented except for <tt>PR_Connect()</tt>.
|
||||
|
||||
.. _IRIX:
|
||||
|
||||
IRIX
|
||||
----
|
||||
|
||||
- The IRIX (classic) implementation has a known race condition in
|
||||
creating new threads. If the spawned thread establishes and exits
|
||||
before the parent thread is resumed, the parent will be left with an
|
||||
invalid pointer to the child. The problem has a solution that will be
|
||||
available soon.
|
||||
|
||||
.. _Digital_Unix:
|
||||
|
||||
Digital Unix
|
||||
------------
|
||||
|
||||
- Digital Unix (aka, OSF1) requires the latest patches for the pthreads
|
||||
library. The changes are not evident until one tries to do thread
|
||||
suspension (<tt>PR_SuspendAll()</tt>) which is in preparation for
|
||||
garbage collection.
|
||||
- Digital Unix is the main platform used for NSPR's prototype use of
|
||||
IPv6. There are some conflicts between the patches needed to use IPv6
|
||||
and those needed for pthreads. The IPv6 kit needs to be applied on a
|
||||
baseline configuration of Digital Unix V4.0B.
|
||||
|
||||
.. _Linux:
|
||||
|
||||
Linux
|
||||
-----
|
||||
|
||||
- The pthreads version of Linux (which is not the default) uses the
|
||||
same signals that NSPR uses to suspend threads in preparation for
|
||||
garbage collection. No solution in hand.
|
||||
|
||||
.. _OS2:
|
||||
|
||||
OS/2
|
||||
----
|
||||
|
||||
- The OS/2 port is not functional in its current state due to the
|
||||
requirement to remove some files that could not be shipped under the
|
||||
NPL. This problem has been resolved and an update will be appearing
|
||||
shortly.
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
Programs using NSPR
|
||||
===================
|
||||
|
||||
The following programs are known to use NSPR, or portions of it:
|
||||
|
||||
- `Gecko </en-US/docs/Gecko>`__ using programs (Mozilla Application
|
||||
Suite, Firefox, Thunderbird, Camino, etc.)
|
||||
- Many Fedora/Red Hat and Sun server applications. Most of these are
|
||||
derived from Netscape servers.
|
||||
- Netscape alumni took NSPR with them to their new companies: `Good
|
||||
Technology <http://www.good.com/>`__,
|
||||
`Kontiki <http://www.kontiki.com/>`__, `Tellme
|
||||
Networks <http://www.tellme.com/>`__.
|
||||
|
|
@ -1,371 +1,5 @@
|
|||
.. container:: section
|
||||
:name: Quick_Links
|
||||
|
||||
#. `NSPR </en-US/docs/Mozilla/Projects/NSPR>`__
|
||||
#. `About NSPR </en-US/docs/Mozilla/Projects/NSPR/About_NSPR>`__
|
||||
#. `NSPR API
|
||||
Reference </en-US/docs/Mozilla/Projects/NSPR/Reference>`__
|
||||
#. `NSPR Build
|
||||
Instruction </en-US/docs/Mozilla/Projects/NSPR/NSPR_build_instructions>`__
|
||||
#. `NSPR Release
|
||||
Process </en-US/docs/Mozilla/Projects/NSPR/Release_process>`__
|
||||
#. Introduction to NSPR
|
||||
|
||||
#. `NSPR Naming
|
||||
Conventions </en-US/docs/Mozilla/Projects/NSPR/Reference/Introduction_to_NSPR#NSPR_Naming_Conventions>`__
|
||||
#. `NSPR
|
||||
Threads </en-US/docs/Mozilla/Projects/NSPR/Reference/Introduction_to_NSPR#NSPR_Threads>`__
|
||||
|
||||
#. `Thread
|
||||
Scheduling </en-US/docs/Mozilla/Projects/NSPR/Reference/Introduction_to_NSPR#Thread_Schedoling>`__
|
||||
|
||||
#. `Setting Thread
|
||||
Priorities </en-US/docs/Mozilla/Projects/NSPR/Reference/Introduction_to_NSPR#Setting_Thread_Priorities>`__
|
||||
#. `Preempting
|
||||
Threads </en-US/docs/Mozilla/Projects/NSPR/Reference/Introduction_to_NSPR#Preempting_Threads>`__
|
||||
#. `Interrupting
|
||||
Threads </en-US/docs/Mozilla/Projects/NSPR/Reference/Introduction_to_NSPR#Interrupting_Threads>`__
|
||||
|
||||
#. `NSPR Thread
|
||||
Synchronization </en-US/docs/Mozilla/Projects/NSPR/Reference/Introduction_to_NSPR#NSPR_Thread_Synchronization>`__
|
||||
|
||||
#. `Locks and
|
||||
Monitors </en-US/docs/Mozilla/Projects/NSPR/Reference/Introduction_to_NSPR#Locks_and_Monitors>`__
|
||||
#. `Condition
|
||||
Variables </en-US/docs/Mozilla/Projects/NSPR/Reference/Introduction_to_NSPR#Condition_Variables>`__
|
||||
|
||||
#. `NSPR Sample
|
||||
Code </en-US/docs/Mozilla/Projects/NSPR/Reference/Introduction_to_NSPR#NSPR_Sample_Code>`__
|
||||
|
||||
#. NSPR Types
|
||||
|
||||
#. `Calling Convention
|
||||
Types </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Types#Calling_Convention_Types>`__
|
||||
#. `Algebraic
|
||||
Types </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Types#Algebraic_Types>`__
|
||||
|
||||
#. `8-, 16-, and 32-bit Integer
|
||||
Types </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Types#8-.2C_16-.2C_and_32-bit_Integer_Types>`__
|
||||
|
||||
#. `Signed
|
||||
Integers </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Types#Signed_Integers>`__
|
||||
#. `Unsigned
|
||||
Integers </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Types#Unsigned_Integers>`__
|
||||
|
||||
#. `64-bit Integer
|
||||
Types </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Types#64-bit_Integer_Types>`__
|
||||
#. `Floating-Point Integer
|
||||
Type </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Types#Floating-Point_Number_Type>`__
|
||||
#. `Native OS Integer
|
||||
Types </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Types#Native_OS_Integer_Types>`__
|
||||
|
||||
#. `Miscellaneous
|
||||
Types </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Types#Miscellaneous_Types>`__
|
||||
|
||||
#. `Size
|
||||
Type </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Types#Size_Type>`__
|
||||
#. `Pointer Difference
|
||||
Types </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Types#Pointer_Difference_Types>`__
|
||||
#. `Boolean
|
||||
Types </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Types#Boolean_Types>`__
|
||||
#. `Status Type for Return
|
||||
Values </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Types#Status_Type_for_Return_Values>`__
|
||||
|
||||
#. Threads
|
||||
|
||||
#. `Threading Types and
|
||||
Constants </en-US/docs/Mozilla/Projects/NSPR/Reference/Threads#Threading_Types_and_Constants>`__
|
||||
#. `Threading
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Threads#Threading_Functions>`__
|
||||
|
||||
#. `Creating, Joining, and Identifying
|
||||
Threads </en-US/docs/Mozilla/Projects/NSPR/Reference/Threads#Creating.2C_Joining.2C_and_Identifying_Threads>`__
|
||||
#. `Controlling Thread
|
||||
Priorities </en-US/docs/Mozilla/Projects/NSPR/Reference/Threads#Controlling_Thread_Priorities>`__
|
||||
#. `Controlling Per-Thread Private
|
||||
Data </en-US/docs/Mozilla/Projects/NSPR/Reference/Threads#Controlling_Per-Thread_Private_Data>`__
|
||||
#. `Interrupting and
|
||||
Yielding </en-US/docs/Mozilla/Projects/NSPR/Reference/Threads#Interrupting_and_Yielding>`__
|
||||
#. `Setting Global Thread
|
||||
Concurrency </en-US/docs/Mozilla/Projects/NSPR/Reference/Threads#Setting_Global_Thread_Concurrency>`__
|
||||
#. `Getting a Thread's
|
||||
Scope </en-US/docs/Mozilla/Projects/NSPR/Reference/Threads#Getting_a_Thread.27s_Scope>`__
|
||||
|
||||
#. Process Initialization
|
||||
|
||||
#. `Identity and
|
||||
Versioning </en-US/docs/Mozilla/Projects/NSPR/Reference/Process_Initialization#Identity_and_Versioning>`__
|
||||
|
||||
#. `Name and Version
|
||||
Constants </en-US/docs/Mozilla/Projects/NSPR/Reference/Process_Initialization#Name_and_Version_Constants>`__
|
||||
|
||||
#. `Initialization and
|
||||
Cleanup </en-US/docs/Mozilla/Projects/NSPR/Reference/Process_Initialization#Initialization_and_Cleanup>`__
|
||||
#. `Module
|
||||
Initialization </en-US/docs/Mozilla/Projects/NSPR/Reference/Process_Initialization#Module_Initialization>`__
|
||||
|
||||
#. Locks
|
||||
|
||||
#. `Lock
|
||||
Type </en-US/docs/Mozilla/Projects/NSPR/Reference/Locks#Lock_Type>`__
|
||||
#. `Lock
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Locks#Lock_Functions>`__
|
||||
|
||||
#. Condition Variables
|
||||
|
||||
#. `Condition Variable
|
||||
Type </en-US/docs/Mozilla/Projects/NSPR/Reference/Condition_Variables#Condition_Variable_Type>`__
|
||||
#. `Condition Variable
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Condition_Variables#Condition_Variable_Functions>`__
|
||||
|
||||
#. Monitors
|
||||
|
||||
#. `Monitor
|
||||
Type </en-US/docs/Mozilla/Projects/NSPR/Reference/Monitors#Monitor_Type>`__
|
||||
#. `Monitor
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Monitors#Monitor_Functions>`__
|
||||
|
||||
#. Cached Monitors
|
||||
|
||||
#. `Cached Monitor
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Cached_Monitors#Cached_Monitor_Functions>`__
|
||||
|
||||
#. I/O Types
|
||||
|
||||
#. `Directory
|
||||
Type </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Types#Directory_Type>`__
|
||||
#. `File Descriptor
|
||||
Types </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Types#File_Descriptor_Types>`__
|
||||
#. `File Info
|
||||
Types </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Types#File_Info_Types>`__
|
||||
#. `Network Address
|
||||
Types </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Types#Network_Address_Types>`__
|
||||
#. `Types Used with Socket Options
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Types#Types_Used_with_Socket_Options_Functions>`__
|
||||
#. `Type Used with Memory-Mapped
|
||||
I/O </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Types#Type_Used_with_Memory-Mapped_I.2FO>`__
|
||||
#. `Offset Interpretation for Seek
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Types#Offset_Interpretation_for_Seek_Functions>`__
|
||||
|
||||
#. I/O Functions
|
||||
|
||||
#. `Functions that Operate on
|
||||
Pathnames </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions#Functions_that_Operate_on_Pathnames>`__
|
||||
#. `Functions that Act on File
|
||||
Descriptors </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions#Functions_that_Act_on_File_Descriptors>`__
|
||||
#. `Directory I/O
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions#Directory_I.2FO_Functions>`__
|
||||
#. `Socket Manipolation
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions#Socket_Manipolation_Functions>`__
|
||||
#. `Converting Between Host and Network
|
||||
Addresses </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions#Converting_Between_Host_and_Network_Addresses>`__
|
||||
#. `Memory-Mapped I/O
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions#Memory-Mapped_I.2FO_Functions>`__
|
||||
#. `Anonymous Pipe
|
||||
Function </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions#Anonymous_Pipe_Function>`__
|
||||
#. `Polling
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions#Polling_Functions>`__
|
||||
#. `Pollable
|
||||
Events </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions#Pollable_Events>`__
|
||||
#. `Manipulating
|
||||
Layers </en-US/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions#Manipulating_Layers>`__
|
||||
|
||||
#. Network Addresses
|
||||
|
||||
#. `Network Address Types and
|
||||
Constants </en-US/docs/Mozilla/Projects/NSPR/Reference/Network_Addresses#Network_Address_Types_and_Constants>`__
|
||||
#. `Network Address
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Network_Addresses#Network_Address_Functions>`__
|
||||
|
||||
#. Atomic Operations
|
||||
|
||||
#. `PR_AtomicIncrement </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_AtomicIncrement>`__
|
||||
#. `PR_AtomicDecrement </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_AtomicDecrement>`__
|
||||
#. `PR_AtomicSet </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_AtomicSet>`__
|
||||
|
||||
#. Interval Timing
|
||||
|
||||
#. `Interval Time Type and
|
||||
Constants </en-US/docs/Mozilla/Projects/NSPR/Reference/Interval_Timing#Interval_Time_Type_and_Constants>`__
|
||||
#. `Interval
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Interval_Timing#Interval_Functions>`__
|
||||
|
||||
#. Date and Time
|
||||
|
||||
#. `Types and
|
||||
Constants </en-US/docs/Mozilla/Projects/NSPR/Reference/Date_and_Time#Types_and_Constants>`__
|
||||
#. `Time Parameter Callback
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Date_and_Time#Time_Parameter_Callback_Functions>`__
|
||||
#. `Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Date_and_Time#Functions>`__
|
||||
|
||||
#. Memory Management Operations
|
||||
|
||||
#. `Memory Allocation
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Memory_Management_Operations#Memory_Allocation_Functions>`__
|
||||
#. `Memory Allocation
|
||||
Macros </en-US/docs/Mozilla/Projects/NSPR/Reference/Memory_Management_Operations#Memory_Allocation_Macros>`__
|
||||
|
||||
#. String Operations
|
||||
|
||||
#. `PL_strlen </en-US/docs/Mozilla/Projects/NSPR/Reference/PL_strlen>`__
|
||||
#. `PL_strcpy </en-US/docs/Mozilla/Projects/NSPR/Reference/PL_strcpy>`__
|
||||
#. `PL_strdup </en-US/docs/Mozilla/Projects/NSPR/Reference/PL_strdup>`__
|
||||
#. `PL_strfree </en-US/docs/Mozilla/Projects/NSPR/Reference/PL_strfree>`__
|
||||
|
||||
#. Floating Point Number to String Conversion
|
||||
|
||||
#. `PR_strtod </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_strtod>`__
|
||||
#. `PR_dtoa </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_dtoa>`__
|
||||
#. `PR_cnvtf </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_cnvtf>`__
|
||||
|
||||
#. Linked Lists
|
||||
|
||||
#. `Linked List
|
||||
Types </en-US/docs/Mozilla/Projects/NSPR/Reference/Linked_Lists#Linked_List_Types>`__
|
||||
|
||||
#. `PRCList </en-US/docs/Mozilla/Projects/NSPR/Reference/PRCList>`__
|
||||
|
||||
#. `Linked List
|
||||
Macros </en-US/docs/Mozilla/Projects/NSPR/Reference/Linked_Lists#Linked_List_Macros>`__
|
||||
|
||||
#. `PR_INIT_CLIST </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_INIT_CLIST>`__
|
||||
#. `PR_INIT_STATIC_CLIST </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_INIT_STATIC_CLIST>`__
|
||||
#. `PR_APPEND_LINK </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_APPEND_LINK>`__
|
||||
#. `PR_INSERT_LINK </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_INSERT_LINK>`__
|
||||
#. `PR_NEXT_LINK </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_NEXT_LINK>`__
|
||||
#. `PR_PREV_LINK </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_PREV_LINK>`__
|
||||
#. `PR_REMOVE_LINK </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_REMOVE_LINK>`__
|
||||
#. `PR_REMOVE_AND_INIT_LINK </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_REMOVE_AND_INIT_LINK>`__
|
||||
#. `PR_INSERT_BEFORE </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_INSERT_BEFORE>`__
|
||||
#. `PR_INSERT_AFTER </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_INSERT_AFTER>`__
|
||||
|
||||
#. Dynamic Library Linking
|
||||
|
||||
#. `Library Linking
|
||||
Types </en-US/docs/Mozilla/Projects/NSPR/Reference/Dynamic_Library_Linking#Library_Linking_Types>`__
|
||||
|
||||
#. `PRLibrary </en-US/docs/Mozilla/Projects/NSPR/Reference/PRLibrary>`__
|
||||
#. `PRStaticLinkTable </en-US/docs/Mozilla/Projects/NSPR/Reference/PRStaticLinkTable>`__
|
||||
|
||||
#. `Library Linking
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Dynamic_Library_Linking#Library_Linking_Functions>`__
|
||||
|
||||
#. `PR_SetLibraryPath </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_SetLibraryPath>`__
|
||||
#. `PR_GetLibraryPath </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_GetLibraryPath>`__
|
||||
#. `PR_GetLibraryName </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_GetLibraryName>`__
|
||||
#. `PR_FreeLibraryName </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_FreeLibraryName>`__
|
||||
#. `PR_LoadLibrary </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_LoadLibrary>`__
|
||||
#. `PR_UnloadLibrary </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_UnloadLibrary>`__
|
||||
#. `PR_FindSymbol </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_FindSymbol>`__
|
||||
#. `PR_FindSymbolAndLibrary </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_FindSymbolAndLibrary>`__
|
||||
#. `Finding Symbols Defined in the Main Executable
|
||||
Program </en-US/docs/Mozilla/Projects/NSPR/Reference/Dynamic_Library_Linking#Finding_Symbols_Defined_in_the_Main_Executable_Program>`__
|
||||
|
||||
#. `Platform
|
||||
Notes </en-US/docs/Mozilla/Projects/NSPR/Reference/Dynamic_Library_Linking#Platform_Notes>`__
|
||||
|
||||
#. `Dynamic Library Search
|
||||
Path </en-US/docs/Mozilla/Projects/NSPR/Reference/Dynamic_Library_Linking#Dynamic_Library_Search_Path>`__
|
||||
#. `Exporting Symbols from the Main Executable
|
||||
Program </en-US/docs/Mozilla/Projects/NSPR/Reference/Dynamic_Library_Linking#Exporting_Symbols_from_the_Main_Executable_Program>`__
|
||||
|
||||
#. Process Management and Interprocess Communication
|
||||
|
||||
#. `Process Management Types and
|
||||
Constants </en-US/docs/Mozilla/Projects/NSPR/Reference/Process_Management_and_Interprocess_Communication#Process_Management_Types_and_Constants>`__
|
||||
|
||||
#. `PRProcess </en-US/docs/Mozilla/Projects/NSPR/Reference/PRProcess>`__
|
||||
#. `PRProcessAttr </en-US/docs/Mozilla/Projects/NSPR/Reference/PRProcessAttr>`__
|
||||
|
||||
#. `Process Management
|
||||
Functions </en-US/en-US/docs/Mozilla/Projects/NSPR/Reference/Process_Management_and_Interprocess_Communication#Process_Management_Functions>`__
|
||||
|
||||
#. `Setting the Attributes of a New
|
||||
Process </en-US/docs/Mozilla/Projects/NSPR/Reference/Process_Management_and_Interprocess_Communication#Setting_the_Attributes_of_a_New_Process>`__
|
||||
#. `Creating and Managing
|
||||
Processes </en-US/docs/Mozilla/Projects/NSPR/Reference/Process_Management_and_Interprocess_Communication#Creating_and_Managing_Processes>`__
|
||||
|
||||
#. Logging
|
||||
|
||||
#. `Conditional Compilation and
|
||||
Execution </en-US/docs/Mozilla/Projects/NSPR/Reference/Logging#Conditional_Compilation_and_Execution>`__
|
||||
#. `Log Types and
|
||||
Variables </en-US/docs/Mozilla/Projects/NSPR/Reference/Logging#Log_Types_and_Variables>`__
|
||||
|
||||
#. `PRLogModoleInfo </en-US/docs/Mozilla/Projects/NSPR/Reference/PRLogModoleInfo>`__
|
||||
#. `PRLogModoleLevel </en-US/docs/Mozilla/Projects/NSPR/Reference/PRLogModoleLevel>`__
|
||||
#. `NSPR_LOG_MODULES </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_LOG_MODULES>`__
|
||||
#. `NSPR_LOG_FILE </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_LOG_FILE>`__
|
||||
|
||||
#. `Logging Functions and
|
||||
Macros </en-US/docs/Mozilla/Projects/NSPR/Reference/Logging#Logging_Functions_and_Macros>`__
|
||||
|
||||
#. `PR_NewLogModole </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_NewLogModole>`__
|
||||
#. `PR_SetLogFile </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_SetLogFile>`__
|
||||
#. `PR_SetLogBuffering </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_SetLogBuffering>`__/li>
|
||||
#. `PR_LogPrint </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_LogPrint>`__
|
||||
#. `PR_LogFlush </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_LogFlush>`__
|
||||
#. `PR_LOG_TEST </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_LOG_TEST>`__
|
||||
#. `PR_LOG </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_LOG>`__
|
||||
#. `PR_Assert </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_Assert_>`__
|
||||
#. `PR_ASSERT </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_ASSERT>`__
|
||||
#. `PR_NOT_REACHED </en-US/docs/Mozilla/Projects/NSPR/Reference/PR_NOT_REACHED>`__
|
||||
|
||||
#. `Use
|
||||
Example </en-US/docs/Mozilla/Projects/NSPR/Reference/Logging#Use_Example>`__
|
||||
|
||||
#. Named Shared Memory
|
||||
|
||||
#. `Shared Memory
|
||||
Protocol </en-US/docs/Mozilla/Projects/NSPR/Reference/Named_Shared_Memory#Shared_Memory_Protocol>`__
|
||||
#. `Named Shared Memory
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Named_Shared_Memory#Named_Shared_Memory_Functions>`__
|
||||
|
||||
#. Anonymous Shared Memory
|
||||
|
||||
#. `Anonymous Memory
|
||||
Protocol </en-US/docs/Mozilla/Projects/NSPR/Reference/Anonymous_Shared_Memory#Anonymous_Memory_Protocol>`__
|
||||
#. `Anonymous Shared Memory
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Anonymous_Shared_Memory#Anonymous_Shared_Memory_Functions>`__
|
||||
|
||||
#. IPC Semaphores
|
||||
|
||||
#. `IPC Semaphore
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/IPC_Semaphores#IPC_Semaphore_Functions>`__
|
||||
|
||||
#. Thread Pools
|
||||
|
||||
#. `Thread Pool
|
||||
Types </en-US/docs/Mozilla/Projects/NSPR/Reference/Thread_Pools#Thread_Pool_Types>`__
|
||||
#. `Thread Pool
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Thread_Pools#Thread_Pool_Functions>`__
|
||||
|
||||
#. Random Number Generator
|
||||
|
||||
#. `Random Number Generator
|
||||
Function </en-US/docs/Mozilla/Projects/NSPR/Reference/Random_Number_Generator#Random_Number_Generator_Function>`__
|
||||
|
||||
#. Hash Tables
|
||||
|
||||
#. `Hash Tables and Type
|
||||
Constants </en-US/docs/Mozilla/Projects/NSPR/Reference/Hash_Tables#Hash_Tables_and_Type_Constants>`__
|
||||
#. `Hash Table
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/Hash_Tables#Hash_Table_Functions>`__
|
||||
|
||||
#. NSPR Error Handling
|
||||
|
||||
#. `Error
|
||||
Type </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Error_Handling#Error_Type>`__
|
||||
#. `Error
|
||||
Functions </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Error_Handling#Error_Functions>`__
|
||||
#. `Error
|
||||
Codes </en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_Error_Handling#Error_Codes>`__
|
||||
|
||||
#. Contribute
|
||||
|
||||
#.
|
||||
|
||||
#. `The MDN Project </en-US/docs/MDN>`__
|
||||
Introduction to NSPR
|
||||
====================
|
||||
|
||||
The Netscape Portable Runtime (NSPR) API allows compliant applications
|
||||
to use system facilities such as threads, thread synchronization, I/O,
|
||||
|
|
@ -373,10 +7,6 @@ interval timing, atomic operations, and several other low-level services
|
|||
in a platform-independent manner. This chapter introduces key NSPR
|
||||
programming concepts and illustrates them with sample code.
|
||||
|
||||
The current implementation of NSPR allows developers to compile a single
|
||||
source code base on Macintosh (PPC), Win32 (NT 3.51, NT 4.0, WIN'95),
|
||||
and over twenty versions of Unix.
|
||||
|
||||
NSPR does not provide a platform for porting existing code. It must be
|
||||
used from the beginning of a software project.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue