IVE Functions, Types, and Constants by Category

Process utilities
Functions to handle process exits or exceptional conditions
Error handling
Error handling functions and constants
Timing
Time-related functions and types
Threading
Functions to implement thread-safe libraries and to assist parallel processing
C/Fortran Interfaces
Functions and types to implement C/Fortran interface functions
Shared Memory
Functions to create and manage a shared memory segment
Event loop
Functions and types to implement an Xt-like event loop
File
Functions for handling files.
Dynamic loading
Functions for dynamically loading code.

| categories | alphabetical |


Functions to handle process exits or exceptional conditions

IVERegisterCleanupRoutine
Registers a procedure to be called at process exit.
IVESetFatalHandler
Sets the routine called when IVEReportFatal is called.
IVEGetFatalHandler
Returns the address of the routine called when IVEReportFatal is called.
IVESetWarningHandler
Sets the routine called when IVEReportWarning is called.
IVEGetWarningHandler
Returns the address of the routine called when IVEReportWarning is called.
IVEReportFatal
Causes a message to be written or logged and terminates the application.
IVEReportWarning
Causes a message to be written or logged.
IVEFatalHandler
Represents the prototype for the function passed to IVESetFatalHandler.
IVEWarningHandler
Represents the prototype for the function passed to IVESetWarningHandler.

| categories | alphabetical |


Error handling functions and constants

IVEErrorToString
Converts an integer error code into a message.
IVE_ERR_*
The error constants used by the IVE library all have names starting with IVE_ERR_.

| categories | alphabetical |


Time-related functions and types

IVEGetCurrTime
Returns the current time.
IVECalcTimeDiff
Finds the elapsed time between two time points.
IVESleep
Suspends execution for an interval of time.
IVETimeValue
Represents an absolute time measurement.
IVETimerInterval
Represents the difference between two time points.

| categories | alphabetical |


Functions to implement thread-safe libraries

IVEThreadCallOnce
Guarantees that an operation is executed once.
IVEThreadCountProcessors
Returns the number of processors currently available on the system.
IVEThreadInitKey
Initializes a handle to thread-specific storage.
IVEThreadDestroyKey
Releases a handle to thread-specific storage.
IVEThreadSetKeyValue
Sets the value stored in thread-specific storage for the current thread.
IVEThreadGetKeyValue
Retrieves the value stored in thread-specific storage for the current thread.
IVEThreadInitMutex
Initializes a mutual exclusion lock.
IVEThreadDestroyMutex
Releases the resources associated with a mutual exclusion lock.
IVEThreadAcquireMutex
Locks an IVEThreadMutex for exclusive access.
IVEThreadTryAcquireMutex
Locks an IVEThreadMutex for exclusive access only if it is currently unlocked.
IVEThreadReleaseMutex
Unlocks an IVEThreadMutex allowing others to access it.
IVEThreadOnceFlag
Is the type used by IVEThreadCallOnce to synchronize the call to an initialization function.
IVEThreadKey
Represents a handle to thread-specific storage.
IVEThreadMutex
Is a mutual exclusion lock for use by threads in the same process.

| categories | alphabetical |


Functions and types to implement C/Fortran interface functions

IVEFtnStringToCString
Constructs a C string from a Fortran one.
IVECStringToFtnString
Fills a Fortran string with the contents of a C string.
IVEPtrToFtnId
Converts a pointer to an integer so it can be returned to a Fortran routine.
IVEFtnIdToPtr
Converts the result of an earlier IVEPtrToFtnId call to a pointer.
fortran_types.h
Defines C equivalents for intrinsic Fortran types.

| categories | alphabetical |


Functions to create and manage a shared memory segment

IVECreateArenaAttr
Creates an object to specify a shared memory segment's attributes.
IVEDestroyArenaAttr
Frees resources allocated with IVECreateArenaAttr.
IVESetArenaAttrSize
Sets the maximum arena size in an IVEArenaAttr object.
IVESetArenaAttrChunk
Sets the block size in an IVEArenaAttr object.
IVECreateArena
Creates a shared memory segment.
IVEDestroyArena
Destroys a shared memory segment.
IVEAttachArena
Attaches to an existing shared memory segment.
IVEDetachArena
Detaches from a shared memory segment.
IVEGetArenaRoot
Returns the value stored in the root location of a shared memory segment.
IVESetArenaRoot
Alters the value stored in the root location of a shared memory segment.
IVECompareSwapArenaRoot
Performs an atomic compare and swap on the value stored in the root location of a shared memory segment.
IVEShmAlloc
Dynamically allocates uninitialized memory from a shared memory segment.
IVEShmCalloc
Dynamically allocates memory which has all bits set to zero from a shared memory segment.
IVEShmRealloc
Changes the size of a previous dynamic allocation from a shared memory segment.
IVEShmDealloc
Frees memory dynamically allocated from a shared memory segment so that it can be reused by anther dynamic allocation request.
IVEPtrToRep
Converts a pointer to a representation that is suitable for storage in shared memory.
IVERepToPtr
Converts a result of IVEPtrToRep into a pointer.
IVEShmInitMutex
Creates a mutual exclusion lock usable by threads in different processes.
IVEShmDestroyMutex
Releases resources allocated by IVEShmInitMutex.
IVEShmAcquireMutex
Locks an IVEShmMutex for exclusive access.
IVEShmTryAcquireMutex
Locks an IVEShmMutex for exclusive access only if it is currently unlocked.
IVEShmReleaseMutex
Unlocks an IVEShmMutex allowing others to access it.
IVEShmInitHold
Creates a mutual exclusion lock which will automatically be released if the locking process exits and is usable by threads in different processes.
IVEShmDestroyHold
Releases resources allocated by IVEShmInitHold.
IVEShmAcquireHold
Locks an IVEShmHold for exclusive access.
IVEShmTryAcquireHold
Locks an IVEShmHold for exclusive access only if it is currently unlocked.
IVEShmReleaseHold
Unlocks an IVEShmHold allowing others to access it.
IVEShmInitRWLock
Initializes a read-write lock usable by threads in different processes.
IVEShmDestroyRWLock
Releases resources allocated by IVEShmInitRWLock.
IVEShmAcquireReadLock
Acquires non-exclusive access to an IVEShmRWLock.
IVEShmTryAcquireReadLock
Acquires non-exclusive access to an IVEShmRWLock only if nothing else currently has exclusive access.
IVEShmReleaseReadLock
Releases a non-exclusive lock on an IVEShmRWLock allowing others exclusive access to it.
IVEShmTryAcquireWriteLock
Acquires exclusive access to an IVEShmRWLock.
IVEShmTryAcquireWriteLock
Acquires exclusive access to an IVEShmRWLock only if nothing else currently has non-exclusive or exclusive access.
IVEShmReleaseWriteLock
Releases an exclusive lock on an IVEShmRWLock allowing others exclusive or non-exclusive access to it.
IVEShmInitSemaphore
Initializes a semaphore usable by threads in different processes.
IVEShmDestroySemaphore
Releases resources allocated by IVEShmInitSemaphore.
IVEShmIncrementSemaphore
Increments the value of an IVEShmSemaphore.
IVEShmDecrementSemaphore
Decrements the value of an IVEShmSemaphore.
IVEShmTryDecrementSemaphore
Decrements the value of an IVEShmSemaphore only if the operation would not block.
IVEShmGetSemaphoreValue
Returns a snapshot of an IVEShmSemaphore's value.
IVEArenaAttr
Represents attributes of a shared memory segment that can be specified when the segment is created.
IVEArena
Represents a shared memory segment.
IVEArenaSize
Represents the size of an IVEArena or a subset thereof.
IVEPtrRep
Represents an encoding of pointer value which can be shared with other processes connected to the same shared memory segment.
IVEShmMutex
Represents a mutual-exclusion lock that can be used by threads in different processes.
IVEShmHold
Represents a mutual-exclusion lock that can be used by threads in different processes and which is automatically released if the process holding the lock exits.
IVEShmRWLock
Represents a read-write lock that can be used by threads in different processes.
IVEShmSemaphore
Represents a counting semaphore that can be used by threads in different processes.

| categories | alphabetical |


Functions and types to implement an Xt-like event loop

IVECreateEventContext
Creates the structure manipulated by the other event handling routines.
IVECreateThreadedEventContext
Creates the structure manipulated by the other event handling routines; the structure can be used simultaneously by multiple threads.
IVEDestroyEventContext
Frees any resources associated with an event context.
IVERemoveAllEventTriggers
Removes all event callbacks registered with an event context.
IVEEventLoop
Enters an infinite loop to process events.
IVEProcessEvent
Processes a single event.
IVEAddInput
Adds an event source that triggers an event when something is ready for input or output.
IVERemoveInput
Removes an event source registered with IVEAddInput
IVEEventReleaseInterest
Restores an input/output event source temporarily disabled during multi-threaded processing.
IVESetMessageHandler
Installs a callback for events generated by IVEPostMessage.
IVECancelMessageHandler
Removes a callback installed with IVESetMessageHandler.
IVEPostMessage
Provides a mechanism for generating events not tied to one of the external event sources.
IVEAddSignal
Adds an event source which triggers an event if a signal has been noticed with IVENoticeSignal.
IVERemoveSignal
Removes an event source registered with IVEAddSignal.
IVENoticeSignal
Takes not that a signal occurred.
IVEAddTimer
Adds an event source that triggers an event after a given amount of time has elapsed.
IVERemoveTimer
Removes an event source registered with IVEAddTimer.
IVEAddWorkProc
Installs a callback invoked when event processing would otherwise block.
IVERemoveWorkProc
Removes a callback installed with IVEAddWorkProc.
IVESetWatchProc
Provides a hook for using the IVE event loop calls with another package that has an event loop (Xt, Corba).
IVEEventContext
Stores information about events of interest.
IVEInputProc
Defines the prototype of callback functions for IVEAddInput.
IVEInputId
Is a handle to an event source and the associated callback which were registered with IVEAddInput.
IVEMessageProc
Defines the prototype of callback functions for IVESetMessageHandler
IVESignalProc
Defines the prototype of callback functions for IVEAddSignal.
IVESignalId
Is a handle to an event source and the associated callback which were registered with IVEAddSignal.
IVETimerProc
Defines the prototype of callback functions for IVEAddTimer.
IVETimerId
Is a handle to an event source and the associated callback which were registered with IVEAddTimer.
IVEWorkProc
Defines the prototype of callback functions for IVEAddWorkProc.
IVEWorkProcId
Is a handle to a callback registered with IVEAddWorkProc.
IVEWatchProc
Defines the prototype for functions registered with IVESetWatchProc.

| categories | alphabetical |


Functions for handling files

IVECheckFileAttributes
Determines whether or not a given file name exists, is a directory, and is accessible to the caller.
IVEGetFreeSpace
Returns the amount of free space in the file system holding a file or directory.
IVEPermitExecution
Modifies the permissions of a file to permit execution of that file by the caller.

| categories | alphabetical |


Functions for dynamically loading code

IVELoadPlugin
Dynamically loads a plugin.
IVEGetPluginAttr
Returns the address of the plugin's attributes.
IVEUnloadPlugin
Unloads a plugin loaded with IVELoadPlugin.
IVEGetPluginErrorMessage
Returns a human-readable explanation for why one of the plugin functions failed.
IVEPlugin
Represents a handle to the dynamically loaded plugin.
IVEPluginInitProc
Is the prototype for the function called internally by IVELoadPlugin to initialize the plugin.
IVECleanupProc.html
Is the prototype for the function called internally by IVEUnloadPlugin to free any resources the plugin allocated in the initialization procedure.

| categories | alphabetical |


modified September 21, 2007

Eric Branlund (eric@msg.ucsf.edu)