mt_support.h
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:2k
- /*
- * 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(NS_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 */
- int snmp_res_init(void);
- int snmp_res_lock(int groupID, int resourceID);
- int snmp_res_unlock(int groupID, int resourceID);
- int snmp_res_destroy_mutex(int groupID, int resourceID);
- #else /* NS_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 /* NS_REENTRANT */
- #ifdef __cplusplus
- }
- #endif
- #endif /* MT_SUPPORT_H */