Motr  M0
md_fops.h
Go to the documentation of this file.
1 /* -*- C -*- */
2 /*
3  * Copyright (c) 2013-2020 Seagate Technology LLC and/or its Affiliates
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * For any questions about this software or licensing,
18  * please email opensource@seagate.com or cortx-questions@seagate.com.
19  *
20  */
21 
22 
23 #pragma once
24 
25 #ifndef __MOTR_MDSERVICE_MD_FOPS_H__
26 #define __MOTR_MDSERVICE_MD_FOPS_H__
27 
28 #include "fop/fop.h"
29 #include "fop/fop_xc.h"
30 #include "fop/fom_generic.h"
31 #include "fop/fom_generic_xc.h"
32 #include "lib/types.h"
33 #include "xcode/xcode_attr.h"
34 #include "fid/fid_xc.h"
35 #include "fid/fid.h"
36 #include "lib/string.h"
37 #include "lib/string_xc.h"
38 
39 extern struct m0_fop_type m0_fop_create_fopt;
40 extern struct m0_fop_type m0_fop_lookup_fopt;
41 extern struct m0_fop_type m0_fop_link_fopt;
42 extern struct m0_fop_type m0_fop_unlink_fopt;
43 extern struct m0_fop_type m0_fop_open_fopt;
44 extern struct m0_fop_type m0_fop_close_fopt;
45 extern struct m0_fop_type m0_fop_setattr_fopt;
46 extern struct m0_fop_type m0_fop_getattr_fopt;
47 extern struct m0_fop_type m0_fop_setxattr_fopt;
48 extern struct m0_fop_type m0_fop_getxattr_fopt;
49 extern struct m0_fop_type m0_fop_delxattr_fopt;
51 extern struct m0_fop_type m0_fop_statfs_fopt;
52 extern struct m0_fop_type m0_fop_rename_fopt;
53 extern struct m0_fop_type m0_fop_readdir_fopt;
54 
57 extern struct m0_fop_type m0_fop_link_rep_fopt;
59 extern struct m0_fop_type m0_fop_open_rep_fopt;
70 
71 struct m0_fop_cob {
72  uint32_t b_rc;
73  uint64_t b_index;
74  uint64_t b_version;
75  uint32_t b_flags;
76  uint32_t b_valid;
77  uint32_t b_mode;
78  uint64_t b_size;
79  uint64_t b_blksize;
80  uint64_t b_blocks;
81  uint32_t b_nlink;
82  uint32_t b_uid;
83  uint32_t b_gid;
84  uint32_t b_sid;
85  uint64_t b_nid;
86  uint32_t b_rdev;
87  uint32_t b_atime;
88  uint32_t b_mtime;
89  uint32_t b_ctime;
90  uint64_t b_lid;
91  struct m0_fid b_pfid;
92  struct m0_fid b_tfid;
93  struct m0_fid b_pver;
94 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
95 
96 struct m0_fop_buf {
97  uint32_t b_count;
98  uint8_t *b_addr;
99 } M0_XCA_SEQUENCE M0_XCA_DOMAIN(rpc);
100 
106 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
107 
109  int32_t c_rc;
112 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
113 
118 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
119 
121  int32_t l_rc;
123 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
124 
125 struct m0_fop_link {
130 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
131 
133  int32_t l_rc;
136 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
137 
142 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
143 
145  int32_t u_rc;
148 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
149 
157 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
158 
160  int32_t r_rc;
163 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
164 
165 struct m0_fop_open {
168 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
169 
171  int32_t o_rc;
174 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
175 
176 struct m0_fop_close {
179 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
180 
182  int32_t c_rc;
184 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
185 
189 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
190 
192  int32_t s_rc;
195 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
196 
200 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
201 
203  int32_t g_rc;
205 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
206 
210 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
211 
213  int32_t g_rc;
216 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
217 
222 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
223 
225  int32_t s_rc;
228 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
229 
233 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
234 
236  int32_t d_rc;
239 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
240 
243 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
244 
246  int32_t l_rc;
250 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
251 
256 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
257 
259  int32_t r_rc;
263 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
264 
266  uint64_t f_flags;
267 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
268 
270  int32_t f_rc;
271  uint64_t f_type;
272  uint32_t f_bsize;
273  uint64_t f_blocks;
274  uint64_t f_bfree;
275  uint64_t f_bavail;
276  uint64_t f_files;
277  uint64_t f_ffree;
278  uint32_t f_namelen;
279  struct m0_fid f_root;
280 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
281 
285 M0_INTERNAL int m0_mdservice_fop_init(void);
286 M0_INTERNAL void m0_mdservice_fop_fini(void);
287 
288 struct m0_cob_attr;
289 M0_INTERNAL void m0_md_cob_wire2mem(struct m0_cob_attr *attr,
290  const struct m0_fop_cob *body);
291 
292 M0_INTERNAL void m0_md_cob_mem2wire(struct m0_fop_cob *body,
293  const struct m0_cob_attr *attr);
294 
295 #endif /* __MOTR_MDSERVICE_MD_FOMS_H__ */
296 /*
297  * Local variables:
298  * c-indentation-style: "K&R"
299  * c-basic-offset: 8
300  * tab-width: 8
301  * fill-column: 80
302  * scroll-step: 1
303  * End:
304  */
struct m0_fop_cob g_body
Definition: md_fops.h:214
uint32_t b_nlink
Definition: md_fops.h:81
uint32_t b_flags
Definition: md_fops.h:75
struct m0_fop_str r_spath
Definition: md_fops.h:153
uint32_t b_uid
Definition: md_fops.h:82
M0_INTERNAL void m0_md_cob_wire2mem(struct m0_cob_attr *attr, const struct m0_fop_cob *body)
Definition: md_foms.c:53
uint64_t f_bfree
Definition: md_fops.h:274
struct m0_fop_mod_rep r_mod_rep
Definition: md_fops.h:162
uint32_t f_namelen
Definition: md_fops.h:278
struct m0_fop_mod_rep s_mod_rep
Definition: md_fops.h:227
struct m0_fop_type m0_fop_lookup_fopt
Definition: md_fops.c:53
uint32_t b_valid
Definition: md_fops.h:76
struct m0_fop_str o_path
Definition: md_fops.h:166
struct m0_fid b_tfid
Definition: md_fops.h:92
struct m0_fop_type m0_fop_create_rep_fopt
Definition: md_fops.c:68
uint64_t b_index
Definition: md_fops.h:73
struct m0_fop_cob l_body
Definition: md_fops.h:115
struct m0_fop_cob s_body
Definition: md_fops.h:193
struct m0_fop_str c_path
Definition: md_fops.h:178
struct m0_fop_type m0_fop_getxattr_rep_fopt
Definition: md_fops.c:77
M0_INTERNAL int m0_mdservice_fop_init(void)
Definition: md_fops.c:341
struct m0_fop_str s_path
Definition: md_fops.h:188
struct m0_fop_cob s_body
Definition: md_fops.h:226
struct m0_fop_cob d_body
Definition: md_fops.h:231
struct m0_fop_str r_sname
Definition: md_fops.h:155
uint64_t f_blocks
Definition: md_fops.h:273
struct m0_fop_buf r_buf
Definition: md_fops.h:262
struct m0_fop_type m0_fop_setxattr_rep_fopt
Definition: md_fops.c:76
struct m0_fop_str g_path
Definition: md_fops.h:199
int32_t o_rc
Definition: md_fops.h:171
struct m0_fop_type m0_fop_listxattr_fopt
Definition: md_fops.c:63
struct m0_fop_type m0_fop_close_rep_fopt
Definition: md_fops.c:73
uint32_t b_rdev
Definition: md_fops.h:86
uint64_t b_size
Definition: md_fops.h:78
M0_INTERNAL void m0_mdservice_fop_fini(void)
Definition: md_fops.c:348
struct m0_fop_cob r_body
Definition: md_fops.h:253
struct m0_fop_type m0_fop_getattr_rep_fopt
Definition: md_fops.c:75
struct m0_fop_type m0_fop_create_fopt
Definition: md_fops.c:52
struct m0_fop_mod_rep o_mod_rep
Definition: md_fops.h:173
uint32_t b_rc
Definition: md_fops.h:72
uint64_t b_nid
Definition: md_fops.h:85
struct m0_fop_cob c_body
Definition: md_fops.h:177
struct m0_fop_type m0_fop_statfs_fopt
Definition: md_fops.c:64
struct m0_fop_cob * body
Definition: dir.c:1436
struct m0_fop_type m0_fop_listxattr_rep_fopt
Definition: md_fops.c:79
struct m0_fop_type m0_fop_setattr_fopt
Definition: md_fops.c:58
struct m0_fop_str r_pos
Definition: md_fops.h:255
uint64_t f_ffree
Definition: md_fops.h:277
struct m0_fop_type m0_fop_getattr_fopt
Definition: md_fops.c:59
struct m0_fop_cob g_body
Definition: md_fops.h:198
struct m0_fop_type m0_fop_delxattr_rep_fopt
Definition: md_fops.c:78
uint32_t b_ctime
Definition: md_fops.h:89
struct m0_fop_mod_rep d_mod_rep
Definition: md_fops.h:238
int32_t l_rc
Definition: md_fops.h:121
struct m0_fop_cob r_body
Definition: md_fops.h:161
struct m0_fop_type m0_fop_lookup_rep_fopt
Definition: md_fops.c:69
struct m0_fop_type m0_fop_close_fopt
Definition: md_fops.c:57
int32_t c_rc
Definition: md_fops.h:182
struct m0_fop_mod_rep s_mod_rep
Definition: md_fops.h:194
static void attr(struct m0_addb2__context *ctx, const uint64_t *v, char *buf)
Definition: dump.c:949
struct m0_fop_str r_tname
Definition: md_fops.h:156
struct m0_fop_cob M0_XCA_DOMAIN(rpc)
struct m0_fop_str c_path
Definition: md_fops.h:104
struct m0_fop_str l_path
Definition: md_fops.h:116
uint32_t b_mode
Definition: md_fops.h:77
uint32_t b_mtime
Definition: md_fops.h:88
struct m0_fop_type m0_fop_unlink_rep_fopt
Definition: md_fops.c:71
struct m0_fop_cob g_body
Definition: md_fops.h:208
uint32_t f_bsize
Definition: md_fops.h:272
uint64_t f_bavail
Definition: md_fops.h:275
struct m0_fop_str l_name
Definition: md_fops.h:117
uint64_t b_lid
Definition: md_fops.h:90
struct m0_fop_type m0_fop_rename_fopt
Definition: md_fops.c:65
struct m0_fop_cob o_body
Definition: md_fops.h:167
struct m0_fid b_pver
Definition: md_fops.h:93
struct m0_fop_str l_end
Definition: md_fops.h:247
int32_t r_rc
Definition: md_fops.h:160
uint32_t b_atime
Definition: md_fops.h:87
struct m0_fop_str s_key
Definition: md_fops.h:220
struct m0_fop_buf l_buf
Definition: md_fops.h:249
uint64_t f_files
Definition: md_fops.h:276
struct m0_fop_type m0_fop_unlink_fopt
Definition: md_fops.c:55
uint8_t * b_addr
Definition: md_fops.h:98
struct m0_fop_type m0_fop_link_rep_fopt
Definition: md_fops.c:70
struct m0_fop_str g_key
Definition: md_fops.h:209
struct m0_fop_cob r_tbody
Definition: md_fops.h:152
struct m0_fop_str g_value
Definition: md_fops.h:215
struct m0_fop_str r_end
Definition: md_fops.h:260
struct m0_fop_type m0_fop_setattr_rep_fopt
Definition: md_fops.c:74
struct m0_fop_cob g_body
Definition: md_fops.h:204
struct m0_fop_type m0_fop_getxattr_fopt
Definition: md_fops.c:61
struct m0_fop_cob c_body
Definition: md_fops.h:102
uint64_t b_blocks
Definition: md_fops.h:80
struct m0_fop_type m0_fop_readdir_fopt
Definition: md_fops.c:66
struct m0_fop_str s_value
Definition: md_fops.h:221
struct m0_fop_type m0_fop_rename_rep_fopt
Definition: md_fops.c:81
struct m0_fop_type m0_fop_open_fopt
Definition: md_fops.c:56
struct m0_fop_cob s_body
Definition: md_fops.h:219
struct m0_fop_str r_path
Definition: md_fops.h:254
Definition: fid.h:38
uint64_t b_blksize
Definition: md_fops.h:79
uint64_t b_version
Definition: md_fops.h:74
M0_INTERNAL void m0_md_cob_mem2wire(struct m0_fop_cob *body, const struct m0_cob_attr *attr)
Definition: md_foms.c:89
struct m0_fop_cob r_sbody
Definition: md_fops.h:151
struct m0_fop_str r_tpath
Definition: md_fops.h:154
struct m0_fop_type m0_fop_delxattr_fopt
Definition: md_fops.c:62
struct m0_fop_type m0_fop_setxattr_fopt
Definition: md_fops.c:60
struct m0_fop_cob r_body
Definition: md_fops.h:261
struct m0_fop_cob l_body
Definition: md_fops.h:242
struct m0_fid f_root
Definition: md_fops.h:279
struct m0_fop_cob o_body
Definition: md_fops.h:172
struct m0_fop_cob c_body
Definition: md_fops.h:183
struct m0_fop_type m0_fop_link_fopt
Definition: md_fops.c:54
struct m0_fid b_pfid
Definition: md_fops.h:91
struct m0_fop_type m0_fop_open_rep_fopt
Definition: md_fops.c:72
struct m0_fop_cob l_body
Definition: md_fops.h:248
struct m0_fop_str c_target
Definition: md_fops.h:103
int32_t f_rc
Definition: md_fops.h:270
uint64_t f_flags
Definition: md_fops.h:266
struct m0_fop_cob l_body
Definition: md_fops.h:122
int32_t c_rc
Definition: md_fops.h:109
uint64_t f_type
Definition: md_fops.h:271
struct m0_fop_cob d_body
Definition: md_fops.h:237
struct m0_fop_type m0_fop_statfs_rep_fopt
Definition: md_fops.c:80
struct m0_fop_cob s_body
Definition: md_fops.h:187
struct m0_fop_str d_key
Definition: md_fops.h:232
uint32_t b_gid
Definition: md_fops.h:83
struct m0_fop_type m0_fop_readdir_rep_fopt
Definition: md_fops.c:82
struct m0_fop_mod_rep c_mod_rep
Definition: md_fops.h:111
uint32_t b_count
Definition: md_fops.h:97
struct m0_fop_str c_name
Definition: md_fops.h:105
uint32_t b_sid
Definition: md_fops.h:84
struct m0_fop_cob c_body
Definition: md_fops.h:110