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 18enum { 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) 56enum { 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