summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/include/includes.h1
-rw-r--r--source4/include/mutex.h12
-rw-r--r--source4/include/structs.h2
-rw-r--r--source4/lib/mutex.c92
-rw-r--r--source4/smbd/process_thread.c1
5 files changed, 5 insertions, 103 deletions
diff --git a/source4/include/includes.h b/source4/include/includes.h
index b31ba4d840..3387102393 100644
--- a/source4/include/includes.h
+++ b/source4/include/includes.h
@@ -124,7 +124,6 @@ extern int errno;
#include "smb.h"
#include "byteorder.h"
#include "module.h"
-#include "mutex.h"
#include "librpc/ndr/libndr.h"
#include "librpc/gen_ndr/ndr_misc.h"
#include "librpc/gen_ndr/ndr_dcerpc.h"
diff --git a/source4/include/mutex.h b/source4/include/mutex.h
index 21e4f9f8a5..c0b7d26744 100644
--- a/source4/include/mutex.h
+++ b/source4/include/mutex.h
@@ -21,16 +21,6 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-/* To add a new mutex, add it to enum mutex_id
- */
-enum mutex_id { MUTEX_SMBD, /* global smbd lock */
- MUTEX_TALLOC, /* global talloc.c lock */
- MUTEX_DEBUG, /* global debug.c lock */
- MUTEX_TANK, /* vfs_tank lock */
-
- MUTEX_MAX /* this MUST be kept last */
-};
-
/* To add a new read/write lock, add it to enum rwlock_id
*/
enum rwlock_id { RWLOCK_SMBD, /* global smbd lock */
@@ -55,7 +45,7 @@ enum rwlock_id { RWLOCK_SMBD, /* global smbd lock */
/* this null typedef ensures we get the types right and avoids the
pitfalls of void* */
-typedef struct {
+typedef struct smb_mutex {
void *mutex;
} smb_mutex_t;
typedef struct {
diff --git a/source4/include/structs.h b/source4/include/structs.h
index 29d552d3cc..034ad20b64 100644
--- a/source4/include/structs.h
+++ b/source4/include/structs.h
@@ -172,3 +172,5 @@ struct stream_server_ops;
struct nbtd_server;
struct nbtd_interface;
+
+struct mutex_ops;
diff --git a/source4/lib/mutex.c b/source4/lib/mutex.c
index 25ea3c55ee..480ba92cc0 100644
--- a/source4/lib/mutex.c
+++ b/source4/lib/mutex.c
@@ -19,99 +19,16 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "includes.h"
+#include "mutex.h"
-static smb_mutex_t mutex_list[MUTEX_MAX];
-
/* the registered mutex handlers */
static struct {
const char *name;
struct mutex_ops ops;
} mutex_handlers;
-int smb_mutex_lock_by_id(enum mutex_id id, const char *name)
-{
- return smb_mutex_lock(&mutex_list[id], name);
-}
-
-int smb_mutex_unlock_by_id(enum mutex_id id, const char *name)
-{
- return smb_mutex_unlock(&mutex_list[id], name);
-}
-
-int smb_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 smb_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 smb_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 smb_mutex_unlock(smb_mutex_t *mutex, const char *name)
-{
- if (mutex_handlers.ops.mutex_unlock) {
- return mutex_handlers.ops.mutex_unlock(mutex, name);
- }
- return 0;
-}
-
/* read/write lock routines */
-int smb_rwlock_init(smb_rwlock_t *rwlock, const char *name)
-{
- if (mutex_handlers.ops.rwlock_init) {
- return mutex_handlers.ops.rwlock_init(rwlock, name);
- }
- return 0;
-}
-
-int smb_rwlock_destroy(smb_rwlock_t *rwlock, const char *name)
-{
- if (mutex_handlers.ops.rwlock_destroy) {
- return mutex_handlers.ops.rwlock_destroy(rwlock, name);
- }
- return 0;
-}
-
-int smb_rwlock_lock_write(smb_rwlock_t *rwlock, const char *name)
-{
- if (mutex_handlers.ops.rwlock_lock_write) {
- return mutex_handlers.ops.rwlock_lock_write(rwlock, name);
- }
- return 0;
-}
-
-int smb_rwlock_lock_read(smb_rwlock_t *rwlock, const char *name)
-{
- if (mutex_handlers.ops.rwlock_lock_read) {
- return mutex_handlers.ops.rwlock_lock_read(rwlock, name);
- }
- return 0;
-}
-
-int smb_rwlock_unlock(smb_rwlock_t *rwlock, const char *name)
-{
- if (mutex_handlers.ops.rwlock_unlock) {
- return mutex_handlers.ops.rwlock_unlock(rwlock, name);
- }
- return 0;
-}
-
/*
register a set of mutex/rwlock handlers.
@@ -129,13 +46,6 @@ BOOL register_mutex_handlers(const char *name, struct mutex_ops *ops)
mutex_handlers.name = name;
mutex_handlers.ops = *ops;
- if (mutex_handlers.ops.mutex_init) {
- enum mutex_id id;
- for (id=0; id < MUTEX_MAX; id++) {
- mutex_handlers.ops.mutex_init(&mutex_list[id], "mutex_list");
- }
- }
-
DEBUG(2,("mutex handler '%s' registered\n", name));
return True;
}
diff --git a/source4/smbd/process_thread.c b/source4/smbd/process_thread.c
index 46758af19e..692cd06724 100644
--- a/source4/smbd/process_thread.c
+++ b/source4/smbd/process_thread.c
@@ -33,6 +33,7 @@
#include "lib/events/events.h"
#include "dlinklist.h"
#include "smb_server/smb_server.h"
+#include "mutex.h"
struct new_conn_state {
struct event_context *ev;