xref: /haiku/headers/private/kernel/fs/node_monitor.h (revision bb674499f8713cb5a125c7718c3d108f8f440b04)
1*bb674499SAxel Dörfler /*
2*bb674499SAxel Dörfler  * Copyright 2003-2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3*bb674499SAxel Dörfler  * Distributed under the terms of the MIT License.
4*bb674499SAxel Dörfler  */
5f9bdcca5SAxel Dörfler #ifndef _KERNEL_NODE_MONITOR_H
6f9bdcca5SAxel Dörfler #define _KERNEL_NODE_MONITOR_H
7f9bdcca5SAxel Dörfler 
8f9bdcca5SAxel Dörfler 
9*bb674499SAxel Dörfler #include <fs_interface.h>
10f9bdcca5SAxel Dörfler 
11f9bdcca5SAxel Dörfler 
12f9bdcca5SAxel Dörfler struct io_context;
13f9bdcca5SAxel Dörfler 
1450ba16fcSAxel Dörfler #ifdef __cplusplus
1550ba16fcSAxel Dörfler extern "C" {
1650ba16fcSAxel Dörfler #endif
1750ba16fcSAxel Dörfler 
18f9bdcca5SAxel Dörfler // private kernel API
19f9bdcca5SAxel Dörfler extern status_t remove_node_monitors(struct io_context *context);
20f9bdcca5SAxel Dörfler extern status_t node_monitor_init(void);
21*bb674499SAxel Dörfler extern status_t notify_unmount(mount_id device);
22*bb674499SAxel Dörfler extern status_t notify_mount(mount_id device, mount_id parentDevice,
23*bb674499SAxel Dörfler 					vnode_id parentDirectory);
24f9bdcca5SAxel Dörfler 
25f9bdcca5SAxel Dörfler // user-space exported calls
26bb45cbbbSAxel Dörfler extern status_t _user_stop_notifying(port_id port, uint32 token);
27bb45cbbbSAxel Dörfler extern status_t _user_start_watching(dev_t device, ino_t node, uint32 flags,
28f9bdcca5SAxel Dörfler 					port_id port, uint32 token);
29bb45cbbbSAxel Dörfler extern status_t _user_stop_watching(dev_t device, ino_t node, uint32 flags,
30f9bdcca5SAxel Dörfler 					port_id port, uint32 token);
31f9bdcca5SAxel Dörfler 
3250ba16fcSAxel Dörfler #ifdef __cplusplus
3350ba16fcSAxel Dörfler }
3450ba16fcSAxel Dörfler #endif
3550ba16fcSAxel Dörfler 
36f9bdcca5SAxel Dörfler #endif	/* _KRENEL_NODE_MONITOR_H */
37