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