s4:lib/tls: fix build with gnutls 3.4
[Samba.git] / source3 / librpc / idl / open_files.idl
blob6f74340497b1d4b04c1febef5c1a12d7f5dc78b2
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,flag(NDR_PAHEX)] struct {
16 GUID client_guid;
17 smb2_lease_key lease_key;
18 smb2_lease_state current_state;
20 * 'breaking' indicates that we're waiting
21 * for a lease break ack from the client
22 * and breaking_to_requested and breaking_to_required
23 * have a meaning.
25 * breaking_to_requested is the value already sent to
26 * the client, the client needs to ack to this (or less).
28 * breaking_to_required is the internal value that needs to
29 * be reached before we can reset breaking = false, this
30 * may requires multiple roundtrips to the client, e.g.
31 * when the lease broken to a more reduced value, while
32 * the lease break is still in progress.
34 * The following can be assumed (if breaking == true):
36 * current_state > breaking_to_requested >= breaking_to_required
38 boolean8 breaking;
39 smb2_lease_state breaking_to_requested;
40 smb2_lease_state breaking_to_required;
41 uint16 lease_version;
42 uint16 epoch;
43 } share_mode_lease;
45 typedef [public] struct {
46 server_id pid;
47 hyper op_mid;
48 uint16 op_type;
49 uint32 lease_idx;
50 uint32 access_mask;
51 uint32 share_access;
52 uint32 private_options;
53 timeval time;
54 file_id id;
55 udlong share_file_id;
56 uint32 uid;
57 uint16 flags;
58 uint32 name_hash;
61 * In-memory flag indicating a non-existing pid. We don't want
62 * to store this share_mode_entry on disk.
64 [skip] boolean8 stale;
65 [skip] share_mode_lease *lease;
66 } share_mode_entry;
68 typedef [public] struct {
69 uint32 name_hash;
70 security_token *delete_nt_token;
71 security_unix_token *delete_token;
72 } delete_token;
74 typedef [public] struct {
75 hyper sequence_number;
76 [string,charset(UTF8)] char *servicepath;
77 [string,charset(UTF8)] char *base_name;
78 [string,charset(UTF8)] char *stream_name;
79 uint32 num_share_modes;
80 [size_is(num_share_modes)] share_mode_entry share_modes[];
81 uint32 num_leases;
82 [size_is(num_leases)] share_mode_lease leases[];
83 uint32 num_delete_tokens;
84 [size_is(num_delete_tokens)] delete_token delete_tokens[];
85 timespec old_write_time;
86 timespec changed_write_time;
87 [skip] boolean8 fresh;
88 [skip] boolean8 modified;
89 [ignore] db_record *record;
90 [ignore] file_id id; /* In memory key used to lookup cache. */
91 } share_mode_data;
93 /* these are 0x30 (48) characters */
94 const string VFS_DEFAULT_DURABLE_COOKIE_MAGIC =
95 "VFS_DEFAULT_DURABLE_COOKIE_MAGIC ";
96 const uint32 VFS_DEFAULT_DURABLE_COOKIE_VERSION = 0;
98 /* this corresponds to struct stat_ex (SMB_STRUCT_STAT) */
99 typedef struct {
100 hyper st_ex_dev;
101 hyper st_ex_ino;
102 hyper st_ex_mode;
103 hyper st_ex_nlink;
104 hyper st_ex_uid;
105 hyper st_ex_gid;
106 hyper st_ex_rdev;
107 hyper st_ex_size;
108 timespec st_ex_atime;
109 timespec st_ex_mtime;
110 timespec st_ex_ctime;
111 timespec st_ex_btime;
112 boolean8 st_ex_calculated_birthtime;
113 hyper st_ex_blksize;
114 hyper st_ex_blocks;
115 uint32 st_ex_flags;
116 uint32 st_ex_mask;
117 } vfs_default_durable_stat;
119 typedef [public] struct {
120 [value(VFS_DEFAULT_DURABLE_COOKIE_MAGIC),charset(DOS)] uint8 magic[0x30];
121 [value(VFS_DEFAULT_DURABLE_COOKIE_VERSION)] uint32 version;
122 boolean8 allow_reconnect;
123 file_id id;
124 [string,charset(UTF8)] char *servicepath;
125 [string,charset(UTF8)] char *base_name;
126 hyper initial_allocation_size;
127 hyper position_information;
128 boolean8 update_write_time_triggered;
129 boolean8 update_write_time_on_close;
130 boolean8 write_time_forced;
131 timespec close_write_time;
132 vfs_default_durable_stat stat_info;
133 } vfs_default_durable_cookie;