Motr  M0
req_internal.h
Go to the documentation of this file.
1 /* -*- C -*- */
2 /*
3  * Copyright (c) 2016-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_DIX_REQ_INTERNAL_H__
26 #define __MOTR_DIX_REQ_INTERNAL_H__
27 
34 #include "lib/buf.h" /* m0_buf */
35 #include "lib/chan.h" /* m0_chan */
36 #include "lib/vec.h" /* m0_bufvec */
37 #include "lib/tlist.h" /* m0_tlink */
38 #include "sm/sm.h" /* m0_sm_ast */
39 #include "pool/pool.h" /* m0_pool_nd_state */
40 #include "cas/client.h" /* m0_cas_req */
41 
42 struct m0_dix_req;
43 struct m0_pool_version;
45 
46 struct m0_dix_item {
47  struct m0_buf dxi_key;
48  struct m0_buf dxi_val;
54  uint64_t dxi_pg_unit;
60  int dxi_rc;
61 };
62 
67  int ds_rc;
68 };
69 
72  uint32_t dcr_index_no;
75  uint64_t dcr_creqs_nr;
77 };
78 
82  uint64_t dcd_cas_reqs_nr;
83  uint64_t dcd_completed_nr;
85 };
86 
89  uint64_t cra_item;
90 };
91 
96  uint32_t crp_flags;
98  uint32_t crp_sdev_idx;
99  uint32_t crp_keys_nr;
100  uint32_t crp_cur_key;
106  uint64_t crp_magix;
112  uint32_t crp_pa_idx;
113 };
114 
124  uint32_t dpu_tgt;
125 
127  uint32_t dpu_sdev_idx;
128 
131 
139 };
140 
143 
144  struct m0_buf dgp_key;
145 
150  uint32_t dgp_next_tgt;
152  uint64_t dgp_item;
154  uint64_t dgp_units_nr;
160 };
161 
164  uint32_t dg_rec_ops_nr;
169  uint64_t dg_cas_reqs_nr;
170  uint64_t dg_completed_nr;
174 };
175 
176 M0_TL_DESCR_DECLARE(cas_rop, M0_EXTERN);
177 M0_TL_DECLARE(cas_rop, M0_INTERNAL, struct m0_dix_cas_rop);
178 
186 M0_INTERNAL int m0_dix_next_result_prepare(struct m0_dix_req *req);
187 
197 M0_INTERNAL int m0_dix_rs_init(struct m0_dix_next_resultset *rs,
198  uint32_t start_keys_nr,
199  uint32_t sctx_nr);
200 
204 M0_INTERNAL void m0_dix_rs_fini(struct m0_dix_next_resultset *rs);
205 
207 #endif /* __MOTR_DIX_REQ_INTERNAL_H__ */
208 
209 /*
210  * Local variables:
211  * c-indentation-style: "K&R"
212  * c-basic-offset: 8
213  * tab-width: 8
214  * fill-column: 80
215  * scroll-step: 1
216  * End:
217  */
218 /*
219  * vim: tabstop=8 shiftwidth=8 noexpandtab textwidth=80 nowrap
220  */
uint32_t dcd_idxop_reqs_nr
Definition: req_internal.h:81
struct m0_dix_pg_unit * dgp_units
Definition: req_internal.h:153
struct m0_dix_req * ds_parent
Definition: req_internal.h:64
struct m0_sm_ast dcd_ast
Definition: req_internal.h:84
struct m0_dix_layout_iter dgp_iter
Definition: req_internal.h:142
static struct io_request req
Definition: file.c:100
struct m0_clink ds_clink
Definition: req_internal.h:66
M0_INTERNAL int m0_dix_next_result_prepare(struct m0_dix_req *req)
Definition: next_merge.c:252
struct m0_dix_cas_req * dcr_creqs
Definition: req_internal.h:74
struct m0_buf dxi_key
Definition: req_internal.h:47
uint32_t dgp_failed_devs_nr
Definition: req_internal.h:159
uint32_t dpu_tgt
Definition: req_internal.h:124
struct m0_pool_version * dcr_pver
Definition: req_internal.h:73
Definition: sm.h:504
M0_INTERNAL void m0_dix_rs_fini(struct m0_dix_next_resultset *rs)
Definition: next_merge.c:356
M0_TL_DECLARE(cas_rop, M0_INTERNAL, struct m0_dix_cas_rop)
struct m0_cas_req crp_creq
Definition: req_internal.h:94
struct m0_buf dxi_val
Definition: req_internal.h:48
Definition: buf.h:37
struct m0_dix_idxop_ctx * dcr_ctx
Definition: req_internal.h:71
M0_TL_DESCR_DECLARE(cas_rop, M0_EXTERN)
uint32_t dpu_sdev_idx
Definition: req_internal.h:127
uint64_t dcd_completed_nr
Definition: req_internal.h:83
uint32_t dg_rec_ops_nr
Definition: req_internal.h:164
uint64_t dcr_creqs_nr
Definition: req_internal.h:75
uint32_t dcr_index_no
Definition: req_internal.h:72
m0_pool_nd_state
Definition: pool_machine.h:57
uint64_t dg_cas_reqs_nr
Definition: req_internal.h:169
uint64_t dgp_item
Definition: req_internal.h:152
Definition: tlist.h:251
struct m0_bufvec crp_keys
Definition: req_internal.h:101
struct m0_buf dgp_key
Definition: req_internal.h:144
struct m0_bufvec crp_vals
Definition: req_internal.h:102
struct m0_dix_cas_rop ** dg_target_rop
Definition: req_internal.h:166
struct m0_dix_idxop_req * dcd_idxop_reqs
Definition: req_internal.h:80
uint64_t crp_magix
Definition: req_internal.h:106
uint64_t dg_completed_nr
Definition: req_internal.h:170
bool dxi_del_phase2
Definition: req_internal.h:59
struct m0_clink crp_clink
Definition: req_internal.h:97
struct m0_dix_rec_op * dg_rec_ops
Definition: req_internal.h:163
uint64_t dcd_cas_reqs_nr
Definition: req_internal.h:82
struct m0_pool_version * dg_pver
Definition: req_internal.h:172
uint64_t dgp_units_nr
Definition: req_internal.h:154
struct m0_dix_crop_attrs * crp_attrs
Definition: req_internal.h:104
M0_INTERNAL int m0_dix_rs_init(struct m0_dix_next_resultset *rs, uint32_t start_keys_nr, uint32_t sctx_nr)
Definition: next_merge.c:342
struct m0_sm_ast dg_ast
Definition: req_internal.h:173
uint32_t crp_pa_idx
Definition: req_internal.h:112
uint32_t crp_flags
Definition: req_internal.h:96
uint64_t dxi_pg_unit
Definition: req_internal.h:54
uint32_t dgp_next_tgt
Definition: req_internal.h:150
struct m0_tlink crp_linkage
Definition: req_internal.h:105
uint32_t crp_keys_nr
Definition: req_internal.h:99
struct m0_tl dg_cas_reqs
Definition: req_internal.h:168
struct m0_cas_req ds_creq
Definition: req_internal.h:65
uint32_t crp_cur_key
Definition: req_internal.h:100
uint32_t crp_sdev_idx
Definition: req_internal.h:98
struct m0_dix_req * crp_parent
Definition: req_internal.h:93
Definition: vec.h:145
enum m0_pool_nd_state dpu_pd_state
Definition: req_internal.h:130