1/* 2 Unix SMB/CIFS implementation. 3 Samba mutex/lock functions 4 Copyright (C) Andrew Tridgell 2003 5 Copyright (C) James J Myers 2003 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 3 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program. If not, see <http://www.gnu.org/licenses/>. 19*/ 20#include "includes.h" 21#include "mutex.h" 22 23/** 24 * @file 25 * @brief Mutex utility functions 26 */ 27 28/* the registered mutex handlers */ 29static struct { 30 const char *name; 31 struct mutex_ops ops; 32} mutex_handlers; 33 34/* read/write lock routines */ 35 36 37/** 38 register a set of mutex/rwlock handlers. 39 Should only be called once in the execution of smbd. 40*/ 41_PUBLIC_ bool register_mutex_handlers(const char *name, struct mutex_ops *ops) 42{ 43 if (mutex_handlers.name != NULL) { 44 /* it's already registered! */ 45 DEBUG(2,("mutex handler '%s' already registered - failed '%s'\n", 46 mutex_handlers.name, name)); 47 return false; 48 } 49 50 mutex_handlers.name = name; 51 mutex_handlers.ops = *ops; 52 53 DEBUG(2,("mutex handler '%s' registered\n", name)); 54 return true; 55} 56 57