diff options
author | John Sonnenschein <johns@joyent.com> | 2012-05-17 18:26:57 +0000 |
---|---|---|
committer | John Sonnenschein <johns@joyent.com> | 2012-05-17 18:26:57 +0000 |
commit | 04b244dd661c24b510ac22936decfc0972d202d3 (patch) | |
tree | 3ebfef98afc303fddf3415d6fba64e8682f495e8 /usr/src/lib/libkmsagent/common/SYSCommon.h | |
parent | eac250589e41f1b705e1b7427b02b3379aac9f9e (diff) | |
parent | a69187741b83640a90dd8586195456dd50c016a8 (diff) | |
download | illumos-joyent-20120517.tar.gz |
Merge git.joyent.com:illumos-joyent20120517
Diffstat (limited to 'usr/src/lib/libkmsagent/common/SYSCommon.h')
-rw-r--r-- | usr/src/lib/libkmsagent/common/SYSCommon.h | 1168 |
1 files changed, 0 insertions, 1168 deletions
diff --git a/usr/src/lib/libkmsagent/common/SYSCommon.h b/usr/src/lib/libkmsagent/common/SYSCommon.h deleted file mode 100644 index 2fd114c4c1..0000000000 --- a/usr/src/lib/libkmsagent/common/SYSCommon.h +++ /dev/null @@ -1,1168 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ - -/* - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -/*--------------------------------------------------------------------------- - * Module: System Abstraction Layer - * - * Description: - * The system layer provides an abstract layer for the most commonly - * used system calls for multi-platforms including Windows and most - * Unix variants. - * - * All the functions defined in this layer fall into 4 categories: - * Threading related functions - * Mutexes - * Conditional variables - * Other Utilities - *--------------------------------------------------------------------------*/ - -#ifndef SYS_COMMON_H -#define SYS_COMMON_H -#ifdef __cplusplus -extern "C" { -#endif - -/*--------------------------------------------------------------------------- - * ERROR code - *--------------------------------------------------------------------------*/ - -#define K_SYS_OK 0 -#define K_SYS_ERR_NO_MEMORY 1 -#define K_SYS_ERR_CREATE_THREAD 2 -#define K_SYS_ERR_JOIN_THREAD 3 -#define K_SYS_ERR_COND 4 - -/*--------------------------------------------------------------------------- - * Header files - *--------------------------------------------------------------------------*/ - -#ifdef WIN32 - #include <windows.h> - #include <process.h> -#else - #include <pthread.h> - - /* UNIX : added by STG */ - #include <stdlib.h> - #include <string.h> -#ifndef METAWARE - #include <wchar.h> -#endif - #include <sys/types.h> - #include <sys/stat.h> - #include <stdarg.h> - - /* - * These functions are not needed, since the Agent API hides them - * enum KeystoneAgent_SortOrder {}; - * enum KeystoneAgent_FilterOperator {}; - */ - -#endif - -/*--------------------------------------------------------------------------- - * MACRO definitions - *--------------------------------------------------------------------------*/ - -#ifdef WIN32 -#define PATH_SEPARATOR '\\' -#define PATH_SEPARATOR_WSTR L"\\" -#ifndef PATH_MAX -#define PATH_MAX MAX_PATH -#endif -#else -#define PATH_SEPARATOR '/' -#define PATH_SEPARATOR_WSTR L"/" -#endif - -#ifndef BOOL -#define BOOL int -#endif -#ifndef TRUE -#define TRUE 1 -#define FALSE 0 -#endif - -#ifdef K_LINUX_PLATFORM - #ifndef UNIX - #define UNIX - #endif -#endif - -#ifdef K_AIX_PLATFORM - #ifndef UNIX - #define UNIX - #endif -#endif - -#ifdef K_SOLARIS_PLATFORM - #ifndef UNIX - #define UNIX - #endif -#endif - -#ifdef K_HPUX_PLATFORM - #ifndef UNIX - #define UNIX - #endif -#endif - -/*--------------------------------------------------------------------------- - * Fatal error definitions - *--------------------------------------------------------------------------*/ - -#ifndef __FUNCTION__ -#define __FUNCTION__ "(Unknown)" -#endif - -#ifndef FATAL_APPLICATION_STATE - -#ifdef DEBUG - -#ifdef WIN32 -#include "crtdbg.h" -#define DEBUG_BREAK() { _CrtDbgBreak(); } -#else /* WIN32 */ -#ifdef METAWARE -#define DEBUG_BREAK() (void *) 0x00000000; /* dummy operation */ -#else -#if !defined(__i386) -#define DEBUG_BREAK() -#else -#ifdef __GNUC__ -#define DEBUG_BREAK() { __asm__ ( "int3" ); } /* NOTE: This only works for x86 platforms */ -#else -#define DEBUG_BREAK() -#endif -#endif /* __i386 */ -#endif /* METAWARE */ -#endif /* WIN32 */ - -#define FATAL_APPLICATION_STATE() \ -do { \ - DEBUG_BREAK(); \ - process_fatal_application_state(__FILE__,__FUNCTION__,__LINE__,0); \ -} while(0) - -#define FATAL_APPLICATION_STATE1(additional_text) \ -do { \ - DEBUG_BREAK(); \ - process_fatal_application_state(__FILE__,__FUNCTION__,__LINE__,additional_text); \ -} while(0) - -#else //DEBUG - -#define DEBUG_BREAK() - -#define FATAL_APPLICATION_STATE() \ -do { \ - process_fatal_application_state(__FILE__,__FUNCTION__,__LINE__,0); \ -} while(0) - -#define FATAL_APPLICATION_STATE1(additional_text) \ -do { \ - process_fatal_application_state(__FILE__,__FUNCTION__,__LINE__,additional_text); \ -} while(0) - -#endif //DEBUG - -#define FATAL_ASSERT(expression) do { if(!(expression)) {FATAL_APPLICATION_STATE();} } while(0) -#define FATAL_ASSERT1(expression,additional_text) do { if(!(expression)) {FATAL_APPLICATION_STATE1(additional_text);} } while(0) - -/* MS Visual Studio compiler does not support __attribute__() */ -#ifndef __GNUC__ -#define __attribute__(x) -#endif - -void process_fatal_application_state(const char* sFile, const char* sFunction, int iLine, const char* sAdditionalText) __attribute__((noreturn)); - -void generate_stack_trace(const char* i_sFile, const wchar_t* i_wsErrMsg); - -#endif /* FATAL_APPLICATION_STATE */ - -/*--------------------------------------------------------------------------- - * Primitive type definitions - *--------------------------------------------------------------------------*/ - -#ifdef WIN32 -typedef __int64 int64; -#else -#ifndef K_AIX_PLATFORM -typedef signed long long int64; -#endif -#endif - - -#ifdef K_HPUX_PLATFORM -wchar_t* wcsstr (const wchar_t* haystack, const wchar_t* needle); -int wprintf (const wchar_t* format, ...); -int swprintf (wchar_t* s, size_t maxlen, const wchar_t* format, ...); -int vswprintf (wchar_t* s, size_t maxlen, const wchar_t* format, va_list args); -int swscanf(const wchar_t *s, const wchar_t *format, ...); -int64 atoll(const char *str); -#endif - -/*--------------------------------------------------------------------------- - * Thread type definitions - *--------------------------------------------------------------------------*/ - -#ifdef WIN32 -typedef HANDLE K_THREAD_HANDLE; -#else -typedef pthread_t K_THREAD_HANDLE; -#endif - -/*--------------------------------------------------------------------------- - * Mutex type definitions - *--------------------------------------------------------------------------*/ - -#ifdef WIN32 - -typedef struct { - HANDLE m_handle; /* mutex handle */ - - CRITICAL_SECTION m_stCriticalSection; /* criticalSection */ - - int m_bIsRecursive; -} WIN32Mutex; - -typedef WIN32Mutex* K_MUTEX_HANDLE; - -#else -typedef pthread_mutex_t* K_MUTEX_HANDLE; -#endif - -/*--------------------------------------------------------------------------- - * Conditional variable type definitions - *--------------------------------------------------------------------------*/ - -#ifdef WIN32 - struct K_CondStruct - { - HANDLE m_hEvent; - HANDLE m_hMutex; - int m_iSignalAll; - int m_iNumWaiting; - int m_iSignalled; - }; - typedef struct K_CondStruct K_ConditionalVariable; - -#else - typedef pthread_cond_t K_ConditionalVariable; -#endif - -/*--------------------------------------------------------------------------- - * Thread function type definitions - *--------------------------------------------------------------------------*/ - - /* - * Having the function return int breaks compatibility between Windows - * and Unix; the function has to return void - */ -/*#ifdef WIN32 - * typedef int (_stdcall *K_ThreadFunc) (void *vpData); - *#else - */ - typedef void (*K_ThreadFunc) (void *vpData); -/* - *#endif - */ - - -/*--------------------------------------------------------------------------- - * Function: K_CreateThread - * - * Description: - * This thread creation function takes a thread function - * and its parameter to create a thread. It also has a Boolean - * parameter to indicate if the thread is detached or joinable. - * A new thread's handle is returned through the output parameter. - * - * Input - * ----- - * i_pFunc Function pointer of the thread function - * i_pvData The point of the parameter passed to the thread function - * i_bIsDetached The thread is detached or not. If detached, then it is - * not joinable. (Note: It is not supported on Win32) - * - * Output - * ------ - * o_pNewThread The Thread handle - * - * Return value Error code - * - *--------------------------------------------------------------------------*/ -int K_CreateThread(K_ThreadFunc i_pFunc, - void *i_pvData, - int i_bIsDetached, - K_THREAD_HANDLE *o_pNewThread); - - -/*--------------------------------------------------------------------------- - * Function: K_JoinThread - * - * Description: - * This thread joining function is called when the current thread - * waits another thread to terminate. - * - * Input - * ----- - * i_hThread The thread handle of the to-be-joined thread - * - * Output - * ------ - * (none) - * - * Return value Error code - * - *--------------------------------------------------------------------------*/ -int K_JoinThread(K_THREAD_HANDLE i_hThread); - - -/*--------------------------------------------------------------------------- - * Function: K_GetCurrentThreadId - * - * Description: - * Returns the thread ID of the current thread. - * - * Input - * ----- - * (none) - * - * Output - * ------ - * (none) - * - * Return value The thread ID - * - *--------------------------------------------------------------------------*/ - -int K_GetCurrentThreadId(); - - -/*--------------------------------------------------------------------------- - * Function: K_CreateMutex - * - * Description: - * The mutex creation function creates a mutex according to the given - * mutex type, and returns the mutex handle to the output parameter. - * - * Input - * ----- - * (none) - * - * Output - * ------ - * o_phandle the handle pointer to the mutex - * - * Return value Error Code - * - *--------------------------------------------------------------------------*/ - -int K_CreateMutex( K_MUTEX_HANDLE *o_phandle ); - - -/*--------------------------------------------------------------------------- - * Function: K_LockMutex - * - * Description: - * K_LockMutex is used to lock the mutex, and K_UnlockMutex is - * used to unlock it. - * - * Input - * ----- - * i_handle the mutex handle - * - * Output - * ------ - * (none) - * - * return value Error Code - * - *--------------------------------------------------------------------------*/ -int K_LockMutex(K_MUTEX_HANDLE i_handle); - - -/*--------------------------------------------------------------------------- - * Function: K_UnlockMutex - * - * Description: - * K_UnlockMutex is used to unlock the lock. - * - * Input - * ----- - * i_handle the mutex handle - * - * Output - * ------ - * (none) - * - * Return value Error Code - * - *--------------------------------------------------------------------------*/ -int K_UnlockMutex(K_MUTEX_HANDLE i_handle); - - -/*--------------------------------------------------------------------------- - * Function: K_DestroyMutex - * - * Description: - * When a mutex is no longer needed, K_DestroyMutex must be called - * to destroy it. - * - * Input - * ----- - * i_handle the mutex handle - * - * Output - * ------ - * (none) - * - * Return value Error Code - * - *--------------------------------------------------------------------------*/ - -int K_DestroyMutex(K_MUTEX_HANDLE i_handle); - - -/*--------------------------------------------------------------------------- - * - * The following section defines Conditional Variable - * - * Conditional Variable implements similar functionalities defined - * in POSIX thread library. But it only supports conditional variables - * inside one process and doesn't support pthread_cond_timedwait(). -*--------------------------------------------------------------------------*/ - - -/*--------------------------------------------------------------------------- - * Function: K_InitConditionalVariable - * - * Description: - * This function initializes a conditional variable; Upon successful - * completion, the new condition variable is returned via the condition - * parameter, and 0 is returned. Otherwise, an error code is returned. - * - * Input - * ----- - * i_pCond the pointer to the conditional variable which is to be - * initialized - * - * Output - * ------ - * (none) - * - * Return value Error Code - * - *--------------------------------------------------------------------------*/ -int K_InitConditionalVariable (K_ConditionalVariable * i_pCond); - - - -/*--------------------------------------------------------------------------- - * Function: K_DestroyConditionalVariable - * - * Description: - * This function destroys a conditional variable. Upon successful - * completion, the condition variable is destroyed, and 0 is returned. - * Otherwise, an error code is returned. - * After deletion of the condition variable, the condition parameter - * is not valid until it is initialized again by a call to the - * K_InitConditionalVariable subroutine. - * - * Input - * ----- - * i_pCond the pointer to the conditional variable which is to be - * destroyed - * - * Output - * ------ - * (none) - * - * Return value Error Code - * - *--------------------------------------------------------------------------*/ - -int K_DestroyConditionalVariable(K_ConditionalVariable * i_pCond); - - -/*--------------------------------------------------------------------------- - * Function: K_WaitConditionalVariable - * - * Description: - * This function is used to block on a condition variable. - * They are called with mutex locked by the calling thread or undefined - * behaviour will result. - * - * Input - * ----- - * i_pCond the pointer to the conditional variable - * i_handle the companion mutex handle - * - * Output - * ------ - * (none) - * - * Return value Error Code - * - *--------------------------------------------------------------------------*/ -int K_WaitConditionalVariable(K_ConditionalVariable * i_pCond, - K_MUTEX_HANDLE i_handle); - - -/*--------------------------------------------------------------------------- - * Function: K_SignalConditionalVariable - * - * Description: - * This function is used to restart one of the threads that are waiting on - * the condition variable. If no threads are waiting on it, nothing happens. - * If several threads are waiting on it, exactly one is restarted. - * - * Input - * ----- - * i_pCond the pointer to the conditional variable - * - * Output - * ------ - * (none) - * - * Return value Error Code - * - *--------------------------------------------------------------------------*/ -int K_SignalConditionalVariable(K_ConditionalVariable * i_pCond); - - -/*--------------------------------------------------------------------------- - * Function: K_BroadcastConditionalVariable - * - * Description: - * This function is used to restart all threads that are waiting on - * the condition variable. - * - * Input - * ----- - * i_pCond the pointer to the conditional variable - * - * Output - * ------ - * (none) - * - * Return value Error Code - * - *--------------------------------------------------------------------------*/ -int K_BroadcastConditionalVariable(K_ConditionalVariable * i_pCond); - - -/*--------------------------------------------------------------------------- - * Function: K_Sleep - * - * Description: - * Sleep for a given period in the given milliseconds. - * - * Input - * ----- - * i_ms milliseconds - * - * Output - * ------ - * (none) - * - * Return value (none) - * - *--------------------------------------------------------------------------*/ -void K_Sleep(int i_ms); - - -/*--------------------------------------------------------------------------- - * Function: K_GetTickCount - * - * Description: - * The K_GetTickCount function retrieves the number of - * milliseconds that have elapsed since the system was started. - * - * Input - * ----- - * (none) - * - * Output - * ------ - * (none) - * - * Return value the elasped milliseconds since the system was started - * - *--------------------------------------------------------------------------*/ -unsigned int K_GetTickCount(); - - -/*--------------------------------------------------------------------------- - * Function: K_AdjustClock - * - * Description: - * The K_AdjustClock function immediately adjusts the system clock by - * the given number of seconds. A positive number adjusts the system - * clock forward; a negative number adjusts the system clock backward. - * - * Input - * ----- - * i_iAdjustmentInSeconds Number of seconds by which to adjust the - * system clock - * Output - * ------ - * (none) - * - * Return value 1 if successful, 0 on error - * - *--------------------------------------------------------------------------*/ -int K_AdjustClock( long i_iAdjustmentInSeconds ); - - -/*--------------------------------------------------------------------------- - * Function: K_IsLittleEndian - * - * Description: - * Checks to see whether this platform uses little endian integer - * representation. - * - * Input - * ----- - * (none) - * - * Output - * ------ - * (none) - * - * Return value 1 for little endian - * - *--------------------------------------------------------------------------*/ -int K_IsLittleEndian(); - - -/*--------------------------------------------------------------------------- - * Function: K_FileLength32 - * - * Description: - * Gets the size in bytes of the file associated with the given FILE pointer. - * - * Input - * ----- - * i_fpFile File handle - * - * Output - * ------ - * (none) - * - * Return value File size in bytes, or -1L on error - * - *--------------------------------------------------------------------------*/ -long K_FileLength32( FILE* i_fpFile ); - - -/*--------------------------------------------------------------------------- - * Function: K_StringCompareNoCase - * - * Description: - * Compares the two given strings insensitive to case. - * - * Input - * ----- - * i_sString1 First string - * i_sString2 Second string - * - * Output - * ------ - * (none) - * - * Return value 0 if identical, -1 if first string is less than second - * string, or 1 if first string is greater than second - * - *--------------------------------------------------------------------------*/ -int K_StringCompareNoCase( const char* i_sString1, const char* i_sString2 ); - - -/*--------------------------------------------------------------------------- - * Function: K_StringCompareNoCaseWide - * - * Description: - * Compares the two given wide strings insensitive to case. - * - * Input - * ----- - * i_wsString1 First wide string - * i_wsString2 Second wide string - * - * Output - * ------ - * (none) - * - * Return value 0 if identical, -1 if first string is less than second - * string, or 1 if first string is greater than second - * - *--------------------------------------------------------------------------*/ -int K_StringCompareNoCaseWide( const wchar_t* i_wsString1, const wchar_t* i_wsString2 ); - - -/*--------------------------------------------------------------------------- - * Function: K_snprintf - * - * Description: - * See the snprintf(3C) man page. - * - *--------------------------------------------------------------------------*/ -#ifdef WIN32 -#define K_snprintf _snprintf -#else -#define K_snprintf snprintf -#endif - - -/*--------------------------------------------------------------------------- - * Function: K_snwprintf - * - * Description: - * See the swprintf(3C) man page. - * - *--------------------------------------------------------------------------*/ -#ifdef WIN32 -#define K_snwprintf _snwprintf -#else -#define K_snwprintf swprintf -#endif - -#ifdef WIN32 -#define K_fseek fseek -#define K_ftell ftell -#else -#define K_fseek fseeko -#define K_ftell ftello -#endif - - -/*--------------------------------------------------------------------------- - * Function: K_CreateDirectory - * - * Description: - * Creates a directory with the given path name. - * - * Input - * ----- - * i_sDirectoryName Directory name - * - * Output - * ------ - * (none) - * - * Return value 0 on success, -1 on failure - * - *--------------------------------------------------------------------------*/ -int K_CreateDirectory( const char* i_sDirectoryName ); - - -/*--------------------------------------------------------------------------- - * Function: K_DeleteFile - * - * Description: - * Deletes the given file. - * - * Input - * ----- - * i_sFilename Name of file to delete - * - * Output - * ------ - * (none) - * - * Return value 0 on success, errno on failure - * - *--------------------------------------------------------------------------*/ -int K_DeleteFile( const char* i_sFilename ); - - -/*--------------------------------------------------------------------------- - * Function: K_ReadFile - * - * Description: - * Reads from the given file and passes the bytes read back to the output - * parameter. The caller must deallocate o_ppFileData using free(). - * - * Input - * ----- - * i_sFilename Name of file from which to read - * - * Output - * ------ - * o_ppFileData Pointer to bytes read - * - * Return value Number of bytes read on success, -1 on failure - * - *--------------------------------------------------------------------------*/ -int K_ReadFile( const char* i_sFilename, unsigned char** o_ppFileData ); - - -/*--------------------------------------------------------------------------- - * Function: K_ReadFileString - * - * Description: - * Reads from the given file and passes the bytes read back to the output - * parameter, appending these bytes with a null terminator. There is no - * guarantee that there are no non-text characters in the returned "string". - * The caller must deallocate o_ppFileData using free(). - * - * Input - * ----- - * i_sFilename Name of file from which to read - * - * Output - * ------ - * o_psFileDataString Pointer to bytes read - * - * Return value Number of bytes read (including null terminator) on - * success (0 if file is empty), -1 on failure - * - *--------------------------------------------------------------------------*/ -int K_ReadFileString( const char* i_sFilename, char** o_psFileDataString ); - - -/*--------------------------------------------------------------------------- - * Function: K_WriteFile - * - * Description: - * Writes the given bytes to the given file. - * - * Input - * ----- - * i_sFilename Name of file to which to write - * i_pFileData Bytes to write - * i_iFileDataSize Number of bytes to write - * - * Output - * ------ - * (none) - * - * Return value 0 on success, errno or -1 (generic error) on failure - * - *--------------------------------------------------------------------------*/ -int K_WriteFile( const char* i_sFilename, const unsigned char* i_pFileData, int i_iFileDataSize ); - - -/*--------------------------------------------------------------------------- - * Function: K_WriteFileString - * - * Description: - * Writes the given null-terminated bytes to the given file. The null - * terminator itself is not written to the file. - * - * Input - * ----- - * i_sFilename Name of file to which to write - * i_sFileData Bytes to write - * - * Output - * ------ - * (none) - * - * Return value 0 on success, errno or -1 (generic error) on failure - * - *--------------------------------------------------------------------------*/ -int K_WriteFileString( const char* i_sFilename, const char* i_sFileData ); - - -/*--------------------------------------------------------------------------- - * Function: K_FileExists - * - * Description: - * Checks to see whehter the given file exists. - * - * Input - * ----- - * i_sFilename Name of file to check - * - * Output - * ------ - * (none) - * - * Return value 1 if file exists, 0 if not, -1 on failure - * - *--------------------------------------------------------------------------*/ -int K_FileExists( const char* i_sFilename ); - - -/*--------------------------------------------------------------------------- - * Function: K_CopyFile - * - * Description: - * Reads from the given source file and writes these bytes to the given - * destination file. - * - * Input - * ----- - * i_sSrcFilename Name of file from which to read - * i_sDestFilename Name of file to which to write - * - * Output - * ------ - * o_pbFileExists Non-zero if the destination file already exists - * - * Return value 0 on success, errno or -1 (generic error) on failure - * - *--------------------------------------------------------------------------*/ -int K_CopyFile( - const char* i_sSrcFilename, - const char* i_sDestFilename, - int* o_pbFileExists ); - - -/*--------------------------------------------------------------------------- - * Function: K_GetFilenamesInDirectoryCount - * - * Description: - * Reads the given directory and returns the number of files that it contains. - * - * Input - * ----- - * i_sDirectoryName Name of directory - * - * Output - * ------ - * (none) - * - * Return value Number of files on success, -1 on failure - * - *--------------------------------------------------------------------------*/ -int K_GetFilenamesInDirectoryCount( const char* i_sDirectoryName ); - - -/*--------------------------------------------------------------------------- - * Function: K_GetFilenamesInDirectory - * - * Description: - * Reads the given directory and returns an array of names of files that it - * contains. A null pointer appears at the last item in the array. The - * caller must deallocate o_pasFilenames by using K_FreeFilenames or by - * calling free() for each file name and then calling free() on the array - * itself. - * - * Input - * ----- - * i_sDirectoryName Name of directory - * - * Output - * ------ - * o_pasFilenames Array of names of files found in this directory - * - * Return value Number of files on success, -1 on failure - * - *--------------------------------------------------------------------------*/ -int K_GetFilenamesInDirectory( - const char* i_sDirectoryName, - char*** o_pasFilenames ); - - -/*--------------------------------------------------------------------------- - * Function: K_FreeFilenames - * - * Description: - * Deallocates the memory allocated in a successful call to - * K_GetFilenamesInDirectory. - * - * Input - * ----- - * i_asFilenames Array of names of files - * - * Output - * ------ - * (none) - * - * Return value (none) - * - *--------------------------------------------------------------------------*/ -void K_FreeFilenames( char** i_asFilenames ); - - -/*--------------------------------------------------------------------------- - * Function: K_AdjustLocalClock - * - * Description: - * The K_AdjustLocalClock function gradually adjusts the system clock by - * the given number of seconds. A positive number adjusts the system - * clock forward; a negative number adjusts the system clock backward. - * - * Input - * ----- - * i_iAdjustmentInSeconds Number of seconds by which to adjust the - * system clock - * Output - * ------ - * (none) - * - * Return value 1 if successful, 0 on error - * - *--------------------------------------------------------------------------*/ -int K_AdjustLocalClock( int i_iNumberOfSeconds ); - - -/*--------------------------------------------------------------------------- - * Function: K_SetRootPassword - * - * Description: - * The K_SetRootPassword function sets the password for the root user via - * Pluggable Authentication Module (PAM). This function is interactive. - * - * Input - * ----- - * i_sPassword Password to set - * - * Output - * ------ - * (none) - * - * Return value 0 if successful, -1 on error - * - *--------------------------------------------------------------------------*/ -int K_SetRootPassword( const char* i_sPassword ); - - -/*--------------------------------------------------------------------------- - * Function: K_Alarm - * - * Description: - * Calls alarm(2) on Unix in order to cause the operating system to generate - * a SIGALRM signal for this process after the given number of real-time - * seconds. Does nothing on Windows. - * - * Input - * ----- - * i_iSeconds Number of seconds after which to generate a SIGALRM - * signal - * - * Output - * ------ - * (none) - * - * Return value If a previous alarm request is pending, then it returns - * the number of seconds until this previous request would - * have generated a SIGALRM signal. Otherwise, returns 0. - * - *--------------------------------------------------------------------------*/ -unsigned int K_Alarm( unsigned int i_iSeconds ); - - -/*--------------------------------------------------------------------------- - * Function: K_GetExtendedVersionFromBase - * - * Description: - * This KMS-specific function prepends the timestamp value to the specified - * base replication schema version and returns this value as an extended - * replication schema version. - * - * Input - * ----- - * i_iBaseSchemaVersion Base replication schema version - * - * Output - * ------ - * (none) - * - * Return value Extended replication schema version - * - *--------------------------------------------------------------------------*/ -unsigned int K_GetExtendedVersionFromBase( unsigned int i_iBaseSchemaVersion ); - - -/*--------------------------------------------------------------------------- - * Function: K_ParseTimestampFromExtendedVersion - * - * Description: - * This KMS-specific function parses the timestamp value from the given - * extended replication schema version and returns this timestamp value. - * - * Input - * ----- - * i_iExtendedSchemaVersion Extended replication schema version - * - * Output - * ------ - * (none) - * - * Return value Timestamp value - * - *--------------------------------------------------------------------------*/ -unsigned int K_ParseTimestampFromExtendedVersion( - unsigned int i_iExtendedSchemaVersion ); - - -/*--------------------------------------------------------------------------- - * Function: K_ParseBaseFromExtendedVersion - * - * Description: - * This KMS-specific function parses the base replication schema value from - * the given extended replication schema version and returns this base value. - * - * Input - * ----- - * i_iExtendedSchemaVersion Extended replication schema version - * - * Output - * ------ - * (none) - * - * Return value Base replication schema value - * - *--------------------------------------------------------------------------*/ - -unsigned int K_ParseBaseFromExtendedVersion( - unsigned int i_iExtendedSchemaVersion ); - - -/*--------------------------------------------------------------------------- - * Function: K_System - * - * Description: - * This function is a thread-safe replacement for the unsafe system(3C) call. - * See the popen(3C) man page for more information. - * - * Input - * ----- - * i_sCmd Command to execute - * - * Output - * ------ - * (none) - * - * Return value Termination status of the command language interpreter - * if successful, -1 on failure - * - *--------------------------------------------------------------------------*/ - -int K_System( const char *i_sCmd ); - -#define K_system K_System - -#ifdef __cplusplus -} -#endif - -#endif - - |