smbd: Remove "have_share_modes" from "struct share_mode_data"
[Samba.git] / source3 / librpc / idl / open_files.idl
blob49bc09d77b6baa903616e56676a499023638b1e7
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 [public] struct {
16 server_id pid;
17 hyper op_mid;
18 uint16 op_type;
19 GUID client_guid;
20 smb2_lease_key lease_key;
21 uint32 access_mask;
22 uint32 share_access;
23 uint32 private_options;
24 timeval time;
25 udlong share_file_id;
26 uint32 uid;
27 uint16 flags;
28 uint32 name_hash;
31 * In-memory flag indicating a non-existing pid. We don't want
32 * to store this share_mode_entry on disk.
34 [skip] boolean8 stale;
35 } share_mode_entry;
37 typedef [public] struct {
38 uint32 name_hash;
39 security_token *delete_nt_token;
40 security_unix_token *delete_token;
41 } delete_token;
43 typedef [public,bitmap16bit] bitmap {
44 SHARE_MODE_SHARE_DELETE = 0x100,
45 SHARE_MODE_SHARE_WRITE = 0x080,
46 SHARE_MODE_SHARE_READ = 0x040,
47 SHARE_MODE_ACCESS_DELETE = 0x020,
48 SHARE_MODE_ACCESS_WRITE = 0x010,
49 SHARE_MODE_ACCESS_READ = 0x008,
50 SHARE_MODE_LEASE_HANDLE = 0x004,
51 SHARE_MODE_LEASE_WRITE = 0x002,
52 SHARE_MODE_LEASE_READ = 0x001
53 } share_mode_flags;
55 typedef [public] struct {
56 hyper unique_content_epoch;
57 share_mode_flags flags;
58 [string,charset(UTF8)] char *servicepath;
59 [string,charset(UTF8)] char *base_name;
60 [string,charset(UTF8)] char *stream_name;
61 uint32 num_delete_tokens;
62 [size_is(num_delete_tokens)] delete_token delete_tokens[];
63 NTTIME old_write_time;
64 NTTIME changed_write_time;
65 [skip] boolean8 fresh;
66 [skip] boolean8 modified;
67 [ignore] file_id id; /* In memory key used to lookup cache. */
68 } share_mode_data;
70 /* these are 0x30 (48) characters */
71 const string VFS_DEFAULT_DURABLE_COOKIE_MAGIC =
72 "VFS_DEFAULT_DURABLE_COOKIE_MAGIC ";
73 const uint32 VFS_DEFAULT_DURABLE_COOKIE_VERSION = 0;
75 /* this corresponds to struct stat_ex (SMB_STRUCT_STAT) */
76 typedef struct {
77 hyper st_ex_dev;
78 hyper st_ex_ino;
79 hyper st_ex_mode;
80 hyper st_ex_nlink;
81 hyper st_ex_uid;
82 hyper st_ex_gid;
83 hyper st_ex_rdev;
84 hyper st_ex_size;
85 timespec st_ex_atime;
86 timespec st_ex_mtime;
87 timespec st_ex_ctime;
88 timespec st_ex_btime;
89 hyper st_ex_blksize;
90 hyper st_ex_blocks;
91 uint32 st_ex_flags;
92 uint32 st_ex_iflags;
93 } vfs_default_durable_stat;
95 typedef [public] struct {
96 [value(VFS_DEFAULT_DURABLE_COOKIE_MAGIC),charset(DOS)] uint8 magic[0x30];
97 [value(VFS_DEFAULT_DURABLE_COOKIE_VERSION)] uint32 version;
98 boolean8 allow_reconnect;
99 file_id id;
100 [string,charset(UTF8)] char *servicepath;
101 [string,charset(UTF8)] char *base_name;
102 hyper initial_allocation_size;
103 hyper position_information;
104 boolean8 update_write_time_triggered;
105 boolean8 update_write_time_on_close;
106 boolean8 write_time_forced;
107 NTTIME close_write_time;
108 vfs_default_durable_stat stat_info;
109 } vfs_default_durable_cookie;
111 typedef [public] struct {
112 file_id id;
113 udlong share_file_id;
114 uint8 break_to;
115 } oplock_break_message;
117 typedef [public] struct {
118 file_id id;
119 udlong share_file_id;
120 [string,charset(UTF8)] char *servicepath;
121 [string,charset(UTF8)] char *base_name;
122 [string,charset(UTF8)] char *stream_name;
123 } file_rename_message;