xref: /haiku/headers/private/fs_shell/fssh_node_monitor.h (revision b6f76ebe7153b94820cf35f8db4facc158841abb)
1 #ifndef _FSSH_NODE_MONITOR_H
2 #define _FSSH_NODE_MONITOR_H
3 /* Node monitor calls for kernel add-ons
4 **
5 ** Distributed under the terms of the MIT License.
6 */
7 
8 
9 #include "fssh_defs.h"
10 
11 
12 /* Flags for the watch_node() call.
13  *
14  * Note that B_WATCH_MOUNT is NOT included in B_WATCH_ALL.
15  * You may prefer to use BVolumeRoster for volume watching.
16  */
17 
18 enum {
19     FSSH_B_STOP_WATCHING		= 0x0000,
20 	FSSH_B_WATCH_NAME			= 0x0001,
21 	FSSH_B_WATCH_STAT			= 0x0002,
22 	FSSH_B_WATCH_ATTR			= 0x0004,
23 	FSSH_B_WATCH_DIRECTORY		= 0x0008,
24 	FSSH_B_WATCH_ALL			= 0x000f,
25 
26 	FSSH_B_WATCH_MOUNT			= 0x0010,
27 	FSSH_B_WATCH_INTERIM_STAT	= 0x0020
28 };
29 
30 
31 /* The "opcode" field of the B_NODE_MONITOR notification message you get.
32  *
33  * The presence and meaning of the other fields in that message specifying what
34  * exactly caused the notification depend on this value.
35  */
36 
37 #define	FSSH_B_ENTRY_CREATED	1
38 #define	FSSH_B_ENTRY_REMOVED	2
39 #define	FSSH_B_ENTRY_MOVED		3
40 #define	FSSH_B_STAT_CHANGED		4
41 #define	FSSH_B_ATTR_CHANGED		5
42 #define	FSSH_B_DEVICE_MOUNTED	6
43 #define	FSSH_B_DEVICE_UNMOUNTED	7
44 
45 
46 // More specific info in the "cause" field of B_ATTR_CHANGED notification
47 // messages. (Haiku only)
48 #define	FSSH_B_ATTR_CREATED		1
49 #define	FSSH_B_ATTR_REMOVED		2
50 //		FSSH_B_ATTR_CHANGED is reused
51 
52 
53 // More specific info in the "fields" field of B_STAT_CHANGED notification
54 // messages, specifying what parts of the stat data have actually been
55 // changed. (Haiku only)
56 enum {
57 	FSSH_B_STAT_MODE				= 0x0001,
58 	FSSH_B_STAT_UID					= 0x0002,
59 	FSSH_B_STAT_GID					= 0x0004,
60 	FSSH_B_STAT_SIZE				= 0x0008,
61 	FSSH_B_STAT_ACCESS_TIME			= 0x0010,
62 	FSSH_B_STAT_MODIFICATION_TIME	= 0x0020,
63 	FSSH_B_STAT_CREATION_TIME		= 0x0040,
64 	FSSH_B_STAT_CHANGE_TIME			= 0x0080,
65 	FSSH_B_STAT_INTERIM_UPDATE		= 0x1000
66 };
67 
68 
69 #endif	/* _FSSH_NODE_MONITOR_H */
70