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/wire.h"
29 #include "fop/wire_xc.h"
30 #include "fid/fid.h"
31 #include "fid/fid_xc.h"
32 #include "xcode/xcode_attr.h"
33 
34 extern struct m0_fop_type m0_fop_create_fopt;
35 extern struct m0_fop_type m0_fop_lookup_fopt;
36 extern struct m0_fop_type m0_fop_link_fopt;
37 extern struct m0_fop_type m0_fop_unlink_fopt;
38 extern struct m0_fop_type m0_fop_open_fopt;
39 extern struct m0_fop_type m0_fop_close_fopt;
40 extern struct m0_fop_type m0_fop_setattr_fopt;
41 extern struct m0_fop_type m0_fop_getattr_fopt;
42 extern struct m0_fop_type m0_fop_setxattr_fopt;
43 extern struct m0_fop_type m0_fop_getxattr_fopt;
44 extern struct m0_fop_type m0_fop_delxattr_fopt;
46 extern struct m0_fop_type m0_fop_statfs_fopt;
47 extern struct m0_fop_type m0_fop_rename_fopt;
48 extern struct m0_fop_type m0_fop_readdir_fopt;
49 
52 extern struct m0_fop_type m0_fop_link_rep_fopt;
54 extern struct m0_fop_type m0_fop_open_rep_fopt;
65 
66 struct m0_fop_cob {
67  uint32_t b_rc;
68  uint64_t b_index;
69  uint64_t b_version;
70  uint32_t b_flags;
71  uint32_t b_valid;
72  uint32_t b_mode;
73  uint64_t b_size;
74  uint64_t b_blksize;
75  uint64_t b_blocks;
76  uint32_t b_nlink;
77  uint32_t b_uid;
78  uint32_t b_gid;
79  uint32_t b_sid;
80  uint64_t b_nid;
81  uint32_t b_rdev;
82  uint32_t b_atime;
83  uint32_t b_mtime;
84  uint32_t b_ctime;
85  uint64_t b_lid;
86  struct m0_fid b_pfid;
87  struct m0_fid b_tfid;
88  struct m0_fid b_pver;
89 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
90 
91 struct m0_fop_buf {
92  uint32_t b_count;
93  uint8_t *b_addr;
94 } M0_XCA_SEQUENCE M0_XCA_DOMAIN(rpc);
95 
96 struct m0_fop_create {
101 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
102 
104  int32_t c_rc;
107 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
108 
113 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
114 
116  int32_t l_rc;
118 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
119 
120 struct m0_fop_link {
125 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
126 
128  int32_t l_rc;
131 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
132 
137 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
138 
140  int32_t u_rc;
143 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
144 
152 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
153 
155  int32_t r_rc;
158 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
159 
160 struct m0_fop_open {
163 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
164 
166  int32_t o_rc;
169 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
170 
171 struct m0_fop_close {
174 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
175 
177  int32_t c_rc;
179 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
180 
184 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
185 
187  int32_t s_rc;
190 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
191 
195 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
196 
198  int32_t g_rc;
200 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
201 
205 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
206 
208  int32_t g_rc;
211 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
212 
217 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
218 
220  int32_t s_rc;
223 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
224 
228 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
229 
231  int32_t d_rc;
234 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
235 
238 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
239 
241  int32_t l_rc;
245 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
246 
251 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
252 
254  int32_t r_rc;
258 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
259 
261  uint64_t f_flags;
262 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
263 
265  int32_t f_rc;
266  uint64_t f_type;
267  uint32_t f_bsize;
268  uint64_t f_blocks;
269  uint64_t f_bfree;
270  uint64_t f_bavail;
271  uint64_t f_files;
272  uint64_t f_ffree;
273  uint32_t f_namelen;
274  struct m0_fid f_root;
275 } M0_XCA_RECORD M0_XCA_DOMAIN(rpc);
276 
280 M0_INTERNAL int m0_mdservice_fop_init(void);
281 M0_INTERNAL void m0_mdservice_fop_fini(void);
282 
283 struct m0_cob_attr;
284 M0_INTERNAL void m0_md_cob_wire2mem(struct m0_cob_attr *attr,
285  const struct m0_fop_cob *body);
286 
287 M0_INTERNAL void m0_md_cob_mem2wire(struct m0_fop_cob *body,
288  const struct m0_cob_attr *attr);
289 
290 #endif /* __MOTR_MDSERVICE_MD_FOMS_H__ */
291 /*
292  * Local variables:
293  * c-indentation-style: "K&R"
294  * c-basic-offset: 8
295  * tab-width: 8
296  * fill-column: 80
297  * scroll-step: 1
298  * End:
299  */
struct m0_fop_cob g_body
Definition: md_fops.h:209
uint32_t b_nlink
Definition: md_fops.h:76
uint32_t b_flags
Definition: md_fops.h:70
struct m0_fop_str r_spath
Definition: md_fops.h:148
uint32_t b_uid
Definition: md_fops.h:77
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:269
struct m0_fop_mod_rep r_mod_rep
Definition: md_fops.h:157
uint32_t f_namelen
Definition: md_fops.h:273
struct m0_fop_mod_rep s_mod_rep
Definition: md_fops.h:222
struct m0_fop_type m0_fop_lookup_fopt
Definition: md_fops.c:53
uint32_t b_valid
Definition: md_fops.h:71
struct m0_fop_str o_path
Definition: md_fops.h:161
struct m0_fid b_tfid
Definition: md_fops.h:87
struct m0_fop_type m0_fop_create_rep_fopt
Definition: md_fops.c:68
uint64_t b_index
Definition: md_fops.h:68
struct m0_fop_cob l_body
Definition: md_fops.h:110
struct m0_fop_cob s_body
Definition: md_fops.h:188
struct m0_fop_str c_path
Definition: md_fops.h:173
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:183
struct m0_fop_cob s_body
Definition: md_fops.h:221
struct m0_fop_cob d_body
Definition: md_fops.h:226
struct m0_fop_str r_sname
Definition: md_fops.h:150
uint64_t f_blocks
Definition: md_fops.h:268
struct m0_fop_buf r_buf
Definition: md_fops.h:257
struct m0_fop_type m0_fop_setxattr_rep_fopt
Definition: md_fops.c:76
struct m0_fop_str g_path
Definition: md_fops.h:194
int32_t o_rc
Definition: md_fops.h:166
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:81
uint64_t b_size
Definition: md_fops.h:73
M0_INTERNAL void m0_mdservice_fop_fini(void)
Definition: md_fops.c:348
struct m0_fop_cob r_body
Definition: md_fops.h:248
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:168
uint32_t b_rc
Definition: md_fops.h:67
uint64_t b_nid
Definition: md_fops.h:80
struct m0_fop_cob c_body
Definition: md_fops.h:172
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:250
uint64_t f_ffree
Definition: md_fops.h:272
struct m0_fop_type m0_fop_getattr_fopt
Definition: md_fops.c:59
struct m0_fop_cob g_body
Definition: md_fops.h:193
struct m0_fop_type m0_fop_delxattr_rep_fopt
Definition: md_fops.c:78
uint32_t b_ctime
Definition: md_fops.h:84
struct m0_fop_mod_rep d_mod_rep
Definition: md_fops.h:233
int32_t l_rc
Definition: md_fops.h:116
struct m0_fop_cob r_body
Definition: md_fops.h:156
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:177
struct m0_fop_mod_rep s_mod_rep
Definition: md_fops.h:189
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:151
struct m0_fop_cob M0_XCA_DOMAIN(rpc)
struct m0_fop_str c_path
Definition: md_fops.h:99
struct m0_fop_str l_path
Definition: md_fops.h:111
uint32_t b_mode
Definition: md_fops.h:72
uint32_t b_mtime
Definition: md_fops.h:83
struct m0_fop_type m0_fop_unlink_rep_fopt
Definition: md_fops.c:71
struct m0_fop_cob g_body
Definition: md_fops.h:203
uint32_t f_bsize
Definition: md_fops.h:267
uint64_t f_bavail
Definition: md_fops.h:270
struct m0_fop_str l_name
Definition: md_fops.h:112
uint64_t b_lid
Definition: md_fops.h:85
struct m0_fop_type m0_fop_rename_fopt
Definition: md_fops.c:65
struct m0_fop_cob o_body
Definition: md_fops.h:162
struct m0_fid b_pver
Definition: md_fops.h:88
struct m0_fop_str l_end
Definition: md_fops.h:242
int32_t r_rc
Definition: md_fops.h:155
uint32_t b_atime
Definition: md_fops.h:82
struct m0_fop_str s_key
Definition: md_fops.h:215
struct m0_fop_buf l_buf
Definition: md_fops.h:244
uint64_t f_files
Definition: md_fops.h:271
struct m0_fop_type m0_fop_unlink_fopt
Definition: md_fops.c:55
uint8_t * b_addr
Definition: md_fops.h:93
struct m0_fop_type m0_fop_link_rep_fopt
Definition: md_fops.c:70
struct m0_fop_str g_key
Definition: md_fops.h:204
struct m0_fop_cob r_tbody
Definition: md_fops.h:147
struct m0_fop_str g_value
Definition: md_fops.h:210
struct m0_fop_str r_end
Definition: md_fops.h:255
struct m0_fop_type m0_fop_setattr_rep_fopt
Definition: md_fops.c:74
struct m0_fop_cob g_body
Definition: md_fops.h:199
struct m0_fop_type m0_fop_getxattr_fopt
Definition: md_fops.c:61
struct m0_fop_cob c_body
Definition: md_fops.h:97
uint64_t b_blocks
Definition: md_fops.h:75
struct m0_fop_type m0_fop_readdir_fopt
Definition: md_fops.c:66
struct m0_fop_str s_value
Definition: md_fops.h:216
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:214
struct m0_fop_str r_path
Definition: md_fops.h:249
Definition: fid.h:38
uint64_t b_blksize
Definition: md_fops.h:74
uint64_t b_version
Definition: md_fops.h:69
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:146
struct m0_fop_str r_tpath
Definition: md_fops.h:149
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:256
struct m0_fop_cob l_body
Definition: md_fops.h:237
struct m0_fid f_root
Definition: md_fops.h:274
struct m0_fop_cob o_body
Definition: md_fops.h:167
struct m0_fop_cob c_body
Definition: md_fops.h:178
struct m0_fop_type m0_fop_link_fopt
Definition: md_fops.c:54
struct m0_fid b_pfid
Definition: md_fops.h:86
struct m0_fop_type m0_fop_open_rep_fopt
Definition: md_fops.c:72
struct m0_fop_cob l_body
Definition: md_fops.h:243
struct m0_fop_str c_target
Definition: md_fops.h:98
int32_t f_rc
Definition: md_fops.h:265
uint64_t f_flags
Definition: md_fops.h:261
struct m0_fop_cob l_body
Definition: md_fops.h:117
int32_t c_rc
Definition: md_fops.h:104
uint64_t f_type
Definition: md_fops.h:266
struct m0_fop_cob d_body
Definition: md_fops.h:232
struct m0_fop_type m0_fop_statfs_rep_fopt
Definition: md_fops.c:80
struct m0_fop_cob s_body
Definition: md_fops.h:182
struct m0_fop_str d_key
Definition: md_fops.h:227
uint32_t b_gid
Definition: md_fops.h:78
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:106
uint32_t b_count
Definition: md_fops.h:92
struct m0_fop_str c_name
Definition: md_fops.h:100
uint32_t b_sid
Definition: md_fops.h:79
struct m0_fop_cob c_body
Definition: md_fops.h:105