;+#
;+# This Source Code Form is subject to the terms of the Mozilla Public
;+# License, v. 2.0. If a copy of the MPL was not distributed with this
;+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
;+#
;+# OK, this file is meant to support SUN, LINUX, AIX, OS/2 and WINDOWS
;+#   1. For all unix platforms, the string ";-"  means "remove this line"
;+#   2. For all unix platforms, the string " DATA " will be removed from any 
;+#     line on which it occurs.
;+#   3. Lines containing ";+" will have ";+" removed on SUN and LINUX.
;+#      On AIX, lines containing ";+" will be removed.
;+#   4. For all unix platforms, the string ";;" will thave the ";;" removed.
;+#   5. For all unix platforms, after the above processing has taken place,
;+#    all characters after the first ";" on the line will be removed.
;+#    And for AIX, the first ";" will also be removed.
;+#  This file is passed directly to windows. Since ';' is a comment, all UNIX
;+#   directives are hidden behind ";", ";+", and ";-"
;+#
;+NSPR_4.0 {
;+	global:
LIBRARY nspr4 ;-
EXPORTS ;-
		LL_MaxInt;
		LL_MinInt;
		LL_Zero;
		PR_Abort;
		PR_AddToCounter;
		PR_Accept;
		PR_AcceptRead;
		PR_Access;
		PR_AddWaitFileDesc;
		PR_AllocFileDesc;
		PR_Assert;
		PR_AtomicAdd;
		PR_AtomicDecrement;
		PR_AtomicIncrement;
		PR_AtomicSet;
		PR_AttachSharedMemory;
		PR_AttachThread;
		PR_Available;
		PR_Available64;
		PR_Bind;
		PR_BlockClockInterrupts;
		PR_BlockInterrupt;
		PR_CEnterMonitor;
		PR_CExitMonitor;
		PR_CNotify;
		PR_CNotifyAll;
		PR_CSetOnMonitorRecycle;
		PR_CWait;
		PR_CallOnce;
		PR_Calloc;
		PR_CancelJob;
		PR_CancelWaitFileDesc;
		PR_CancelWaitGroup;
		PR_CeilingLog2;
		PR_ChangeFileDescNativeHandle;
		PR_Cleanup;
		PR_ClearInterrupt;
		PR_ClearThreadGCAble;
		PR_Close;
		PR_CloseDir;
		PR_CloseFileMap;
		PR_CloseSemaphore;
		PR_CloseSharedMemory;
		PR_Connect;
		PR_CreateCounter;
		PR_ConvertIPv4AddrToIPv6;
		PR_CreateAlarm;
		PR_CreateFileMap;
		PR_CreateIOLayerStub;
		PR_CreateOrderedLock;
		PR_CreateMWaitEnumerator;
		PR_CreatePipe;
		PR_CreateProcess;
		PR_CreateProcessDetached;
		PR_CreateSocketPollFd;
		PR_CreateStack;
		PR_CreateThread;
		PR_CreateThreadGCAble;
		PR_CreateTrace;
		PR_CreateThreadPool;
		PR_DecrementCounter;
		PR_CreateWaitGroup;
		PR_Delete;
		PR_DeleteSemaphore;
		PR_DeleteSharedMemory;
		PR_DestroyAlarm;
		PR_DestroyCounter;
		PR_DestroyCondVar;
		PR_DestroyLock;
		PR_DestroyMWaitEnumerator;
		PR_DestroyOrderedLock;
		PR_DestroyMonitor;
		PR_DestroyPollableEvent;
		PR_DestroyProcessAttr;
		PR_DestroyRWLock;
		PR_DestroySem;
		PR_DestroySocketPollFd;
		PR_DestroyTrace;
		PR_DestroyStack;
		PR_DestroyWaitGroup;
		PR_DetachProcess;
		PR_DetachSharedMemory;
		PR_DetachThread;
		PR_DisableClockInterrupts;
		PR_EnableClockInterrupts;
		PR_EnterMonitor;
		PR_EnumerateHostEnt;
		PR_EnumerateThreads;
		PR_EnumerateWaitGroup;
		PR_ErrorInstallCallback;
		PR_ErrorInstallTable;
		PR_ErrorLanguages;
		PR_ErrorToName;
		PR_ErrorToString;
		PR_ExitMonitor;
		PR_ExplodeTime;
		PR_ExportFileMapAsString;
		PR_FD_CLR;
		PR_FD_ISSET;
		PR_FD_NCLR;
		PR_FD_NISSET;
		PR_FD_NSET;
		PR_FD_SET;
		PR_FD_ZERO;
		PR_FileDesc2NativeHandle;
		PR_FindSymbol;
		PR_FindSymbolAndLibrary;
		PR_FloorLog2;
		PR_FormatTime;
		PR_FindNextCounterQname;
		PR_FindNextCounterRname;
		PR_FindNextTraceQname;
		PR_FindNextTraceRname;
		PR_FormatTimeUSEnglish;
		PR_Free;
		PR_FreeLibraryName;
		PR_GMTParameters;
		PR_GetConnectStatus;
		PR_GetCurrentThread;
		PR_GetDefaultIOMethods;
		PR_GetDescType;
		PR_GetDirectorySeparator;
		PR_GetCounter;
		PR_GetCounterHandleFromName;
		PR_GetCounterNameFromHandle;
		PR_GetDirectorySepartor;
		PR_GetEnv;
		PR_GetError;
		PR_GetErrorText;
		PR_GetErrorTextLength;
		PR_GetFileInfo;
		PR_GetFileInfo64;
		PR_GetFileMethods;
		PR_GetGCRegisters;
		PR_GetHostByAddr;
		PR_GetHostByName;
		PR_GetIPNodeByName;
		PR_GetIdentitiesLayer;
		PR_GetInheritedFD;
		PR_GetInheritedFileMap;
		PR_GetLayersIdentity;
		PR_GetLibraryName;
		PR_GetLibraryPath;
		PR_GetMonitorEntryCount;
		PR_GetNameForIdentity;
		PR_GetOSError;
		PR_GetOpenFileInfo;
		PR_GetOpenFileInfo64;
		PR_GetPageShift;
		PR_GetPageSize;
		PR_GetPeerName;
		PR_GetPipeMethods;
		PR_GetProtoByName;
		PR_GetProtoByNumber;
		PR_GetRandomNoise;
		PR_GetSP;
		PR_GetSockName;
		PR_GetSocketOption;
		PR_GetSpecialFD;
		PR_GetStackSpaceLeft;
		PR_GetSysfdTableMax;
		PR_GetSystemInfo;
		PR_GetTCPMethods;
		PR_GetThreadAffinityMask;
		PR_GetThreadID;
		PR_GetThreadPriority;
		PR_GetThreadPrivate;
		PR_GetThreadScope;
		PR_GetThreadState;
		PR_GetThreadType;
		PR_GetUDPMethods;
		PR_GetUniqueIdentity;
		PR_ImplodeTime;
		PR_ImportFile;
		PR_ImportFileMapFromString;
		PR_ImportTCPSocket;
		PR_ImportUDPSocket;
		PR_GetTraceEntries;
		PR_GetTraceHandleFromName;
		PR_GetTraceNameFromHandle;
		PR_GetTraceOption;
		PR_Init;
		PR_Initialize;
		PR_InitializeNetAddr;
		PR_Initialized;
		PR_Interrupt;
		PR_IntervalNow;
		PR_IntervalToMicroseconds;
		PR_IntervalToMilliseconds;
		PR_IncrementCounter;
		PR_IntervalToSeconds;
		PR_IsNetAddrType;
		PR_JoinJob;
		PR_JoinThread;
		PR_JoinThreadPool;
		PR_KillProcess;
		PR_Listen;
		PR_LoadLibrary;
		PR_LoadLibraryWithFlags;
		PR_LoadStaticLibrary;
		PR_LocalTimeParameters;
		PR_Lock;
		PR_LockFile;
		PR_LogFlush;
		PR_LogPrint;
		PR_MakeDir;
		PR_Malloc;
		PR_MemMap;
		PR_MemUnmap;
		PR_MicrosecondsToInterval;
		PR_MillisecondsToInterval;
		PR_LockOrderedLock;
		PR_MkDir;
		PR_NetAddrToString;
		PR_NewCondVar;
		PR_NewLock;
		PR_NewLogModule;
		PR_NewMonitor;
		PR_NewNamedMonitor;
		PR_NewPollableEvent;
		PR_NewProcessAttr;
		PR_NewRWLock;
		PR_NewSem;
		PR_NewTCPSocket;
		PR_NewTCPSocketPair;
		PR_NewThreadPrivateIndex;
		PR_NewUDPSocket;
		PR_NormalizeTime;
		PR_Notify;
		PR_NotifyAll;
		PR_NotifyAllCondVar;
		PR_NotifyCondVar;
		PR_Now;
		PR_Open;
		PR_OpenAnonFileMap;
		PR_OpenDir;
		PR_OpenFile;
		PR_OpenSemaphore;
		PR_OpenSharedMemory;
		PR_OpenTCPSocket;
		PR_OpenUDPSocket;
		PR_ParseTimeString;
		PR_Poll;
		PR_PopIOLayer;
		PR_PostSem;
		PR_PostSemaphore;
		PR_ProcessAttrSetCurrentDirectory;
		PR_ProcessAttrSetInheritableFD;
		PR_ProcessAttrSetInheritableFileMap;
		PR_ProcessAttrSetStdioRedirect;
		PR_ProcessExit;
		PR_PushIOLayer;
		PR_QueueJob;
		PR_QueueJob_Accept;
		PR_QueueJob_Connect;
		PR_QueueJob_Read;
		PR_QueueJob_Timer;
		PR_QueueJob_Write;
		PR_RWLock_Rlock;
		PR_RWLock_Unlock;
		PR_RWLock_Wlock;
		PR_Read;
		PR_ReadDir;
		PR_Realloc;
		PR_Recv;
		PR_RecvFrom;
		PR_Rename;
		PR_ResetAlarm;
		PR_ResetProcessAttr;
		PR_ResumeAll;
		PR_RmDir;
		PR_ScanStackPointers;
		PR_RecordTraceEntries;
		PR_SecondsToInterval;
		PR_Seek;
		PR_Seek64;
		PR_Select;
		PR_Send;
		PR_SendFile;
		PR_SendTo;
		PR_SetAlarm;
		PR_SetConcurrency;
		PR_SetError;
		PR_SetErrorText;
		PR_SetFDCacheSize;
		PR_SetFDInheritable;
		PR_SetLibraryPath;
		PR_SetLogBuffering;
		PR_SetLogFile;
		PR_SetNetAddr;
		PR_SetPollableEvent;
		PR_SetSocketOption;
		PR_SetCounter;
		PR_SetStdioRedirect;
		PR_SetSysfdTableSize;
		PR_SetThreadAffinityMask;
		PR_SetThreadDumpProc;
		PR_SetThreadGCAble;
		PR_SetThreadPriority;
		PR_SetThreadPrivate;
		PR_SetThreadRecycleMode;
		PR_Shutdown;
		PR_ShutdownThreadPool;
		PR_Sleep;
		PR_Socket;
		PR_StackPop;
		PR_StackPush;
		PR_Stat;
		PR_StringToNetAddr;
		PR_SuspendAll;
		PR_Sync;
		PR_TLockFile;
		PR_ThreadScanStackPointers;
		PR_SetTraceOption;
		PR_TicksPerSecond;
		PR_TransmitFile;
		PR_USPacificTimeParameters;
		PR_UnblockClockInterrupts;
		PR_UnblockInterrupt;
		PR_UnloadLibrary;
		PR_SubtractFromCounter;
		PR_Unlock;
		PR_UnlockFile;
		PR_VersionCheck;
		PR_Wait;
		PR_WaitCondVar;
		PR_WaitForPollableEvent;
		PR_Trace;
		PR_WaitProcess;
		PR_WaitRecvReady;
		PR_WaitSem;
		PR_WaitSemaphore;
		PR_Write;
		PR_Writev;
		PR_Yield;
		PR_UnlockOrderedLock;
		PR_cnvtf;
		PR_dtoa;
		PR_fprintf;
		PR_htonl;
		PR_htonll;
		PR_htons;
		PR_ntohl;
		PR_ntohll;
		PR_ntohs;
		PR_smprintf;
		PR_smprintf_free;
		PR_snprintf;
		PR_sprintf_append;
		PR_sscanf;
		PR_strtod;
		PR_sxprintf;
		PR_vfprintf;
		PR_vsmprintf;
		PR_vsnprintf;
		PR_vsprintf_append;
		PR_vsxprintf;
		PRP_DestroyNakedCondVar;
		PRP_NakedBroadcast;
		PRP_NakedNotify;
		PRP_NakedWait;
		PRP_NewNakedCondVar;
		PRP_TryLock;
		libVersionPoint;
;+	local: *;
;+};
;+
;+NSPRprivate {
;+	global:
		GetExecutionEnvironment;
		PT_FPrintStats;
		SetExecutionEnvironment;
;+	local: *;
;+};
;+
;+NSPR_4.1 {
;+	global:
		PR_ConnectContinue;
		PR_CreateIOLayer;
		PR_EmulateAcceptRead;
		PR_EmulateSendFile;
		PR_FindFunctionSymbol;
		PR_FindFunctionSymbolAndLibrary;
		PR_GetMemMapAlignment;
		PR_GetNumberOfProcessors;
		PR_ImportPipe;
		PR_SetEnv;
;+} NSPR_4.0;
;+
;+NSPR_4.3 {
;+	global:
		LL_MaxUint;
		PR_CallOnceWithArg;
		PR_GetLibraryFilePathname;
;+} NSPR_4.1;
;+
;+NSPR_4.4 {
;+	global:
		PR_GetPathSeparator;
;+} NSPR_4.3;
;+
;+NSPR_4.5 {
;+	global:
		PR_EnumerateAddrInfo;
		PR_FreeAddrInfo;
		PR_GetAddrInfoByName;
		PR_GetCanonNameFromAddrInfo;
;+} NSPR_4.4;
;+
;+NSPR_4.6 {
;+	global:
		PR_GetPhysicalMemorySize;
;+} NSPR_4.5;
;+NSPR_4.7 {
;+	global:
		PR_ParseTimeStringToExplodedTime;
;+} NSPR_4.6;
;+NSPR_4.8 {
;+	global:
		PR_AssertCurrentThreadOwnsLock;
		PR_AssertCurrentThreadInMonitor;
;+} NSPR_4.7;
;+NSPR_4.8.9 {
;+      global:
                PR_GetVersion;
;+} NSPR_4.8;
;+NSPR_4.9.2 {
;+      global:
		PR_GetThreadName;
		PR_SetCurrentThreadName;
;+} NSPR_4.8.9;
;+NSPR_4.10.3 {
;+      global:
		PR_SyncMemMap;
;+} NSPR_4.9.2;
;+# Function PR_DuplicateEnvironment had been added in NSPR 4.10.9,
;+# but we neglected to add it to nspr.def until NSPR 4.12
;+NSPR_4.12 {
;+      global:
		PR_DuplicateEnvironment;
		PR_GetEnvSecure;
;+} NSPR_4.10.3;
;+NSPR_4.17_fork {
;+      global:
		PR_EXPERIMENTAL_ONLY_IN_4_17_GetOverlappedIOHandle;
;+} NSPR_4.16;
