/core/10.4/fusefs/fuse_vnops.h

http://macfuse.googlecode.com/ · C Header · 232 lines · 135 code · 75 blank · 22 comment · 0 complexity · 5da0f2e6f14563c75fd281bc925e00f6 MD5 · raw file

  1. /*
  2. * Copyright (C) 2006 Google. All Rights Reserved.
  3. * Amit Singh <singh@>
  4. */
  5. #ifndef _FUSE_VNOPS_H_
  6. #define _FUSE_VNOPS_H_
  7. #include <fuse_param.h>
  8. typedef int (*fuse_vnode_op_t)(void *);
  9. #if M_MACFUSE_ENABLE_FIFOFS
  10. typedef int (*fuse_fifo_op_t)(void *);
  11. #endif
  12. #if M_MACFUSE_ENABLE_SPECFS
  13. typedef int (*fuse_spec_op_t)(void *);
  14. #endif
  15. /*
  16. * VNOPs
  17. */
  18. static int fuse_vnop_access(struct vnop_access_args *ap);
  19. // static int fuse_vnop_advlock(struct vnop_advlock_args *ap);
  20. // static int fuse_vnop_allocate(struct vnop_allocate_args *ap);
  21. static int fuse_vnop_blktooff(struct vnop_blktooff_args *ap);
  22. static int fuse_vnop_blockmap(struct vnop_blockmap_args *ap);
  23. // static int fuse_vnop_bwrite(struct vnop_bwrite_args *ap);
  24. static int fuse_vnop_close(struct vnop_close_args *ap);
  25. // static int fuse_vnop_copyfile(struct vnop_copyfile_args *ap);
  26. static int fuse_vnop_create(struct vnop_create_args *ap);
  27. static int fuse_vnop_exchange(struct vnop_exchange_args *ap);
  28. static int fuse_vnop_fsync(struct vnop_fsync_args *ap);
  29. static int fuse_vnop_getattr(struct vnop_getattr_args *ap);
  30. // static int fuse_vnop_getattrlist(struct vnop_getattrlist_args *ap);
  31. // static int fuse_vnop_getnamedstream(struct vnop_getnamedstream_args *ap);
  32. #if M_MACFUSE_ENABLE_XATTR
  33. static int fuse_vnop_getxattr(struct vnop_getxattr_args *ap);
  34. #endif
  35. static int fuse_vnop_inactive(struct vnop_inactive_args *ap);
  36. static int fuse_vnop_ioctl(struct vnop_ioctl_args *ap);
  37. #if M_MACFUSE_ENABLE_KQUEUE
  38. static int fuse_vnop_kqfilt_add(struct vnop_kqfilt_add_args *ap);
  39. static int fuse_vnop_kqfilt_remove(struct vnop_kqfilt_remove_args *ap);
  40. #endif
  41. static int fuse_vnop_link(struct vnop_link_args *ap);
  42. #if M_MACFUSE_ENABLE_XATTR
  43. static int fuse_vnop_listxattr(struct vnop_listxattr_args *ap);
  44. #endif
  45. static int fuse_vnop_lookup(struct vnop_lookup_args *ap);
  46. // static int fuse_vnop_makenamedstream(struct fuse_makenamedstream_args *ap);
  47. static int fuse_vnop_mkdir(struct vnop_mkdir_args *ap);
  48. static int fuse_vnop_mknod(struct vnop_mknod_args *ap);
  49. static int fuse_vnop_mmap(struct vnop_mmap_args *ap);
  50. static int fuse_vnop_mnomap(struct vnop_mnomap_args *ap);
  51. static int fuse_vnop_offtoblk(struct vnop_offtoblk_args *ap);
  52. static int fuse_vnop_open(struct vnop_open_args *ap);
  53. static int fuse_vnop_pagein(struct vnop_pagein_args *ap);
  54. static int fuse_vnop_pageout(struct vnop_pageout_args *ap);
  55. static int fuse_vnop_pathconf(struct vnop_pathconf_args *ap);
  56. static int fuse_vnop_read(struct vnop_read_args *ap);
  57. static int fuse_vnop_readdir(struct vnop_readdir_args *ap);
  58. // static int fuse_vnop_readdirattr(struct vnop_readdirattr_args *ap);
  59. static int fuse_vnop_readlink(struct vnop_readlink_args *ap);
  60. static int fuse_vnop_reclaim(struct vnop_reclaim_args *ap);
  61. static int fuse_vnop_remove(struct vnop_remove_args *ap);
  62. // static int fuse_vnop_readnamedstream(struct vnop_readnamedstream_args *ap);
  63. #if M_MACFUSE_ENABLE_XATTR
  64. static int fuse_vnop_removexattr(struct vnop_removexattr_args *ap);
  65. #endif
  66. static int fuse_vnop_rename(struct vnop_rename_args *ap);
  67. static int fuse_vnop_revoke(struct vnop_revoke_args *ap);
  68. static int fuse_vnop_rmdir(struct vnop_rmdir_args *ap);
  69. // static int fuse_vnop_searchfs(struct vnop_searchfs_args *ap);
  70. static int fuse_vnop_select(struct vnop_select_args *ap);
  71. static int fuse_vnop_setattr(struct vnop_setattr_args *ap);
  72. // static int fuse_vnop_setlabel(struct vnop_setlabel_args *ap);
  73. // static int fuse_vnop_setattrlist (struct vnop_setattrlist_args *ap);
  74. #if M_MACFUSE_ENABLE_XATTR
  75. static int fuse_vnop_setxattr(struct vnop_setxattr_args *ap);
  76. #endif
  77. static int fuse_vnop_strategy(struct vnop_strategy_args *ap);
  78. static int fuse_vnop_symlink(struct vnop_symlink_args *ap);
  79. // static int fuse_vnop_whiteout(struct vnop_whiteout_args *ap);
  80. static int fuse_vnop_write(struct vnop_write_args *ap);
  81. #if M_MACFUSE_ENABLE_FIFOFS
  82. /* fifofs */
  83. int fifo_ebadf(void *);
  84. static int fuse_fifo_vnop_close(struct vnop_close_args *);
  85. static int fuse_fifo_vnop_read(struct vnop_read_args *);
  86. static int fuse_fifo_vnop_write(struct vnop_write_args *);
  87. int fifo_advlock(struct vnop_advlock_args *);
  88. int fifo_close(struct vnop_close_args *);
  89. int fifo_inactive(struct vnop_inactive_args *);
  90. int fifo_ioctl(struct vnop_ioctl_args *);
  91. int fifo_lookup(struct vnop_lookup_args *);
  92. int fifo_open(struct vnop_open_args *);
  93. int fifo_pathconf(struct vnop_pathconf_args *);
  94. int fifo_read(struct vnop_read_args *);
  95. int fifo_select(struct vnop_select_args *);
  96. int fifo_write(struct vnop_write_args *);
  97. #define fifo_access (int (*)(struct vnop_access_args *))fifo_ebadf
  98. #define fifo_blktooff (int (*)(struct vnop_blktooff_args *))err_blktooff
  99. #define fifo_bwrite (int (*)(struct vnop_bwrite_args *))nullop
  100. #define fifo_create (int (*)(struct vnop_create_args *))err_create
  101. #define fifo_fsync (int (*)(struct vnop_fsync_args *))nullop
  102. #define fifo_getattr (int (*)(struct vnop_getattr_args *))fifo_ebadf
  103. #define fifo_link (int (*)(struct vnop_link_args *))err_link
  104. #define fifo_mkdir (int (*)(struct vnop_mkdir_args *))err_mkdir
  105. #define fifo_mknod (int (*)(struct vnop_mknod_args *))err_mknod
  106. #define fifo_mmap (int (*)(struct vnop_mmap_args *))err_mmap
  107. #define fifo_readdir (int (*)(struct vnop_readdir_args *))err_readdir
  108. #define fifo_readlink (int (*)(struct vnop_readlink_args *))err_readlink
  109. #define fifo_reclaim (int (*)(struct vnop_reclaim_args *))nullop
  110. #define fifo_remove (int (*)(struct vnop_remove_args *))err_remove
  111. #define fifo_rename (int (*)(struct vnop_rename_args *))err_rename
  112. #define fifo_revoke (int (*)(struct vnop_revoke_args *))nop_revoke
  113. #define fifo_rmdir (int (*)(struct vnop_rmdir_args *))err_rmdir
  114. #define fifo_setattr (int (*)(struct vnop_setattr_args *))fifo_ebadf
  115. #define fifo_strategy (int (*)(struct vnop_strategy_args *))err_strategy
  116. #define fifo_symlink (int (*)(struct vnop_symlink_args *))err_symlink
  117. #endif /* M_MACFUSE_ENABLE_FIFOFS */
  118. #if M_MACFUSE_ENABLE_SPECFS
  119. /* specfs */
  120. int spec_ebadf(void *);
  121. static int fuse_spec_vnop_close(struct vnop_close_args *);
  122. static int fuse_spec_vnop_read(struct vnop_read_args *);
  123. static int fuse_spec_vnop_write(struct vnop_write_args *);
  124. int spec_blktooff(struct vnop_blktooff_args *);
  125. int spec_blockmap(struct vnop_blockmap_args *);
  126. int spec_close(struct vnop_close_args *);
  127. int spec_fsync(struct vnop_fsync_args *);
  128. int spec_ioctl(struct vnop_ioctl_args *);
  129. int spec_lookup(struct vnop_lookup_args *);
  130. int spec_offtoblk(struct vnop_offtoblk_args *);
  131. int spec_open(struct vnop_open_args *);
  132. int spec_pathconf(struct vnop_pathconf_args *);
  133. int spec_read(struct vnop_read_args *);
  134. int spec_select(struct vnop_select_args *);
  135. int spec_strategy(struct vnop_strategy_args *);
  136. int spec_write(struct vnop_write_args *);
  137. #define spec_access (int (*)(struct vnop_access_args *))spec_ebadf
  138. #define spec_advlock (int (*)(struct vnop_advlock_args *))err_advlock
  139. #define spec_bwrite (int (*)(struct vnop_bwrite_args *))nop_bwrite
  140. #define spec_create (int (*)(struct vnop_create_args *))err_create
  141. #define spec_getattr (int (*)(struct vnop_getattr_args *))spec_ebadf
  142. #define spec_inactive (int (*)(struct vnop_inactive_args *))nop_inactive
  143. #define spec_link (int (*)(struct vnop_link_args *))err_link
  144. #define spec_mkdir (int (*)(struct vnop_mkdir_args *))err_mkdir
  145. #define spec_mknod (int (*)(struct vnop_mknod_args *))err_mknod
  146. #define spec_mmap (int (*)(struct vnop_mmap_args *))err_mmap
  147. #define spec_readdir (int (*)(struct vnop_readdir_args *))err_readdir
  148. #define spec_readlink (int (*)(struct vnop_readlink_args *))err_readlink
  149. #define spec_reclaim (int (*)(struct vnop_reclaim_args *))nop_reclaim
  150. #define spec_remove (int (*)(struct vnop_remove_args *))err_remove
  151. #define spec_rename (int (*)(struct vnop_rename_args *))err_rename
  152. #define spec_revoke (int (*)(struct vnop_revoke_args *))nop_revoke
  153. #define spec_rmdir (int (*)(struct vnop_rmdir_args *))err_rmdir
  154. #define spec_setattr (int (*)(struct vnop_setattr_args *))spec_ebadf
  155. #define spec_symlink (int (*)(struct vnop_symlink_args *))err_symlink
  156. #endif /* M_MACFUSE_ENABLE_SPECFS */
  157. #endif /* _FUSE_VNOPS_H_ */