SUBSYSTEM OVERVIEW

Utility General (UGN) Subsystem

The Utility GN subsystem provides functions for general data manipulation and general utilities.

DATA MANIPULATION

The function ugn_FillByte can be used to set an area of memory to a specified byte value. The function ugn_ZeroByte initializes an area of memory to zero.

The following functions move data between areas of memory:

   ugn_MoveByte
   ugn_MoveShort
   ugn_MoveInt
   ugn_MoveLong
   ugn_MoveFloat
   ugn_MoveDouble

A set of macros allow inline data moving (thus avoiding the overhead of a function call). These macros have the same names as above except that the portion following the underscore is all uppercase (i.e. ugn_MOVEBYTE is the inline version of ugn_MoveByte). The inline macro versions should only be used if the amount of data to be moved is small or the call is made inside of a tight loop because they do not include the optimizations which the function versions provide.

The following functions swap values between two arrays:

   ugn_SwapByte
   ugn_SwapShort
   ugn_SwapInt
   ugn_SwapLong
   ugn_SwapFloat
   ugn_SwapDouble

Inline macros of these are available to swap single elements betweeen arrays:

   ugn_Swap2Byte
   ugn_Swap2Short
   ugn_Swap2Int
   ugn_Swap2Long
   ugn_Swap2Float
   ugn_Swap2Double

FILE UTILITIES

The function ugn_FileExist can be used to check for existance of a file. The function ugn_TempFile can be used to generate a temporary file name.

MISCELLANEOUS UTILITIES

The funcion ugn_GetPID returns the process ID of the current process. The functions ugn_GetMax and ugn_GetMin return the maximium or minimium of two values

ENVIRONMENT VARIABLE ALIASES

An application can establish an alias for environment variables used by the library so that the names used for library environment variables are consistent with those used in the application. This is done by using the function ugn_SetEnvAlias as shown in the following example:

   ugn_SetEnvAlias (UGN_NOOPT, "PDELIB_TMP", "APPL_TMPDIR");

Now the location of temporary files can be controlled by setting either the PDELIB_TMP or APPL_TMPDIR environment variables. Note that to obtain the value of an environment variable which has been aliased, a call must be made to ugn_GetEnv rather than getenv. See the manual page for ugn_SetEnvAlias for further information.