vfs_ceph: Disable the module on unsupported Ceph versions
[Samba.git] / source3 / librpc / idl / open_files.idl
blob5dea021ff9a97ec4ef24e25b2d98621d17d7acba
1 #include "idl_types.h"
3 import "server_id.idl";
4 import "security.idl";
5 import "file_id.idl";
6 import "smb2_lease_struct.idl";
7 import "misc.idl";
10 pointer_default(unique)
13 interface open_files
15 typedef [enum16bit] enum {
16 SHARE_MODE_ENTRY_OP_TYPE_NONE = 0,
17 SHARE_MODE_ENTRY_OP_TYPE_EXCLUSIVE = 1,
18 SHARE_MODE_ENTRY_OP_TYPE_BATCH_WITHOUT_EXCLUSIVE = 2,
19 SHARE_MODE_ENTRY_OP_TYPE_BATCH = 3,
20 SHARE_MODE_ENTRY_OP_TYPE_LEVEL_II = 4,
21 SHARE_MODE_ENTRY_OP_TYPE_LEASE = 0x100
22 } share_mode_entry_op_type;
24 typedef [public] struct {
25 server_id pid;
26 hyper op_mid;
27 share_mode_entry_op_type op_type;
28 GUID client_guid;
29 smb2_lease_key lease_key;
30 uint32 access_mask;
31 uint32 share_access;
32 uint32 private_options;
33 timeval time;
34 udlong share_file_id;
35 uint32 uid;
36 uint16 flags;
37 uint32 name_hash;
40 * In-memory flag indicating a non-existing pid. We don't want
41 * to store this share_mode_entry on disk.
43 [skip] boolean8 stale;
44 } share_mode_entry;
46 typedef [public] struct {
47 uint32 name_hash;
48 security_token *delete_nt_token;
49 security_unix_token *delete_token;
50 } delete_token;
52 typedef [public,bitmap16bit] bitmap {
53 SHARE_MODE_SHARE_DELETE = 0x100,
54 SHARE_MODE_SHARE_WRITE = 0x080,
55 SHARE_MODE_SHARE_READ = 0x040,
56 SHARE_MODE_ACCESS_DELETE = 0x020,
57 SHARE_MODE_ACCESS_WRITE = 0x010,
58 SHARE_MODE_ACCESS_READ = 0x008,
59 SHARE_MODE_LEASE_HANDLE = 0x004,
60 SHARE_MODE_LEASE_WRITE = 0x002,
61 SHARE_MODE_LEASE_READ = 0x001
62 } share_mode_flags;
64 typedef [public] struct {
65 hyper unique_content_epoch;
66 share_mode_flags flags;
67 [string,charset(UTF8)] char *servicepath;
68 [string,charset(UTF8)] char *base_name;
69 [string,charset(UTF8)] char *stream_name;
70 uint32 num_delete_tokens;
71 [size_is(num_delete_tokens)] delete_token delete_tokens[];
72 NTTIME old_write_time;
73 NTTIME changed_write_time;
74 [skip] boolean8 not_stored;
75 [skip] boolean8 modified;
76 [ignore] file_id id; /* In memory key used to lookup cache. */
77 } share_mode_data;
79 /* these are 0x30 (48) characters */
80 const string VFS_DEFAULT_DURABLE_COOKIE_MAGIC =
81 "VFS_DEFAULT_DURABLE_COOKIE_MAGIC ";
82 const uint32 VFS_DEFAULT_DURABLE_COOKIE_VERSION = 0;
84 /* this corresponds to struct stat_ex (SMB_STRUCT_STAT) */
85 typedef struct {
86 hyper st_ex_dev;
87 hyper st_ex_ino;
88 hyper st_ex_mode;
89 hyper st_ex_nlink;
90 hyper st_ex_uid;
91 hyper st_ex_gid;
92 hyper st_ex_rdev;
93 hyper st_ex_size;
94 timespec st_ex_atime;
95 timespec st_ex_mtime;
96 timespec st_ex_ctime;
97 timespec st_ex_btime;
98 hyper st_ex_blksize;
99 hyper st_ex_blocks;
100 uint32 st_ex_flags;
101 uint32 st_ex_iflags;
102 } vfs_default_durable_stat;
104 typedef [public] struct {
105 [value(VFS_DEFAULT_DURABLE_COOKIE_MAGIC),charset(DOS)] uint8 magic[0x30];
106 [value(VFS_DEFAULT_DURABLE_COOKIE_VERSION)] uint32 version;
107 boolean8 allow_reconnect;
108 file_id id;
109 [string,charset(UTF8)] char *servicepath;
110 [string,charset(UTF8)] char *base_name;
111 hyper initial_allocation_size;
112 hyper position_information;
113 boolean8 update_write_time_triggered;
114 boolean8 update_write_time_on_close;
115 boolean8 write_time_forced;
116 NTTIME close_write_time;
117 vfs_default_durable_stat stat_info;
118 } vfs_default_durable_cookie;
120 typedef [public] struct {
121 file_id id;
122 udlong share_file_id;
123 uint8 break_to;
124 } oplock_break_message;
126 typedef [public] struct {
127 file_id id;
128 udlong share_file_id;
129 [string,charset(UTF8)] char *servicepath;
130 [string,charset(UTF8)] char *base_name;
131 [string,charset(UTF8)] char *stream_name;
132 } file_rename_message;