linux/fs/orangefs/upcall.h
<<
>>
Prefs
   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 */
  16struct 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
  27struct 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
  34struct 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
  40struct 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
  47struct orangefs_getattr_request_s {
  48        struct orangefs_object_kref refn;
  49        __u32 mask;
  50        __u32 __pad1;
  51};
  52
  53struct orangefs_setattr_request_s {
  54        struct orangefs_object_kref refn;
  55        struct ORANGEFS_sys_attr_s attributes;
  56};
  57
  58struct orangefs_remove_request_s {
  59        struct orangefs_object_kref parent_refn;
  60        char d_name[ORANGEFS_NAME_MAX];
  61};
  62
  63struct 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
  69struct orangefs_readdir_request_s {
  70        struct orangefs_object_kref refn;
  71        __u64 token;
  72        __s32 max_dirent_count;
  73        __s32 buf_index;
  74};
  75
  76struct 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
  85struct 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
  92struct orangefs_statfs_request_s {
  93        __s32 fs_id;
  94        __s32 __pad1;
  95};
  96
  97struct orangefs_truncate_request_s {
  98        struct orangefs_object_kref refn;
  99        __s64 size;
 100};
 101
 102struct orangefs_ra_cache_flush_request_s {
 103        struct orangefs_object_kref refn;
 104};
 105
 106struct orangefs_fs_mount_request_s {
 107        char orangefs_config_server[ORANGEFS_MAX_SERVER_ADDR_LEN];
 108};
 109
 110struct orangefs_fs_umount_request_s {
 111        __s32 id;
 112        __s32 fs_id;
 113        char orangefs_config_server[ORANGEFS_MAX_SERVER_ADDR_LEN];
 114};
 115
 116struct 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
 123struct orangefs_setxattr_request_s {
 124        struct orangefs_object_kref refn;
 125        struct ORANGEFS_keyval_pair keyval;
 126        __s32 flags;
 127        __s32 __pad1;
 128};
 129
 130struct orangefs_listxattr_request_s {
 131        struct orangefs_object_kref refn;
 132        __s32 requested_count;
 133        __s32 __pad1;
 134        __u64 token;
 135};
 136
 137struct 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
 144struct orangefs_op_cancel_s {
 145        __u64 op_tag;
 146};
 147
 148struct orangefs_fsync_request_s {
 149        struct orangefs_object_kref refn;
 150};
 151
 152enum orangefs_param_request_type {
 153        ORANGEFS_PARAM_REQUEST_SET = 1,
 154        ORANGEFS_PARAM_REQUEST_GET = 2
 155};
 156
 157enum 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
 189struct 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
 199enum 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
 205struct orangefs_perf_count_request_s {
 206        enum orangefs_perf_count_request_type type;
 207        __s32 __pad1;
 208};
 209
 210struct orangefs_fs_key_request_s {
 211        __s32 fsid;
 212        __s32 __pad1;
 213};
 214
 215/* 2.9.6 */
 216struct orangefs_features_request_s {
 217        __u64 features;
 218};
 219
 220struct 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 */
 261