~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/fs/orangefs/downcall.h

Version: ~ [ linux-5.8-rc4 ] ~ [ linux-5.7.7 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.50 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.131 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.187 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.229 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.229 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.85 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 */
138 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp