4 IDL structures for notify change code
6 this defines the structures used in the notify database code, and
7 the change notify buffers
11 pointer_default(unique)
16 /* structure used in the notify database */
17 typedef [public] struct {
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 */
24 uint32 path_len
; /* saves some computation on search */
28 typedef [public] struct {
30 notify_entry entries
[num_entries
];
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.
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
46 uint32 max_mask_subdir
;
48 notify_entry entries
[num_entries
];
51 typedef [public] struct {
53 notify_depth depth
[num_depths
];
56 /* structure sent between servers in notify messages */
57 typedef [public] struct {