Viewing file: mt_support.h (1.95 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* * mt_support.h - multi-thread resource locking support declarations */ /* * Author: Markku Laukkanen * Created: 6-Sep-1999 * History: * 8-Sep-1999 M. Slifcak method names changed; * use array of resource locking structures. */
#ifndef MT_SUPPORT_H #define MT_SUPPORT_H
#ifdef __cplusplus extern "C" { #endif /* * Lock group identifiers */
#define MT_LIBRARY_ID 0 #define MT_APPLICATION_ID 1 #define MT_TOKEN_ID 2
#define MT_MAX_IDS 3 /* one greater than last from above */ #define MT_MAX_SUBIDS 10
/* * Lock resource identifiers for library resources */
#define MT_LIB_NONE 0 #define MT_LIB_SESSION 1 #define MT_LIB_REQUESTID 2 #define MT_LIB_MESSAGEID 3 #define MT_LIB_SESSIONID 4 #define MT_LIB_TRANSID 5
#define MT_LIB_MAXIMUM 6 /* must be one greater than the last one */
#if defined(NETSNMP_REENTRANT) || defined(WIN32)
#if HAVE_PTHREAD_H #include <pthread.h> typedef pthread_mutex_t mutex_type; #ifdef pthread_mutexattr_default #define MT_MUTEX_INIT_DEFAULT pthread_mutexattr_default #else #define MT_MUTEX_INIT_DEFAULT 0 #endif
#elif defined(WIN32) || defined(cygwin)
#include <windows.h> typedef CRITICAL_SECTION mutex_type;
#else /* HAVE_PTHREAD_H */ error "There is no re-entrant support as defined." #endif /* HAVE_PTHREAD_H */
NETSNMP_IMPORT int snmp_res_init(void); NETSNMP_IMPORT int snmp_res_lock(int groupID, int resourceID); NETSNMP_IMPORT int snmp_res_unlock(int groupID, int resourceID); NETSNMP_IMPORT int snmp_res_destroy_mutex(int groupID, int resourceID);
#else /* NETSNMP_REENTRANT */
#ifndef WIN32 #define snmp_res_init() do {} while (0) #define snmp_res_lock(x,y) do {} while (0) #define snmp_res_unlock(x,y) do {} while (0) #define snmp_res_destroy_mutex(x,y) do {} while (0) #endif /* WIN32 */
#endif /* NETSNMP_REENTRANT */
#ifdef __cplusplus } #endif #endif /* MT_SUPPORT_H */
|