Merge tag 'samba-4.1.1' into v4-1-test
[Samba.git] / source3 / librpc / idl / open_files.idl
blob686bc02548a7e6811188c723a4d815723f57ef1f
1 #include "idl_types.h"
3 import "server_id.idl";
4 import "security.idl";
5 import "file_id.idl";
8 pointer_default(unique)
11 interface open_files
13 typedef [public] struct {
14 server_id pid;
15 hyper op_mid;
16 uint16 op_type;
17 uint32 access_mask;
18 uint32 share_access;
19 uint32 private_options;
20 timeval time;
21 file_id id;
22 udlong share_file_id;
23 uint32 uid;
24 uint16 flags;
25 uint32 name_hash;
28 * In-memory flag indicating a non-existing pid. We don't want
29 * to store this share_mode_entry on disk.
31 [skip] boolean8 stale;
32 } share_mode_entry;
34 typedef [public] struct {
35 uint32 name_hash;
36 security_token *delete_nt_token;
37 security_unix_token *delete_token;
38 } delete_token;
40 typedef [public] struct {
41 [string,charset(UTF8)] char *servicepath;
42 [string,charset(UTF8)] char *base_name;
43 [string,charset(UTF8)] char *stream_name;
44 file_id id;
45 uint32 num_share_modes;
46 [size_is(num_share_modes)] share_mode_entry share_modes[];
47 uint32 num_delete_tokens;
48 [size_is(num_delete_tokens)] delete_token delete_tokens[];
49 timespec old_write_time;
50 timespec changed_write_time;
51 [skip] boolean8 fresh;
52 [skip] boolean8 modified;
53 [ignore] db_record *record;
54 } share_mode_data;
56 /* these are 0x30 (48) characters */
57 const string VFS_DEFAULT_DURABLE_COOKIE_MAGIC =
58 "VFS_DEFAULT_DURABLE_COOKIE_MAGIC ";
59 const uint32 VFS_DEFAULT_DURABLE_COOKIE_VERSION = 0;
61 /* this corresponds to struct stat_ex (SMB_STRUCT_STAT) */
62 typedef struct {
63 hyper st_ex_dev;
64 hyper st_ex_ino;
65 hyper st_ex_mode;
66 hyper st_ex_nlink;
67 hyper st_ex_uid;
68 hyper st_ex_gid;
69 hyper st_ex_rdev;
70 hyper st_ex_size;
71 timespec st_ex_atime;
72 timespec st_ex_mtime;
73 timespec st_ex_ctime;
74 timespec st_ex_btime;
75 boolean8 st_ex_calculated_birthtime;
76 hyper st_ex_blksize;
77 hyper st_ex_blocks;
78 uint32 st_ex_flags;
79 uint32 st_ex_mask;
80 hyper vfs_private;
81 } vfs_default_durable_stat;
83 typedef [public] struct {
84 [value(VFS_DEFAULT_DURABLE_COOKIE_MAGIC),charset(DOS)] uint8 magic[0x30];
85 [value(VFS_DEFAULT_DURABLE_COOKIE_VERSION)] uint32 version;
86 boolean8 allow_reconnect;
87 file_id id;
88 [string,charset(UTF8)] char *servicepath;
89 [string,charset(UTF8)] char *base_name;
90 hyper initial_allocation_size;
91 hyper position_information;
92 boolean8 update_write_time_triggered;
93 boolean8 update_write_time_on_close;
94 boolean8 write_time_forced;
95 timespec close_write_time;
96 vfs_default_durable_stat stat_info;
97 } vfs_default_durable_cookie;