# NSPR API Reference ```{toctree} :maxdepth: 2 ``` ## Introduction to NSPR - {ref}`NSPR_Naming_Conventions` - {ref}`NSPR_Threads` - {ref}`Thread_Scheduling` - {ref}`Setting_Thread_Priorities` - {ref}`Preempting_Threads` - {ref}`Interrupting_Threads` - {ref}`NSPR_Thread_Synchronization` - {ref}`Locks_and_Monitors` - {ref}`Condition_Variables` - {ref}`NSPR_Sample_Code` ## NSPR Types - {ref}`Calling_Convention_Types` - {ref}`Algebraic_Types` - {ref}`8-.2C_16-.2C_and_32-bit_Integer_Types` - {ref}`Signed_Integers` - {ref}`Unsigned_Integers` - {ref}`64-bit_Integer_Types` - {ref}`Floating-Point_Number_Type` - {ref}`Native_OS_Integer_Types` - {ref}`Miscellaneous_Types` - {ref}`Size_Type` - {ref}`Pointer_Difference_Types` - {ref}`Boolean_Types` - {ref}`Status_Type_for_Return_Values` ## Threads - {ref}`Threading_Types_and_Constants` - {ref}`Threading_Functions` - {ref}`Creating.2C_Joining.2C_and_Identifying_Threads` - {ref}`Controlling_Thread_Priorities` - {ref}`Controlling_Per-Thread_Private_Data` - {ref}`Interrupting_and_Yielding` - {ref}`Setting_Global_Thread_Concurrency` - {ref}`Getting_a_Thread.27s_Scope` ## Process Initialization - {ref}`Identity_and_Versioning` - {ref}`Name_and_Version_Constants` - {ref}`Initialization_and_Cleanup` - {ref}`Module_Initialization` ## Locks - {ref}`Lock_Type` - {ref}`Lock_Functions` ## Condition_Variables - {ref}`Condition_Variable_Type` - {ref}`Condition_Variable_Functions` ## Monitors - {ref}`Monitor_Type` - {ref}`Monitor_Functions` ## Cached Monitors - {ref}`Cached_Monitors_Functions` ## I/O Types - {ref}`Directory_Type` - {ref}`File_Descriptor_Types` - {ref}`File_Info_Types` - {ref}`Network_Address_Types` - {ref}`Types_Used_with_Socket_Options_Functions` - {ref}`Type_Used_with_Memory-Mapped_I.2FO` - {ref}`Offset_Interpretation_for_Seek_Functions` ## I/O Functions - {ref}`Functions_that_Operate_on_Pathnames` - {ref}`Functions_that_Act_on_File_Descriptors` - {ref}`Directory_I.2FO_Functions` - {ref}`Socket_Manipulation_Functions` - {ref}`Converting_Between_Host_and_Network_Addresses` - {ref}`Memory-Mapped_I.2FO_Functions` - {ref}`Anonymous_Pipe_Function` - {ref}`Polling_Functions` - {ref}`Pollable_Events` - {ref}`Manipulating_Layers` ## Network Addresses - {ref}`Network_Address_Types_and_Constants` - {ref}`Network_Address_Functions` ## Atomic Operations - {ref}`PR_AtomicIncrement` - {ref}`PR_AtomicDecrement` - {ref}`PR_AtomicSet` ## Interval Timing - {ref}`Interval_Time_Type_and_Constants` - {ref}`Interval_Functions` ## Date and Time - {ref}`Types_and_Constants` - {ref}`Time_Parameter_Callback_Functions` - {ref}`Functions` ## Memory_Management Operations - {ref}`Memory_Allocation_Functions` - {ref}`Memory_Allocation_Macros` ## String Operations - {ref}`PL_strlen` - {ref}`PL_strcpy` - {ref}`PL_strdup` - {ref}`PL_strfree` ## Floating Point Number to String Conversion - {ref}`PR_strtod` - {ref}`PR_dtoa` - {ref}`PR_cnvtf` ## Linked Lists - {ref}`Linked_List_Types` - {ref}`PRCList` - {ref}`Linked_List_Macros` - {ref}`PR_INIT_CLIST` - {ref}`PR_INIT_STATIC_CLIST` - {ref}`PR_APPEND_LINK` - {ref}`PR_INSERT_LINK` - {ref}`PR_NEXT_LINK` - {ref}`PR_PREV_LINK` - {ref}`PR_REMOVE_LINK` - {ref}`PR_REMOVE_AND_INIT_LINK` - {ref}`PR_INSERT_BEFORE` - {ref}`PR_INSERT_AFTER` ## Dynamic Library Linking - {ref}`Library_Linking_Types` - {ref}`PRLibrary` - {ref}`PRStaticLinkTable` - {ref}`Library_Linking_Functions` - {ref}`PR_SetLibraryPath` - {ref}`PR_GetLibraryPath` - {ref}`PR_GetLibraryName` - {ref}`PR_FreeLibraryName` - {ref}`PR_LoadLibrary` - {ref}`PR_UnloadLibrary` - {ref}`PR_FindSymbol` - {ref}`PR_FindSymbolAndLibrary` - {ref}`Finding_Symbols_Defined_in_the_Main_Executable_Program` - {ref}`Platform_Notes` - `Dynamic Library Search Path` - {ref}`Exporting_Symbols_from_the_Main_Executable_Program` ## Process Management and Interprocess Communication - {ref}`Process_Management_Types_and_Constants` - {ref}`PRProcess` - {ref}`PRProcessAttr` - {ref}`Process_Management_Functions` - {ref}`Setting_the_Attributes_of_a_New_Process` - {ref}`Creating_and_Managing_Processes` ## Logging - {ref}`Conditional_Compilation_and_Execution` - {ref}`Log_Types_and_Variables` - `PRLogModuleInfo` - {ref}`PRLogModuleLevel` - {ref}`NSPR_LOG_MODULES` - {ref}`NSPR_LOG_FILE` - {ref}`Logging_Functions_and_Macros` - {ref}`PR_NewLogModule` - `PR_SetLogFile` - `PR_SetLogBuffering` - `PR_LogPrint` - `PR_LogFlush` - `PR_LOG_TEST` - `PR_LOG` - {ref}`PR_Assert` - {ref}`PR_ASSERT` - `PR_NOT_REACHED` - {ref}`Use_Example` ## Named Shared Memory - {ref}`Shared_Memory_Protocol` - {ref}`Named_Shared_Memory_Functions` ## Anonymous Shared_Memory - {ref}`Anonymous_Memory_Protocol` - {ref}`Anonymous_Shared_Memory_Functions` ## IPC Semaphores - {ref}`IPC_Semaphore_Functions` ## Thread Pools - {ref}`Thread_Pool_Types` - {ref}`Thread_Pool_Functions` ## Random Number Generator - {ref}`Random_Number_Generator_Function` ## Hash Tables - {ref}`Hash_Table_Types_and_Constants` - {ref}`Hash_Table_Functions` ## NSPR Error Handling - {ref}`Error_Type` - {ref}`Error_Functions` - {ref}`Error_Codes`