root/fs/orangefs/upcall.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


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

/* [<][>][^][v][top][bottom][index][help] */