]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
f7ab093f MM |
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 | */ | |
8bb8aefd | 19 | struct orangefs_io_response { |
f7ab093f MM |
20 | __s64 amt_complete; |
21 | }; | |
22 | ||
8bb8aefd YL |
23 | struct orangefs_lookup_response { |
24 | struct orangefs_object_kref refn; | |
f7ab093f MM |
25 | }; |
26 | ||
8bb8aefd YL |
27 | struct orangefs_create_response { |
28 | struct orangefs_object_kref refn; | |
f7ab093f MM |
29 | }; |
30 | ||
8bb8aefd YL |
31 | struct orangefs_symlink_response { |
32 | struct orangefs_object_kref refn; | |
f7ab093f MM |
33 | }; |
34 | ||
8bb8aefd YL |
35 | struct orangefs_getattr_response { |
36 | struct ORANGEFS_sys_attr_s attributes; | |
47b4948f | 37 | char link_target[ORANGEFS_NAME_MAX]; |
f7ab093f MM |
38 | }; |
39 | ||
8bb8aefd YL |
40 | struct orangefs_mkdir_response { |
41 | struct orangefs_object_kref refn; | |
f7ab093f MM |
42 | }; |
43 | ||
8bb8aefd | 44 | struct orangefs_statfs_response { |
f7ab093f MM |
45 | __s64 block_size; |
46 | __s64 blocks_total; | |
47 | __s64 blocks_avail; | |
48 | __s64 files_total; | |
49 | __s64 files_avail; | |
50 | }; | |
51 | ||
8bb8aefd | 52 | struct orangefs_fs_mount_response { |
f7ab093f MM |
53 | __s32 fs_id; |
54 | __s32 id; | |
8bb8aefd | 55 | struct orangefs_khandle root_khandle; |
f7ab093f MM |
56 | }; |
57 | ||
58 | /* the getxattr response is the attribute value */ | |
8bb8aefd | 59 | struct orangefs_getxattr_response { |
f7ab093f MM |
60 | __s32 val_sz; |
61 | __s32 __pad1; | |
8bb8aefd | 62 | char val[ORANGEFS_MAX_XATTR_VALUELEN]; |
f7ab093f MM |
63 | }; |
64 | ||
65 | /* the listxattr response is an array of attribute names */ | |
8bb8aefd | 66 | struct orangefs_listxattr_response { |
f7ab093f MM |
67 | __s32 returned_count; |
68 | __s32 __pad1; | |
69 | __u64 token; | |
8bb8aefd | 70 | char key[ORANGEFS_MAX_XATTR_LISTLEN * ORANGEFS_MAX_XATTR_NAMELEN]; |
f7ab093f MM |
71 | __s32 keylen; |
72 | __s32 __pad2; | |
8bb8aefd | 73 | __s32 lengths[ORANGEFS_MAX_XATTR_LISTLEN]; |
f7ab093f MM |
74 | }; |
75 | ||
8bb8aefd | 76 | struct orangefs_param_response { |
680908e5 MB |
77 | union { |
78 | __s64 value64; | |
79 | __s32 value32[2]; | |
80 | } u; | |
f7ab093f MM |
81 | }; |
82 | ||
83 | #define PERF_COUNT_BUF_SIZE 4096 | |
8bb8aefd | 84 | struct orangefs_perf_count_response { |
f7ab093f MM |
85 | char buffer[PERF_COUNT_BUF_SIZE]; |
86 | }; | |
87 | ||
88 | #define FS_KEY_BUF_SIZE 4096 | |
8bb8aefd | 89 | struct orangefs_fs_key_response { |
f7ab093f MM |
90 | __s32 fs_keylen; |
91 | __s32 __pad1; | |
92 | char fs_key[FS_KEY_BUF_SIZE]; | |
93 | }; | |
94 | ||
482664dd MB |
95 | /* 2.9.6 */ |
96 | struct orangefs_features_response { | |
97 | __u64 features; | |
98 | }; | |
99 | ||
8bb8aefd | 100 | struct orangefs_downcall_s { |
f7ab093f MM |
101 | __s32 type; |
102 | __s32 status; | |
103 | /* currently trailer is used only by readdir */ | |
104 | __s64 trailer_size; | |
54804949 | 105 | char *trailer_buf; |
f7ab093f MM |
106 | |
107 | union { | |
8bb8aefd YL |
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; | |
482664dd | 121 | struct orangefs_features_response features; |
f7ab093f MM |
122 | } resp; |
123 | }; | |
124 | ||
382f4581 MB |
125 | /* |
126 | * The readdir response comes in the trailer. It is followed by the | |
127 | * directory entries as described in dir.c. | |
128 | */ | |
129 | ||
8bb8aefd | 130 | struct orangefs_readdir_response_s { |
f7ab093f MM |
131 | __u64 token; |
132 | __u64 directory_version; | |
133 | __u32 __pad2; | |
8bb8aefd | 134 | __u32 orangefs_dirent_outcount; |
f7ab093f MM |
135 | }; |
136 | ||
137 | #endif /* __DOWNCALL_H */ |