pitfalls of void* */
typedef struct {
void *mutex;
-} mutex_t;
+} smb_mutex_t;
typedef struct {
void *rwlock;
} rwlock_t;
/* the mutex model operations structure - contains function pointers to
the model-specific implementations of each operation */
struct mutex_ops {
- int (*mutex_init)(mutex_t *mutex, const char *name);
- int (*mutex_lock)(mutex_t *mutex, const char *name);
- int (*mutex_unlock)(mutex_t *mutex, const char *name);
- int (*mutex_destroy)(mutex_t *mutex, const char *name);
+ int (*mutex_init)(smb_mutex_t *mutex, const char *name);
+ int (*mutex_lock)(smb_mutex_t *mutex, const char *name);
+ int (*mutex_unlock)(smb_mutex_t *mutex, const char *name);
+ int (*mutex_destroy)(smb_mutex_t *mutex, const char *name);
int (*rwlock_init)(rwlock_t *rwlock, const char *name);
int (*rwlock_lock_write)(rwlock_t *rwlock, const char *name);
int (*rwlock_lock_read)(rwlock_t *rwlock, const char *name);
*/
#include "includes.h"
-static mutex_t mutex_list[MUTEX_MAX];
+static smb_mutex_t mutex_list[MUTEX_MAX];
/* the registered mutex handlers */
static struct {
return mutex_unlock(&mutex_list[id], name);
}
-int mutex_init(mutex_t *mutex, const char *name)
+int mutex_init(smb_mutex_t *mutex, const char *name)
{
if (mutex_handlers.ops.mutex_init) {
return mutex_handlers.ops.mutex_init(mutex, name);
return 0;
}
-int mutex_destroy(mutex_t *mutex, const char *name)
+int mutex_destroy(smb_mutex_t *mutex, const char *name)
{
if (mutex_handlers.ops.mutex_destroy) {
return mutex_handlers.ops.mutex_destroy(mutex, name);
return 0;
}
-int mutex_lock(mutex_t *mutex, const char *name)
+int mutex_lock(smb_mutex_t *mutex, const char *name)
{
if (mutex_handlers.ops.mutex_lock) {
return mutex_handlers.ops.mutex_lock(mutex, name);
return 0;
}
-int mutex_unlock(mutex_t *mutex, const char *name)
+int mutex_unlock(smb_mutex_t *mutex, const char *name)
{
if (mutex_handlers.ops.mutex_unlock) {
return mutex_handlers.ops.mutex_unlock(mutex, name);
/*
mutex init function for thread model
*/
-static int thread_mutex_init(mutex_t *mutex, const char *name)
+static int thread_mutex_init(smb_mutex_t *mutex, const char *name)
{
pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
mutex->mutex = memdup(&m, sizeof(m));
/*
mutex destroy function for thread model
*/
-static int thread_mutex_destroy(mutex_t *mutex, const char *name)
+static int thread_mutex_destroy(smb_mutex_t *mutex, const char *name)
{
return pthread_mutex_destroy((pthread_mutex_t *)mutex->mutex);
}
/*
mutex lock function for thread model
*/
-static int thread_mutex_lock(mutex_t *mutexP, const char *name)
+static int thread_mutex_lock(smb_mutex_t *mutexP, const char *name)
{
pthread_mutex_t *mutex = (pthread_mutex_t *)mutexP->mutex;
int rc;
/*
mutex unlock for thread model
*/
-static int thread_mutex_unlock(mutex_t *mutex, const char *name)
+static int thread_mutex_unlock(smb_mutex_t *mutex, const char *name)
{
return pthread_mutex_unlock((pthread_mutex_t *)mutex->mutex);
}