root/fs/orangefs/downcall.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 /*
   9  *  Definitions of downcalls used in Linux kernel module.
  10  */
  11 
  12 #ifndef __DOWNCALL_H
  13 #define __DOWNCALL_H
  14 
  15 /*
  16  * Sanitized the device-client core interaction
  17  * for clean 32-64 bit usage
  18  */
  19 struct orangefs_io_response {
  20         __s64 amt_complete;
  21 };
  22 
  23 struct orangefs_lookup_response {
  24         struct orangefs_object_kref refn;
  25 };
  26 
  27 struct orangefs_create_response {
  28         struct orangefs_object_kref refn;
  29 };
  30 
  31 struct orangefs_symlink_response {
  32         struct orangefs_object_kref refn;
  33 };
  34 
  35 struct orangefs_getattr_response {
  36         struct ORANGEFS_sys_attr_s attributes;
  37         char link_target[ORANGEFS_NAME_MAX];
  38 };
  39 
  40 struct orangefs_mkdir_response {
  41         struct orangefs_object_kref refn;
  42 };
  43 
  44 struct orangefs_statfs_response {
  45         __s64 block_size;
  46         __s64 blocks_total;
  47         __s64 blocks_avail;
  48         __s64 files_total;
  49         __s64 files_avail;
  50 };
  51 
  52 struct orangefs_fs_mount_response {
  53         __s32 fs_id;
  54         __s32 id;
  55         struct orangefs_khandle root_khandle;
  56 };
  57 
  58 /* the getxattr response is the attribute value */
  59 struct orangefs_getxattr_response {
  60         __s32 val_sz;
  61         __s32 __pad1;
  62         char val[ORANGEFS_MAX_XATTR_VALUELEN];
  63 };
  64 
  65 /* the listxattr response is an array of attribute names */
  66 struct orangefs_listxattr_response {
  67         __s32 returned_count;
  68         __s32 __pad1;
  69         __u64 token;
  70         char key[ORANGEFS_MAX_XATTR_LISTLEN * ORANGEFS_MAX_XATTR_NAMELEN];
  71         __s32 keylen;
  72         __s32 __pad2;
  73         __s32 lengths[ORANGEFS_MAX_XATTR_LISTLEN];
  74 };
  75 
  76 struct orangefs_param_response {
  77         union {
  78                 __s64 value64;
  79                 __s32 value32[2];
  80         } u;
  81 };
  82 
  83 #define PERF_COUNT_BUF_SIZE 4096
  84 struct orangefs_perf_count_response {
  85         char buffer[PERF_COUNT_BUF_SIZE];
  86 };
  87 
  88 #define FS_KEY_BUF_SIZE 4096
  89 struct orangefs_fs_key_response {
  90         __s32 fs_keylen;
  91         __s32 __pad1;
  92         char fs_key[FS_KEY_BUF_SIZE];
  93 };
  94 
  95 /* 2.9.6 */
  96 struct orangefs_features_response {
  97         __u64 features;
  98 };
  99 
 100 struct orangefs_downcall_s {
 101         __s32 type;
 102         __s32 status;
 103         /* currently trailer is used only by readdir */
 104         __s64 trailer_size;
 105         char *trailer_buf;
 106 
 107         union {
 108                 struct orangefs_io_response io;
 109                 struct orangefs_lookup_response lookup;
 110                 struct orangefs_create_response create;
 111                 struct orangefs_symlink_response sym;
 112                 struct orangefs_getattr_response getattr;
 113                 struct orangefs_mkdir_response mkdir;
 114                 struct orangefs_statfs_response statfs;
 115                 struct orangefs_fs_mount_response fs_mount;
 116                 struct orangefs_getxattr_response getxattr;
 117                 struct orangefs_listxattr_response listxattr;
 118                 struct orangefs_param_response param;
 119                 struct orangefs_perf_count_response perf_count;
 120                 struct orangefs_fs_key_response fs_key;
 121                 struct orangefs_features_response features;
 122         } resp;
 123 };
 124 
 125 /*
 126  * The readdir response comes in the trailer.  It is followed by the
 127  * directory entries as described in dir.c.
 128  */
 129 
 130 struct orangefs_readdir_response_s {
 131         __u64 token;
 132         __u64 directory_version;
 133         __u32 __pad2;
 134         __u32 orangefs_dirent_outcount;
 135 };
 136 
 137 #endif /* __DOWNCALL_H */

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