• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt/router/samba-3.5.8/source3/librpc/idl/
1#include "idl_types.h"
2
3/*
4   IDL structures for notify change code
5
6   this defines the structures used in the notify database code, and
7   the change notify buffers
8*/
9
10[
11  pointer_default(unique)
12]
13interface notify
14{
15
16	/* structure used in the notify database */
17	typedef [public] struct {
18		server_id server;
19		uint32 filter; /* filter to apply in this directory */
20		uint32 subdir_filter; /* filter to apply in child directories */
21		uint32 dir_fd;   /* fd of open directory */
22		file_id dir_id;  /* file_id of open directory */
23		utf8string path;
24		uint32 path_len; /* saves some computation on search */
25		pointer private_data;
26	} notify_entry;
27
28	typedef [public] struct {
29		uint32 num_entries;
30		notify_entry entries[num_entries];
31	} notify_entry_array;
32
33	/*
34	  to allow for efficient search for matching entries, we
35	  divide them by the directory depth, with a separate array
36	  per depth. The entries within each depth are sorted by path,
37	  allowing for a bisection search.
38
39	  The max_mask and max_mask_subdir at each depth is the
40	  bitwise or of the filters and subdir filters for all entries
41	  at that depth. This allows a depth to be quickly skipped if
42	  no entries will match the target filter	  
43	*/
44	typedef struct {
45		uint32 max_mask;
46		uint32 max_mask_subdir;
47		uint32 num_entries;
48		notify_entry entries[num_entries];
49	} notify_depth;
50
51	typedef [public] struct {
52		uint32 num_depths;
53		notify_depth depth[num_depths];
54	} notify_array;
55
56	/* structure sent between servers in notify messages */
57	typedef [public] struct {
58		uint32 action;
59		utf8string path;
60		pointer private_data;
61	} notify_event;
62
63}
64