diff options
author | Stefan Metzmacher <metze@samba.org> | 2008-03-07 12:19:06 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2008-03-12 17:35:05 +0100 |
commit | c3643d0ec8c26d399c379bd15142e730027aa9f0 (patch) | |
tree | cab7d8647061b07a791affa34ee2a502e474261c /source4/ntvfs/sysdep/sys_lease.h | |
parent | 7ba236d78e02fb8413db8c6ac74b9e89e64e847b (diff) | |
download | samba-c3643d0ec8c26d399c379bd15142e730027aa9f0.tar.gz samba-c3643d0ec8c26d399c379bd15142e730027aa9f0.tar.xz samba-c3643d0ec8c26d399c379bd15142e730027aa9f0.zip |
ntvfs/sysdep: add sys_lease abstraction to later support kernel oplocks
metze
(This used to be commit b399f0c872f32bb791da196102a5872c20e62100)
Diffstat (limited to 'source4/ntvfs/sysdep/sys_lease.h')
-rw-r--r-- | source4/ntvfs/sysdep/sys_lease.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/source4/ntvfs/sysdep/sys_lease.h b/source4/ntvfs/sysdep/sys_lease.h new file mode 100644 index 0000000000..e53760fb1e --- /dev/null +++ b/source4/ntvfs/sysdep/sys_lease.h @@ -0,0 +1,65 @@ +/* + Unix SMB/CIFS implementation. + + Copyright (C) Stefan Metzmacher 2008 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "param/share.h" + +struct sys_lease_context; +struct opendb_entry; +struct messaging_context; + +typedef NTSTATUS (*sys_lease_send_break_fn)(struct messaging_context *, + struct opendb_entry *, + uint8_t level); + +struct sys_lease_ops { + const char *name; + NTSTATUS (*init)(struct sys_lease_context *ctx); + NTSTATUS (*setup)(struct sys_lease_context *ctx, + struct opendb_entry *e); + NTSTATUS (*update)(struct sys_lease_context *ctx, + struct opendb_entry *e); + NTSTATUS (*remove)(struct sys_lease_context *ctx, + struct opendb_entry *e); +}; + +struct sys_lease_context { + struct event_context *event_ctx; + struct messaging_context *msg_ctx; + sys_lease_send_break_fn break_send; + void *private_data; /* for use of backend */ + const struct sys_lease_ops *ops; +}; + +NTSTATUS sys_lease_register(const struct sys_lease_ops *ops); +NTSTATUS sys_lease_init(void); + +struct sys_lease_context *sys_lease_context_create(struct share_config *scfg, + TALLOC_CTX *mem_ctx, + struct event_context *ev, + struct messaging_context *msg_ctx, + sys_lease_send_break_fn break_send); + +NTSTATUS sys_lease_setup(struct sys_lease_context *ctx, + struct opendb_entry *e); + +NTSTATUS sys_lease_update(struct sys_lease_context *ctx, + struct opendb_entry *e); + +NTSTATUS sys_lease_remove(struct sys_lease_context *ctx, + struct opendb_entry *e); |