ctdb-tests: Update statd-callout tests to handle both modes
[samba4-gss.git] / source3 / librpc / idl / open_files.idl
blob401b0ec092fdc7a48edab435674aefb7f65d58cf
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 smb2_lease_key parent_lease_key;
49 security_token *delete_nt_token;
50 security_unix_token *delete_token;
51 } delete_token;
53 typedef [public,bitmap16bit] bitmap {
54 SHARE_MODE_SHARE_DELETE = 0x100,
55 SHARE_MODE_SHARE_WRITE = 0x080,
56 SHARE_MODE_SHARE_READ = 0x040,
57 SHARE_MODE_ACCESS_DELETE = 0x020,
58 SHARE_MODE_ACCESS_WRITE = 0x010,
59 SHARE_MODE_ACCESS_READ = 0x008,
60 SHARE_MODE_LEASE_HANDLE = 0x004,
61 SHARE_MODE_LEASE_WRITE = 0x002,
62 SHARE_MODE_LEASE_READ = 0x001
63 } share_mode_flags;
65 typedef [public] struct {
66 hyper unique_content_epoch;
67 share_mode_flags flags;
68 [string,charset(UTF8)] char *servicepath;
69 [string,charset(UTF8)] char *base_name;
70 [string,charset(UTF8)] char *stream_name;
71 uint32 num_delete_tokens;
72 [size_is(num_delete_tokens)] delete_token delete_tokens[];
73 NTTIME old_write_time;
74 NTTIME changed_write_time;
75 [skip] boolean8 not_stored;
76 [skip] boolean8 modified;
77 [ignore] file_id id; /* In memory key used to lookup cache. */
78 } share_mode_data;
80 /* these are 0x30 (48) characters */
81 const string VFS_DEFAULT_DURABLE_COOKIE_MAGIC =
82 "VFS_DEFAULT_DURABLE_COOKIE_MAGIC ";
83 const uint32 VFS_DEFAULT_DURABLE_COOKIE_VERSION = 0;
85 /* this corresponds to struct stat_ex (SMB_STRUCT_STAT) */
86 typedef struct {
87 hyper st_ex_dev;
88 hyper st_ex_ino;
89 hyper st_ex_mode;
90 hyper st_ex_nlink;
91 hyper st_ex_uid;
92 hyper st_ex_gid;
93 hyper st_ex_rdev;
94 hyper st_ex_size;
95 timespec st_ex_atime;
96 timespec st_ex_mtime;
97 timespec st_ex_ctime;
98 timespec st_ex_btime;
99 hyper st_ex_blksize;
100 hyper st_ex_blocks;
101 uint32 st_ex_flags;
102 uint32 st_ex_iflags;
103 } vfs_default_durable_stat;
105 typedef [public] struct {
106 [value(VFS_DEFAULT_DURABLE_COOKIE_MAGIC),charset(DOS)] uint8 magic[0x30];
107 [value(VFS_DEFAULT_DURABLE_COOKIE_VERSION)] uint32 version;
108 boolean8 allow_reconnect;
109 file_id id;
110 [string,charset(UTF8)] char *servicepath;
111 [string,charset(UTF8)] char *base_name;
112 hyper initial_allocation_size;
113 hyper position_information;
114 boolean8 update_write_time_triggered;
115 boolean8 update_write_time_on_close;
116 boolean8 write_time_forced;
117 NTTIME close_write_time;
118 vfs_default_durable_stat stat_info;
119 } vfs_default_durable_cookie;
121 typedef [public] struct {
122 file_id id;
123 udlong share_file_id;
124 uint8 break_to;
125 } oplock_break_message;
127 typedef [public] struct {
128 file_id id;
129 udlong share_file_id;
130 [string,charset(UTF8)] char *servicepath;
131 [string,charset(UTF8)] char *base_name;
132 [string,charset(UTF8)] char *stream_name;
133 } file_rename_message;