Motr  M0
io_service.h
Go to the documentation of this file.
1 /* -*- C -*- */
2 /*
3  * Copyright (c) 2012-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_IOSERVICE_IO_SERVICE_H__
26 #define __MOTR_IOSERVICE_IO_SERVICE_H__
27 
52 #include "net/buffer_pool.h"
53 #include "reqh/reqh_service.h"
54 #include "lib/chan.h"
55 #include "lib/tlist.h"
56 #include "cob/cob.h"
57 #include "layout/layout.h"
58 #include "rpc/conn.h"
59 #include "rpc/session.h"
60 #include "ioservice/ios_start_sm.h" /* m0_ios_start_sm */
61 #include "pool/pool_machine.h" /* struct m0_poolmach_versions */
62 
63 struct m0_fom;
64 
65 M0_INTERNAL int m0_ios_register(void);
66 M0_INTERNAL void m0_ios_unregister(void);
67 
72 #define M0_BYTECOUNT_USER_ID 8881212
73 
87  uint64_t rios_bp_magic;
88 };
89 
101 
110 
115 
117  struct m0_fom *rios_fom;
119  uint64_t rios_magic;
120 };
121 
122 M0_INTERNAL bool m0_reqh_io_service_invariant(const struct m0_reqh_io_service
123  *rios);
124 
125 M0_INTERNAL void m0_ios_cdom_get(struct m0_reqh *reqh,
126  struct m0_cob_domain **out);
127 
128 M0_INTERNAL void m0_ios_cdom_fini(struct m0_reqh *reqh);
129 
134 };
135 
136 enum {
138 };
139 
142  uint32_t imc_nr;
143 };
144 
145 M0_INTERNAL void m0_ios_mds_conn_fini(struct m0_reqh *reqh);
146 
147 M0_INTERNAL int m0_ios_mds_getattr(struct m0_reqh *reqh,
148  const struct m0_fid *gfid,
149  struct m0_cob_attr *attr);
150 M0_INTERNAL int m0_ios_getattr(struct m0_reqh *reqh,
151  const struct m0_fid *gfid,
152  uint64_t index,
153  struct m0_cob_attr *attr);
154 
155 M0_INTERNAL int m0_ios_mds_getattr_async(struct m0_reqh *reqh,
156  const struct m0_fid *gfid,
157  struct m0_cob_attr *attr,
158  void (*cb)(void *arg, int rc),
159  void *arg);
160 M0_INTERNAL int m0_ios_getattr_async(struct m0_reqh *reqh,
161  const struct m0_fid *gfid,
162  struct m0_cob_attr *attr,
163  uint64_t index,
164  void (*cb)(void *arg, int rc),
165  void *arg);
166 M0_INTERNAL int m0_ios_cob_getattr_async(const struct m0_fid *gfid,
167  struct m0_cob_attr *attr,
168  uint64_t cob_idx,
169  struct m0_pool_version *pv,
170  void (*cb)(void *arg, int rc),
171  void *arg);
172 
181 M0_INTERNAL void m0_ios_net_buffer_pool_size_set(uint32_t buffer_pool_size);
182 
185 #endif /* __MOTR_IOSERVICE_IO_SERVICE_H__ */
186 /*
187  * Local variables:
188  * c-indentation-style: "K&R"
189  * c-basic-offset: 8
190  * tab-width: 8
191  * fill-column: 80
192  * scroll-step: 1
193  * End:
194  */
M0_INTERNAL bool m0_reqh_io_service_invariant(const struct m0_reqh_io_service *rios)
Definition: io_service.c:183
M0_INTERNAL int m0_ios_mds_getattr(struct m0_reqh *reqh, const struct m0_fid *gfid, struct m0_cob_attr *attr)
Definition: io_service.c:663
struct m0_tl rios_buffer_pools
Definition: io_service.h:98
struct m0_tlink rios_bp_linkage
Definition: io_service.h:85
struct m0_pool_version * pv
Definition: dir.c:629
struct m0_rpc_client_ctx * rios_mds_rpc_ctx
Definition: io_service.h:108
M0_INTERNAL void m0_ios_cdom_get(struct m0_reqh *reqh, struct m0_cob_domain **out)
Definition: io_service.c:463
struct m0_net_domain * rios_ndom
Definition: io_service.h:81
struct m0_reqh_service rios_gen
Definition: io_service.h:96
struct m0_chan rios_bp_wait
Definition: io_service.h:83
uint64_t rios_magic
Definition: io_service.h:119
struct m0_rpc_session imc_session
Definition: io_service.h:132
struct m0_clink rios_clink
Definition: io_service.h:114
M0_INTERNAL void m0_ios_unregister(void)
Definition: io_service.c:174
M0_INTERNAL int m0_ios_cob_getattr_async(const struct m0_fid *gfid, struct m0_cob_attr *attr, uint64_t cob_idx, struct m0_pool_version *pv, void(*cb)(void *arg, int rc), void *arg)
Definition: io_service.c:891
struct m0_net_buffer_pool rios_bp
Definition: io_service.h:79
M0_INTERNAL int m0_ios_getattr_async(struct m0_reqh *reqh, const struct m0_fid *gfid, struct m0_cob_attr *attr, uint64_t index, void(*cb)(void *arg, int rc), void *arg)
Definition: io_service.c:916
struct m0_cob_domain * rios_cdom
Definition: io_service.h:100
static void attr(struct m0_addb2__context *ctx, const uint64_t *v, char *buf)
Definition: dump.c:949
uint64_t rios_bp_magic
Definition: io_service.h:87
M0_INTERNAL int m0_ios_register(void)
Definition: io_service.c:158
struct m0_ios_start_sm rios_sm
Definition: io_service.h:112
Definition: tlist.h:251
struct m0_fom * rios_fom
Definition: io_service.h:117
M0_INTERNAL void m0_ios_cdom_fini(struct m0_reqh *reqh)
Definition: io_service.c:474
Definition: reqh.h:94
Definition: chan.h:229
M0_INTERNAL int m0_ios_mds_getattr_async(struct m0_reqh *reqh, const struct m0_fid *gfid, struct m0_cob_attr *attr, void(*cb)(void *arg, int rc), void *arg)
Definition: io_service.c:940
Definition: fom.h:481
struct m0_reqh reqh
Definition: rm_foms.c:48
M0_INTERNAL void m0_ios_mds_conn_fini(struct m0_reqh *reqh)
Definition: io_service.c:617
Definition: fid.h:38
M0_INTERNAL int m0_ios_getattr(struct m0_reqh *reqh, const struct m0_fid *gfid, uint64_t index, struct m0_cob_attr *attr)
Definition: io_service.c:814
M0_INTERNAL void m0_ios_net_buffer_pool_size_set(uint32_t buffer_pool_size)
Definition: io_service.c:994
struct m0_net_domain rios_cl_ndom
Definition: io_service.h:109
struct m0_rpc_conn imc_conn
Definition: io_service.h:131
struct m0_ios_mds_conn * imc_map[M0T1FS_MAX_NR_MDS]
Definition: io_service.h:141
#define out(...)
Definition: gen.c:41
struct m0_fid gfid
Definition: dir.c:626
int32_t rc
Definition: trigger_fop.h:47