upcall.h 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * (C) 2001 Clemson University and The University of Chicago
  4. *
  5. * See COPYING in top-level directory.
  6. */
  7. #ifndef __UPCALL_H
  8. #define __UPCALL_H
  9. /*
  10. * Sanitized this header file to fix
  11. * 32-64 bit interaction issues between
  12. * client-core and device
  13. */
  14. struct orangefs_io_request_s {
  15. __s32 __pad1;
  16. __s32 buf_index;
  17. __s32 count;
  18. __s32 __pad2;
  19. __s64 offset;
  20. struct orangefs_object_kref refn;
  21. enum ORANGEFS_io_type io_type;
  22. __s32 readahead_size;
  23. };
  24. struct orangefs_lookup_request_s {
  25. __s32 sym_follow;
  26. __s32 __pad1;
  27. struct orangefs_object_kref parent_refn;
  28. char d_name[ORANGEFS_NAME_MAX];
  29. };
  30. struct orangefs_create_request_s {
  31. struct orangefs_object_kref parent_refn;
  32. struct ORANGEFS_sys_attr_s attributes;
  33. char d_name[ORANGEFS_NAME_MAX];
  34. };
  35. struct orangefs_symlink_request_s {
  36. struct orangefs_object_kref parent_refn;
  37. struct ORANGEFS_sys_attr_s attributes;
  38. char entry_name[ORANGEFS_NAME_MAX];
  39. char target[ORANGEFS_NAME_MAX];
  40. };
  41. struct orangefs_getattr_request_s {
  42. struct orangefs_object_kref refn;
  43. __u32 mask;
  44. __u32 __pad1;
  45. };
  46. struct orangefs_setattr_request_s {
  47. struct orangefs_object_kref refn;
  48. struct ORANGEFS_sys_attr_s attributes;
  49. };
  50. struct orangefs_remove_request_s {
  51. struct orangefs_object_kref parent_refn;
  52. char d_name[ORANGEFS_NAME_MAX];
  53. };
  54. struct orangefs_mkdir_request_s {
  55. struct orangefs_object_kref parent_refn;
  56. struct ORANGEFS_sys_attr_s attributes;
  57. char d_name[ORANGEFS_NAME_MAX];
  58. };
  59. struct orangefs_readdir_request_s {
  60. struct orangefs_object_kref refn;
  61. __u64 token;
  62. __s32 max_dirent_count;
  63. __s32 buf_index;
  64. };
  65. struct orangefs_readdirplus_request_s {
  66. struct orangefs_object_kref refn;
  67. __u64 token;
  68. __s32 max_dirent_count;
  69. __u32 mask;
  70. __s32 buf_index;
  71. __s32 __pad1;
  72. };
  73. struct orangefs_rename_request_s {
  74. struct orangefs_object_kref old_parent_refn;
  75. struct orangefs_object_kref new_parent_refn;
  76. char d_old_name[ORANGEFS_NAME_MAX];
  77. char d_new_name[ORANGEFS_NAME_MAX];
  78. };
  79. struct orangefs_statfs_request_s {
  80. __s32 fs_id;
  81. __s32 __pad1;
  82. };
  83. struct orangefs_truncate_request_s {
  84. struct orangefs_object_kref refn;
  85. __s64 size;
  86. };
  87. struct orangefs_ra_cache_flush_request_s {
  88. struct orangefs_object_kref refn;
  89. };
  90. struct orangefs_fs_mount_request_s {
  91. char orangefs_config_server[ORANGEFS_MAX_SERVER_ADDR_LEN];
  92. };
  93. struct orangefs_fs_umount_request_s {
  94. __s32 id;
  95. __s32 fs_id;
  96. char orangefs_config_server[ORANGEFS_MAX_SERVER_ADDR_LEN];
  97. };
  98. struct orangefs_getxattr_request_s {
  99. struct orangefs_object_kref refn;
  100. __s32 key_sz;
  101. __s32 __pad1;
  102. char key[ORANGEFS_MAX_XATTR_NAMELEN];
  103. };
  104. struct orangefs_setxattr_request_s {
  105. struct orangefs_object_kref refn;
  106. struct ORANGEFS_keyval_pair keyval;
  107. __s32 flags;
  108. __s32 __pad1;
  109. };
  110. struct orangefs_listxattr_request_s {
  111. struct orangefs_object_kref refn;
  112. __s32 requested_count;
  113. __s32 __pad1;
  114. __u64 token;
  115. };
  116. struct orangefs_removexattr_request_s {
  117. struct orangefs_object_kref refn;
  118. __s32 key_sz;
  119. __s32 __pad1;
  120. char key[ORANGEFS_MAX_XATTR_NAMELEN];
  121. };
  122. struct orangefs_op_cancel_s {
  123. __u64 op_tag;
  124. };
  125. struct orangefs_fsync_request_s {
  126. struct orangefs_object_kref refn;
  127. };
  128. enum orangefs_param_request_type {
  129. ORANGEFS_PARAM_REQUEST_SET = 1,
  130. ORANGEFS_PARAM_REQUEST_GET = 2
  131. };
  132. enum orangefs_param_request_op {
  133. ORANGEFS_PARAM_REQUEST_OP_ACACHE_TIMEOUT_MSECS = 1,
  134. ORANGEFS_PARAM_REQUEST_OP_ACACHE_HARD_LIMIT = 2,
  135. ORANGEFS_PARAM_REQUEST_OP_ACACHE_SOFT_LIMIT = 3,
  136. ORANGEFS_PARAM_REQUEST_OP_ACACHE_RECLAIM_PERCENTAGE = 4,
  137. ORANGEFS_PARAM_REQUEST_OP_PERF_TIME_INTERVAL_SECS = 5,
  138. ORANGEFS_PARAM_REQUEST_OP_PERF_HISTORY_SIZE = 6,
  139. ORANGEFS_PARAM_REQUEST_OP_PERF_RESET = 7,
  140. ORANGEFS_PARAM_REQUEST_OP_NCACHE_TIMEOUT_MSECS = 8,
  141. ORANGEFS_PARAM_REQUEST_OP_NCACHE_HARD_LIMIT = 9,
  142. ORANGEFS_PARAM_REQUEST_OP_NCACHE_SOFT_LIMIT = 10,
  143. ORANGEFS_PARAM_REQUEST_OP_NCACHE_RECLAIM_PERCENTAGE = 11,
  144. ORANGEFS_PARAM_REQUEST_OP_STATIC_ACACHE_TIMEOUT_MSECS = 12,
  145. ORANGEFS_PARAM_REQUEST_OP_STATIC_ACACHE_HARD_LIMIT = 13,
  146. ORANGEFS_PARAM_REQUEST_OP_STATIC_ACACHE_SOFT_LIMIT = 14,
  147. ORANGEFS_PARAM_REQUEST_OP_STATIC_ACACHE_RECLAIM_PERCENTAGE = 15,
  148. ORANGEFS_PARAM_REQUEST_OP_CLIENT_DEBUG = 16,
  149. ORANGEFS_PARAM_REQUEST_OP_CCACHE_TIMEOUT_SECS = 17,
  150. ORANGEFS_PARAM_REQUEST_OP_CCACHE_HARD_LIMIT = 18,
  151. ORANGEFS_PARAM_REQUEST_OP_CCACHE_SOFT_LIMIT = 19,
  152. ORANGEFS_PARAM_REQUEST_OP_CCACHE_RECLAIM_PERCENTAGE = 20,
  153. ORANGEFS_PARAM_REQUEST_OP_CAPCACHE_TIMEOUT_SECS = 21,
  154. ORANGEFS_PARAM_REQUEST_OP_CAPCACHE_HARD_LIMIT = 22,
  155. ORANGEFS_PARAM_REQUEST_OP_CAPCACHE_SOFT_LIMIT = 23,
  156. ORANGEFS_PARAM_REQUEST_OP_CAPCACHE_RECLAIM_PERCENTAGE = 24,
  157. ORANGEFS_PARAM_REQUEST_OP_TWO_MASK_VALUES = 25,
  158. ORANGEFS_PARAM_REQUEST_OP_READAHEAD_SIZE = 26,
  159. ORANGEFS_PARAM_REQUEST_OP_READAHEAD_COUNT = 27,
  160. ORANGEFS_PARAM_REQUEST_OP_READAHEAD_COUNT_SIZE = 28,
  161. ORANGEFS_PARAM_REQUEST_OP_READAHEAD_READCNT = 29,
  162. };
  163. struct orangefs_param_request_s {
  164. enum orangefs_param_request_type type;
  165. enum orangefs_param_request_op op;
  166. union {
  167. __s64 value64;
  168. __s32 value32[2];
  169. } u;
  170. char s_value[ORANGEFS_MAX_DEBUG_STRING_LEN];
  171. };
  172. enum orangefs_perf_count_request_type {
  173. ORANGEFS_PERF_COUNT_REQUEST_ACACHE = 1,
  174. ORANGEFS_PERF_COUNT_REQUEST_NCACHE = 2,
  175. ORANGEFS_PERF_COUNT_REQUEST_CAPCACHE = 3,
  176. };
  177. struct orangefs_perf_count_request_s {
  178. enum orangefs_perf_count_request_type type;
  179. __s32 __pad1;
  180. };
  181. struct orangefs_fs_key_request_s {
  182. __s32 fsid;
  183. __s32 __pad1;
  184. };
  185. /* 2.9.6 */
  186. struct orangefs_features_request_s {
  187. __u64 features;
  188. };
  189. struct orangefs_upcall_s {
  190. __s32 type;
  191. __u32 uid;
  192. __u32 gid;
  193. int pid;
  194. int tgid;
  195. /* Trailers unused but must be retained for protocol compatibility. */
  196. __s64 trailer_size;
  197. char *trailer_buf;
  198. union {
  199. struct orangefs_io_request_s io;
  200. struct orangefs_lookup_request_s lookup;
  201. struct orangefs_create_request_s create;
  202. struct orangefs_symlink_request_s sym;
  203. struct orangefs_getattr_request_s getattr;
  204. struct orangefs_setattr_request_s setattr;
  205. struct orangefs_remove_request_s remove;
  206. struct orangefs_mkdir_request_s mkdir;
  207. struct orangefs_readdir_request_s readdir;
  208. struct orangefs_readdirplus_request_s readdirplus;
  209. struct orangefs_rename_request_s rename;
  210. struct orangefs_statfs_request_s statfs;
  211. struct orangefs_truncate_request_s truncate;
  212. struct orangefs_ra_cache_flush_request_s ra_cache_flush;
  213. struct orangefs_fs_mount_request_s fs_mount;
  214. struct orangefs_fs_umount_request_s fs_umount;
  215. struct orangefs_getxattr_request_s getxattr;
  216. struct orangefs_setxattr_request_s setxattr;
  217. struct orangefs_listxattr_request_s listxattr;
  218. struct orangefs_removexattr_request_s removexattr;
  219. struct orangefs_op_cancel_s cancel;
  220. struct orangefs_fsync_request_s fsync;
  221. struct orangefs_param_request_s param;
  222. struct orangefs_perf_count_request_s perf_count;
  223. struct orangefs_fs_key_request_s fs_key;
  224. struct orangefs_features_request_s features;
  225. } req;
  226. };
  227. #endif /* __UPCALL_H */