1/* 2 Unix SMB/CIFS implementation. 3 4 generic byte range locking code - common include 5 6 Copyright (C) Andrew Tridgell 2006 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 3 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. 20*/ 21 22#include "libcli/libcli.h" 23 24struct brlock_ops { 25 struct brl_context *(*brl_init)(TALLOC_CTX *, struct server_id , 26 struct loadparm_context *lp_ctx, 27 struct messaging_context *); 28 struct brl_handle *(*brl_create_handle)(TALLOC_CTX *, struct ntvfs_handle *, DATA_BLOB *); 29 NTSTATUS (*brl_lock)(struct brl_context *, 30 struct brl_handle *, 31 uint32_t , 32 uint64_t , uint64_t , 33 enum brl_type , 34 void *); 35 NTSTATUS (*brl_unlock)(struct brl_context *, 36 struct brl_handle *, 37 uint32_t , 38 uint64_t , uint64_t ); 39 NTSTATUS (*brl_remove_pending)(struct brl_context *, 40 struct brl_handle *, 41 void *); 42 NTSTATUS (*brl_locktest)(struct brl_context *, 43 struct brl_handle *, 44 uint32_t , 45 uint64_t , uint64_t , 46 enum brl_type ); 47 NTSTATUS (*brl_close)(struct brl_context *, 48 struct brl_handle *); 49}; 50 51 52void brl_set_ops(const struct brlock_ops *new_ops); 53void brl_tdb_init_ops(void); 54void brl_ctdb_init_ops(void); 55 56