a462254ddf61ad69b94b091ea6999cf007958ba0
[metze/samba/wip.git] / source4 / ntvfs / common / brlock.h
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 2 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, write to the Free Software
20    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 */
22
23 struct brlock_ops {
24         struct brl_context *(*brl_init)(TALLOC_CTX *, struct server_id , 
25                                         struct messaging_context *);
26         struct brl_handle *(*brl_create_handle)(TALLOC_CTX *, struct ntvfs_handle *, DATA_BLOB *);
27         NTSTATUS (*brl_lock)(struct brl_context *,
28                              struct brl_handle *,
29                              uint16_t ,
30                              uint64_t , uint64_t , 
31                              enum brl_type ,
32                              void *);
33         NTSTATUS (*brl_unlock)(struct brl_context *,
34                                struct brl_handle *, 
35                                uint16_t ,
36                                uint64_t , uint64_t );
37         NTSTATUS (*brl_remove_pending)(struct brl_context *,
38                                        struct brl_handle *, 
39                                        void *);
40         NTSTATUS (*brl_locktest)(struct brl_context *,
41                                  struct brl_handle *,
42                                  uint16_t , 
43                                  uint64_t , uint64_t , 
44                                  enum brl_type );
45         NTSTATUS (*brl_close)(struct brl_context *,
46                               struct brl_handle *);
47 };
48
49
50 void brl_set_ops(const struct brlock_ops *new_ops);
51 void brl_tdb_init_ops(void);
52 void brl_ctdb_init_ops(void);
53