summaryrefslogtreecommitdiffstats
path: root/docs/nspr/reference/nspr_error_handling.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/nspr/reference/nspr_error_handling.rst')
-rw-r--r--docs/nspr/reference/nspr_error_handling.rst206
1 files changed, 206 insertions, 0 deletions
diff --git a/docs/nspr/reference/nspr_error_handling.rst b/docs/nspr/reference/nspr_error_handling.rst
new file mode 100644
index 0000000000..df40678607
--- /dev/null
+++ b/docs/nspr/reference/nspr_error_handling.rst
@@ -0,0 +1,206 @@
+This chapter describes the functions for retrieving and setting errors
+and the error codes set by NSPR.
+
+- `Error Type <#Error_Type>`__
+- `Error Functions <#Error_Functions>`__
+- `Error Codes <#Error_Codes>`__
+
+For information on naming conventions for NSPR types, functions, and
+macros, see `NSPR Naming
+Conventions <Introduction_to_NSPR#NSPR_Naming_Conventions>`__.
+
+.. _Error_Type:
+
+Error Type
+----------
+
+ - :ref:`PRErrorCode`
+
+.. _Error_Functions:
+
+Error Functions
+---------------
+
+ - :ref:`PR_SetError`
+ - :ref:`PR_SetErrorText`
+ - :ref:`PR_GetError`
+ - :ref:`PR_GetOSError`
+ - :ref:`PR_GetErrorTextLength`
+ - :ref:`PR_GetErrorText`
+
+.. _Error_Codes:
+
+Error Codes
+-----------
+
+Error codes defined in ``prerror.h``:
+
+``PR_OUT_OF_MEMORY_ERROR``
+ Insufficient memory to perform request.
+``PR_BAD_DESCRIPTOR_ERROR``
+ The file descriptor used as an argument in the preceding function is
+ invalid.
+``PR_WOULD_BLOCK_ERROR``
+ The operation would have blocked, which conflicts with the semantics
+ that have been established.
+``PR_ACCESS_FAULT_ERROR``
+ One of the arguments of the preceding function specified an invalid
+ memory address.
+``PR_INVALID_METHOD_ERROR``
+ The preceding function is invalid for the type of file descriptor
+ used.
+``PR_ILLEGAL_ACCESS_ERROR``
+ One of the arguments of the preceding function specified an invalid
+ memory address.
+``PR_UNKNOWN_ERROR``
+ Some unknown error has occurred.
+``PR_PENDING_INTERRUPT_ERROR``
+ The operation terminated because another thread has interrupted it
+ with :ref:`PR_Interrupt`.
+``PR_NOT_IMPLEMENTED_ERROR``
+ The preceding function has not been implemented.
+``PR_IO_ERROR``
+ The preceding I/O function encountered some sort of an error, perhaps
+ an invalid device.
+``PR_IO_TIMEOUT_ERROR``
+ The I/O operation has not completed in the time specified for the
+ preceding function.
+``PR_IO_PENDING_ERROR``
+ An I/O operation has been attempted on a file descriptor that is
+ currently busy with another operation.
+``PR_DIRECTORY_OPEN_ERROR``
+ The directory could not be opened.
+``PR_INVALID_ARGUMENT_ERROR``
+ One or more of the arguments to the function is invalid.
+``PR_ADDRESS_NOT_AVAILABLE_ERROR``
+ The network address (:ref:`PRNetAddr`) is not available (probably in
+ use).
+``PR_ADDRESS_NOT_SUPPORTED_ERROR``
+ The type of network address specified is not supported.
+``PR_IS_CONNECTED_ERROR``
+ An attempt to connect on an already connected network file
+ descriptor.
+``PR_BAD_ADDRESS_ERROR``
+ The network address specified is invalid (as reported by the
+ network).
+``PR_ADDRESS_IN_USE_ERROR``
+ Network address specified (:ref:`PRNetAddr`) is in use.
+``PR_CONNECT_REFUSED_ERROR``
+ The peer has refused to allow the connection to be established.
+``PR_NETWORK_UNREACHABLE_ERROR``
+ The network address specifies a host that is unreachable (perhaps
+ temporary).
+``PR_CONNECT_TIMEOUT_ERROR``
+ The connection attempt did not complete in a reasonable period of
+ time.
+``PR_NOT_CONNECTED_ERROR``
+ The preceding function attempted to use connected semantics on a
+ network file descriptor that was not connected.
+``PR_LOAD_LIBRARY_ERROR``
+ Failure to load a dynamic library.
+``PR_UNLOAD_LIBRARY_ERROR``
+ Failure to unload a dynamic library.
+``PR_FIND_SYMBOL_ERROR``
+ Symbol could not be found in the specified library.
+``PR_INSUFFICIENT_RESOURCES_ERROR``
+ There are insufficient system resources to process the request.
+``PR_DIRECTORY_LOOKUP_ERROR``
+ A directory lookup on a network address has failed.
+``PR_TPD_RANGE_ERROR``
+ Attempt to access a thread-private data index that is out of range of
+ any index that has been allocated to the process.
+``PR_PROC_DESC_TABLE_FULL_ERROR``
+ The process' table for holding open file descriptors is full.
+``PR_SYS_DESC_TABLE_FULL_ERROR``
+ The system's table for holding open file descriptors has been
+ exceeded.
+``PR_NOT_SOCKET_ERROR``
+ An attempt to use a non-network file descriptor on a network-only
+ operation.
+``PR_NOT_TCP_SOCKET_ERROR``
+ Attempt to perform a TCP specific function on a non-TCP file
+ descriptor.
+``PR_SOCKET_ADDRESS_IS_BOUND_ERRO``
+ Attempt to bind an address to a TCP file descriptor that is already
+ bound.
+``PR_NO_ACCESS_RIGHTS_ERROR``
+ Calling thread does not have privilege to perform the operation
+ requested.
+``PR_OPERATION_NOT_SUPPORTED_ERRO``
+ The requested operation is not supported by the platform.
+``PR_PROTOCOL_NOT_SUPPORTED_ERROR``
+ The host operating system does not support the protocol requested.
+``PR_REMOTE_FILE_ERROR``
+ Access to the remote file has been severed.
+``PR_BUFFER_OVERFLOW_ERROR``
+ The value retrieved is too large to be stored in the buffer provided.
+``PR_CONNECT_RESET_ERROR``
+ The (TCP) connection has been reset by the peer.
+``PR_RANGE_ERROR``
+ Unused.
+``PR_DEADLOCK_ERROR``
+ Performing the requested operation would have caused a deadlock. The
+ deadlock was avoided.
+``PR_FILE_IS_LOCKED_ERROR``
+ An attempt to acquire a lock on a file has failed because the file is
+ already locked.
+``PR_FILE_TOO_BIG_ERROR``
+ Completing the write or seek operation would have resulted in a file
+ larger than the system could handle.
+``PR_NO_DEVICE_SPACE_ERROR``
+ The device for storing the file is full.
+``PR_PIPE_ERROR``
+ Unused.
+``PR_NO_SEEK_DEVICE_ERROR``
+ Unused.
+``PR_IS_DIRECTORY_ERROR``
+ Attempt to perform a normal file operation on a directory.
+``PR_LOOP_ERROR``
+ Symbolic link loop.
+``PR_NAME_TOO_LONG_ERROR``
+ Filename is longer than allowed by the host operating system.
+``PR_FILE_NOT_FOUND_ERROR``
+ The requested file was not found.
+``PR_NOT_DIRECTORY_ERROR``
+ Attempt to perform directory specific operations on a normal file.
+``PR_READ_ONLY_FILESYSTEM_ERROR``
+ Attempt to write to a read-only file system.
+``PR_DIRECTORY_NOT_EMPTY_ERROR``
+ Attempt to delete a directory that is not empty.
+``PR_FILESYSTEM_MOUNTED_ERROR``
+ Attempt to delete or rename a file object while the file system is
+ busy.
+``PR_NOT_SAME_DEVICE_ERROR``
+ Request to rename a file to a file system on another device.
+``PR_DIRECTORY_CORRUPTED_ERROR``
+ The directory object in the file system is corrupted.
+``PR_FILE_EXISTS_ERROR``
+ Attempt to create or rename a file when the new name is already being
+ used.
+``PR_MAX_DIRECTORY_ENTRIES_ERROR``
+ Attempt to add new filename to directory would exceed the limit
+ allowed.
+``PR_INVALID_DEVICE_STATE_ERROR``
+ The device was in an invalid state to complete the desired operation.
+``PR_DEVICE_IS_LOCKED_ERROR``
+ The device needed to perform the desired request is locked.
+``PR_NO_MORE_FILES_ERROR``
+ There are no more entries in the directory.
+``PR_END_OF_FILE_ERROR``
+ Unexpectedly encountered end of file (Mac OS only).
+``PR_FILE_SEEK_ERROR``
+ An unexpected seek error (Mac OS only).
+``PR_FILE_IS_BUSY_ERROR``
+ The file is busy and the operation cannot be performed.
+``PR_IN_PROGRESS_ERROR``
+ The operation is still in progress (probably a nonblocking connect).
+``PR_ALREADY_INITIATED_ERROR``
+ The (retried) operation has already been initiated (probably a
+ nonblocking connect).
+``PR_GROUP_EMPTY_ERROR``
+ The wait group is empty.
+``PR_INVALID_STATE_ERROR``
+ The attempted operation is on an object that was in an improper state
+ to perform the request.
+``PR_MAX_ERROR``
+ Placeholder for the end of the list.