1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2f7ab093fSMike Marshall /* 3f7ab093fSMike Marshall * (C) 2001 Clemson University and The University of Chicago 4f7ab093fSMike Marshall * 5f7ab093fSMike Marshall * See COPYING in top-level directory. 6f7ab093fSMike Marshall */ 7f7ab093fSMike Marshall 8f7ab093fSMike Marshall #ifndef __UPCALL_H 9f7ab093fSMike Marshall #define __UPCALL_H 10f7ab093fSMike Marshall 11f7ab093fSMike Marshall /* 12f7ab093fSMike Marshall * Sanitized this header file to fix 13f7ab093fSMike Marshall * 32-64 bit interaction issues between 14f7ab093fSMike Marshall * client-core and device 15f7ab093fSMike Marshall */ 168bb8aefdSYi Liu struct orangefs_io_request_s { 179c2bcf28SMartin Brandenburg __s32 __pad1; 18f7ab093fSMike Marshall __s32 buf_index; 19f7ab093fSMike Marshall __s32 count; 209c2bcf28SMartin Brandenburg __s32 __pad2; 21f7ab093fSMike Marshall __s64 offset; 228bb8aefdSYi Liu struct orangefs_object_kref refn; 238bb8aefdSYi Liu enum ORANGEFS_io_type io_type; 24f7ab093fSMike Marshall __s32 readahead_size; 25f7ab093fSMike Marshall }; 26f7ab093fSMike Marshall 278bb8aefdSYi Liu struct orangefs_lookup_request_s { 28f7ab093fSMike Marshall __s32 sym_follow; 29f7ab093fSMike Marshall __s32 __pad1; 308bb8aefdSYi Liu struct orangefs_object_kref parent_refn; 3147b4948fSMartin Brandenburg char d_name[ORANGEFS_NAME_MAX]; 32f7ab093fSMike Marshall }; 33f7ab093fSMike Marshall 348bb8aefdSYi Liu struct orangefs_create_request_s { 358bb8aefdSYi Liu struct orangefs_object_kref parent_refn; 368bb8aefdSYi Liu struct ORANGEFS_sys_attr_s attributes; 3747b4948fSMartin Brandenburg char d_name[ORANGEFS_NAME_MAX]; 38f7ab093fSMike Marshall }; 39f7ab093fSMike Marshall 408bb8aefdSYi Liu struct orangefs_symlink_request_s { 418bb8aefdSYi Liu struct orangefs_object_kref parent_refn; 428bb8aefdSYi Liu struct ORANGEFS_sys_attr_s attributes; 4347b4948fSMartin Brandenburg char entry_name[ORANGEFS_NAME_MAX]; 4447b4948fSMartin Brandenburg char target[ORANGEFS_NAME_MAX]; 45f7ab093fSMike Marshall }; 46f7ab093fSMike Marshall 478bb8aefdSYi Liu struct orangefs_getattr_request_s { 488bb8aefdSYi Liu struct orangefs_object_kref refn; 49f7ab093fSMike Marshall __u32 mask; 50f7ab093fSMike Marshall __u32 __pad1; 51f7ab093fSMike Marshall }; 52f7ab093fSMike Marshall 538bb8aefdSYi Liu struct orangefs_setattr_request_s { 548bb8aefdSYi Liu struct orangefs_object_kref refn; 558bb8aefdSYi Liu struct ORANGEFS_sys_attr_s attributes; 56f7ab093fSMike Marshall }; 57f7ab093fSMike Marshall 588bb8aefdSYi Liu struct orangefs_remove_request_s { 598bb8aefdSYi Liu struct orangefs_object_kref parent_refn; 6047b4948fSMartin Brandenburg char d_name[ORANGEFS_NAME_MAX]; 61f7ab093fSMike Marshall }; 62f7ab093fSMike Marshall 638bb8aefdSYi Liu struct orangefs_mkdir_request_s { 648bb8aefdSYi Liu struct orangefs_object_kref parent_refn; 658bb8aefdSYi Liu struct ORANGEFS_sys_attr_s attributes; 6647b4948fSMartin Brandenburg char d_name[ORANGEFS_NAME_MAX]; 67f7ab093fSMike Marshall }; 68f7ab093fSMike Marshall 698bb8aefdSYi Liu struct orangefs_readdir_request_s { 708bb8aefdSYi Liu struct orangefs_object_kref refn; 71f7ab093fSMike Marshall __u64 token; 72f7ab093fSMike Marshall __s32 max_dirent_count; 73f7ab093fSMike Marshall __s32 buf_index; 74f7ab093fSMike Marshall }; 75f7ab093fSMike Marshall 768bb8aefdSYi Liu struct orangefs_readdirplus_request_s { 778bb8aefdSYi Liu struct orangefs_object_kref refn; 78f7ab093fSMike Marshall __u64 token; 79f7ab093fSMike Marshall __s32 max_dirent_count; 80f7ab093fSMike Marshall __u32 mask; 81f7ab093fSMike Marshall __s32 buf_index; 82f7ab093fSMike Marshall __s32 __pad1; 83f7ab093fSMike Marshall }; 84f7ab093fSMike Marshall 858bb8aefdSYi Liu struct orangefs_rename_request_s { 868bb8aefdSYi Liu struct orangefs_object_kref old_parent_refn; 878bb8aefdSYi Liu struct orangefs_object_kref new_parent_refn; 8847b4948fSMartin Brandenburg char d_old_name[ORANGEFS_NAME_MAX]; 8947b4948fSMartin Brandenburg char d_new_name[ORANGEFS_NAME_MAX]; 90f7ab093fSMike Marshall }; 91f7ab093fSMike Marshall 928bb8aefdSYi Liu struct orangefs_statfs_request_s { 93f7ab093fSMike Marshall __s32 fs_id; 94f7ab093fSMike Marshall __s32 __pad1; 95f7ab093fSMike Marshall }; 96f7ab093fSMike Marshall 978bb8aefdSYi Liu struct orangefs_truncate_request_s { 988bb8aefdSYi Liu struct orangefs_object_kref refn; 99f7ab093fSMike Marshall __s64 size; 100f7ab093fSMike Marshall }; 101f7ab093fSMike Marshall 1026eaff8c7SMartin Brandenburg struct orangefs_ra_cache_flush_request_s { 1038bb8aefdSYi Liu struct orangefs_object_kref refn; 104f7ab093fSMike Marshall }; 105f7ab093fSMike Marshall 1068bb8aefdSYi Liu struct orangefs_fs_mount_request_s { 1078bb8aefdSYi Liu char orangefs_config_server[ORANGEFS_MAX_SERVER_ADDR_LEN]; 108f7ab093fSMike Marshall }; 109f7ab093fSMike Marshall 1108bb8aefdSYi Liu struct orangefs_fs_umount_request_s { 111f7ab093fSMike Marshall __s32 id; 112f7ab093fSMike Marshall __s32 fs_id; 1138bb8aefdSYi Liu char orangefs_config_server[ORANGEFS_MAX_SERVER_ADDR_LEN]; 114f7ab093fSMike Marshall }; 115f7ab093fSMike Marshall 1168bb8aefdSYi Liu struct orangefs_getxattr_request_s { 1178bb8aefdSYi Liu struct orangefs_object_kref refn; 118f7ab093fSMike Marshall __s32 key_sz; 119f7ab093fSMike Marshall __s32 __pad1; 1208bb8aefdSYi Liu char key[ORANGEFS_MAX_XATTR_NAMELEN]; 121f7ab093fSMike Marshall }; 122f7ab093fSMike Marshall 1238bb8aefdSYi Liu struct orangefs_setxattr_request_s { 1248bb8aefdSYi Liu struct orangefs_object_kref refn; 1258bb8aefdSYi Liu struct ORANGEFS_keyval_pair keyval; 126f7ab093fSMike Marshall __s32 flags; 127f7ab093fSMike Marshall __s32 __pad1; 128f7ab093fSMike Marshall }; 129f7ab093fSMike Marshall 1308bb8aefdSYi Liu struct orangefs_listxattr_request_s { 1318bb8aefdSYi Liu struct orangefs_object_kref refn; 132f7ab093fSMike Marshall __s32 requested_count; 133f7ab093fSMike Marshall __s32 __pad1; 134f7ab093fSMike Marshall __u64 token; 135f7ab093fSMike Marshall }; 136f7ab093fSMike Marshall 1378bb8aefdSYi Liu struct orangefs_removexattr_request_s { 1388bb8aefdSYi Liu struct orangefs_object_kref refn; 139f7ab093fSMike Marshall __s32 key_sz; 140f7ab093fSMike Marshall __s32 __pad1; 1418bb8aefdSYi Liu char key[ORANGEFS_MAX_XATTR_NAMELEN]; 142f7ab093fSMike Marshall }; 143f7ab093fSMike Marshall 1448bb8aefdSYi Liu struct orangefs_op_cancel_s { 145f7ab093fSMike Marshall __u64 op_tag; 146f7ab093fSMike Marshall }; 147f7ab093fSMike Marshall 1488bb8aefdSYi Liu struct orangefs_fsync_request_s { 1498bb8aefdSYi Liu struct orangefs_object_kref refn; 150f7ab093fSMike Marshall }; 151f7ab093fSMike Marshall 1528bb8aefdSYi Liu enum orangefs_param_request_type { 1538bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_SET = 1, 1548bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_GET = 2 155f7ab093fSMike Marshall }; 156f7ab093fSMike Marshall 1578bb8aefdSYi Liu enum orangefs_param_request_op { 1588bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_ACACHE_TIMEOUT_MSECS = 1, 1598bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_ACACHE_HARD_LIMIT = 2, 1608bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_ACACHE_SOFT_LIMIT = 3, 1618bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_ACACHE_RECLAIM_PERCENTAGE = 4, 1628bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_PERF_TIME_INTERVAL_SECS = 5, 1638bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_PERF_HISTORY_SIZE = 6, 1648bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_PERF_RESET = 7, 1658bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_NCACHE_TIMEOUT_MSECS = 8, 1668bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_NCACHE_HARD_LIMIT = 9, 1678bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_NCACHE_SOFT_LIMIT = 10, 1688bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_NCACHE_RECLAIM_PERCENTAGE = 11, 1698bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_STATIC_ACACHE_TIMEOUT_MSECS = 12, 1708bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_STATIC_ACACHE_HARD_LIMIT = 13, 1718bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_STATIC_ACACHE_SOFT_LIMIT = 14, 1728bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_STATIC_ACACHE_RECLAIM_PERCENTAGE = 15, 1738bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_CLIENT_DEBUG = 16, 1748bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_CCACHE_TIMEOUT_SECS = 17, 1758bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_CCACHE_HARD_LIMIT = 18, 1768bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_CCACHE_SOFT_LIMIT = 19, 1778bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_CCACHE_RECLAIM_PERCENTAGE = 20, 1788bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_CAPCACHE_TIMEOUT_SECS = 21, 1798bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_CAPCACHE_HARD_LIMIT = 22, 1808bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_CAPCACHE_SOFT_LIMIT = 23, 1818bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_CAPCACHE_RECLAIM_PERCENTAGE = 24, 1828bb8aefdSYi Liu ORANGEFS_PARAM_REQUEST_OP_TWO_MASK_VALUES = 25, 183a6dff80aSMartin Brandenburg ORANGEFS_PARAM_REQUEST_OP_READAHEAD_SIZE = 26, 184a6dff80aSMartin Brandenburg ORANGEFS_PARAM_REQUEST_OP_READAHEAD_COUNT = 27, 185a6dff80aSMartin Brandenburg ORANGEFS_PARAM_REQUEST_OP_READAHEAD_COUNT_SIZE = 28, 18631c829f3SMartin Brandenburg ORANGEFS_PARAM_REQUEST_OP_READAHEAD_READCNT = 29, 187f7ab093fSMike Marshall }; 188f7ab093fSMike Marshall 1898bb8aefdSYi Liu struct orangefs_param_request_s { 1908bb8aefdSYi Liu enum orangefs_param_request_type type; 1918bb8aefdSYi Liu enum orangefs_param_request_op op; 192680908e5SMartin Brandenburg union { 193680908e5SMartin Brandenburg __s64 value64; 194680908e5SMartin Brandenburg __s32 value32[2]; 195680908e5SMartin Brandenburg } u; 1968bb8aefdSYi Liu char s_value[ORANGEFS_MAX_DEBUG_STRING_LEN]; 197f7ab093fSMike Marshall }; 198f7ab093fSMike Marshall 1998bb8aefdSYi Liu enum orangefs_perf_count_request_type { 2008bb8aefdSYi Liu ORANGEFS_PERF_COUNT_REQUEST_ACACHE = 1, 2018bb8aefdSYi Liu ORANGEFS_PERF_COUNT_REQUEST_NCACHE = 2, 2028bb8aefdSYi Liu ORANGEFS_PERF_COUNT_REQUEST_CAPCACHE = 3, 203f7ab093fSMike Marshall }; 204f7ab093fSMike Marshall 2058bb8aefdSYi Liu struct orangefs_perf_count_request_s { 2068bb8aefdSYi Liu enum orangefs_perf_count_request_type type; 207f7ab093fSMike Marshall __s32 __pad1; 208f7ab093fSMike Marshall }; 209f7ab093fSMike Marshall 2108bb8aefdSYi Liu struct orangefs_fs_key_request_s { 211f7ab093fSMike Marshall __s32 fsid; 212f7ab093fSMike Marshall __s32 __pad1; 213f7ab093fSMike Marshall }; 214f7ab093fSMike Marshall 215482664ddSMartin Brandenburg /* 2.9.6 */ 216482664ddSMartin Brandenburg struct orangefs_features_request_s { 217482664ddSMartin Brandenburg __u64 features; 218482664ddSMartin Brandenburg }; 219482664ddSMartin Brandenburg 2208bb8aefdSYi Liu struct orangefs_upcall_s { 221f7ab093fSMike Marshall __s32 type; 222f7ab093fSMike Marshall __u32 uid; 223f7ab093fSMike Marshall __u32 gid; 224f7ab093fSMike Marshall int pid; 225f7ab093fSMike Marshall int tgid; 226f0ed4418SMartin Brandenburg /* Trailers unused but must be retained for protocol compatibility. */ 227f7ab093fSMike Marshall __s64 trailer_size; 228f7ab093fSMike Marshall char *trailer_buf; 229f7ab093fSMike Marshall 230f7ab093fSMike Marshall union { 2318bb8aefdSYi Liu struct orangefs_io_request_s io; 2328bb8aefdSYi Liu struct orangefs_lookup_request_s lookup; 2338bb8aefdSYi Liu struct orangefs_create_request_s create; 2348bb8aefdSYi Liu struct orangefs_symlink_request_s sym; 2358bb8aefdSYi Liu struct orangefs_getattr_request_s getattr; 2368bb8aefdSYi Liu struct orangefs_setattr_request_s setattr; 2378bb8aefdSYi Liu struct orangefs_remove_request_s remove; 2388bb8aefdSYi Liu struct orangefs_mkdir_request_s mkdir; 2398bb8aefdSYi Liu struct orangefs_readdir_request_s readdir; 2408bb8aefdSYi Liu struct orangefs_readdirplus_request_s readdirplus; 2418bb8aefdSYi Liu struct orangefs_rename_request_s rename; 2428bb8aefdSYi Liu struct orangefs_statfs_request_s statfs; 2438bb8aefdSYi Liu struct orangefs_truncate_request_s truncate; 2446eaff8c7SMartin Brandenburg struct orangefs_ra_cache_flush_request_s ra_cache_flush; 2458bb8aefdSYi Liu struct orangefs_fs_mount_request_s fs_mount; 2468bb8aefdSYi Liu struct orangefs_fs_umount_request_s fs_umount; 2478bb8aefdSYi Liu struct orangefs_getxattr_request_s getxattr; 2488bb8aefdSYi Liu struct orangefs_setxattr_request_s setxattr; 2498bb8aefdSYi Liu struct orangefs_listxattr_request_s listxattr; 2508bb8aefdSYi Liu struct orangefs_removexattr_request_s removexattr; 2518bb8aefdSYi Liu struct orangefs_op_cancel_s cancel; 2528bb8aefdSYi Liu struct orangefs_fsync_request_s fsync; 2538bb8aefdSYi Liu struct orangefs_param_request_s param; 2548bb8aefdSYi Liu struct orangefs_perf_count_request_s perf_count; 2558bb8aefdSYi Liu struct orangefs_fs_key_request_s fs_key; 256482664ddSMartin Brandenburg struct orangefs_features_request_s features; 257f7ab093fSMike Marshall } req; 258f7ab093fSMike Marshall }; 259f7ab093fSMike Marshall 260f7ab093fSMike Marshall #endif /* __UPCALL_H */ 261