| 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 | 
 | 
|---|
| 24 | struct 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 | 
 | 
|---|
| 52 | void brl_set_ops(const struct brlock_ops *new_ops);
 | 
|---|
| 53 | void brl_tdb_init_ops(void);
 | 
|---|
| 54 | void brl_ctdb_init_ops(void);
 | 
|---|
| 55 | 
 | 
|---|