dnotify.h
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef _LINUX_DNOTIFY_H
  2. #define _LINUX_DNOTIFY_H
  3. /*
  4.  * Directory notification for Linux
  5.  *
  6.  * Copyright (C) 2000,2002 Stephen Rothwell
  7.  */
  8. #include <linux/fs.h>
  9. struct dnotify_struct {
  10. struct dnotify_struct * dn_next;
  11. unsigned long dn_mask;
  12. int dn_fd;
  13. struct file * dn_filp;
  14. fl_owner_t dn_owner;
  15. };
  16. #ifdef __KERNEL__
  17. #include <linux/config.h>
  18. #ifdef CONFIG_DNOTIFY
  19. extern void __inode_dir_notify(struct inode *, unsigned long);
  20. extern void dnotify_flush(struct file *, fl_owner_t);
  21. extern int fcntl_dirnotify(int, struct file *, unsigned long);
  22. extern void dnotify_parent(struct dentry *, unsigned long);
  23. static inline void inode_dir_notify(struct inode *inode, unsigned long event)
  24. {
  25. if (inode->i_dnotify_mask & (event))
  26. __inode_dir_notify(inode, event);
  27. }
  28. #else
  29. static inline void __inode_dir_notify(struct inode *inode, unsigned long event)
  30. {
  31. }
  32. static inline void dnotify_flush(struct file *filp, fl_owner_t id)
  33. {
  34. }
  35. static inline int fcntl_dirnotify(int fd, struct file *filp, unsigned long arg)
  36. {
  37. return -EINVAL;
  38. }
  39. static inline void dnotify_parent(struct dentry *dentry, unsigned long event)
  40. {
  41. }
  42. static inline void inode_dir_notify(struct inode *inode, unsigned long event)
  43. {
  44. }
  45. #endif /* CONFIG_DNOTIFY */
  46. #endif /* __KERNEL __ */
  47. #endif /* _LINUX_DNOTIFY_H */