Motr  M0
iter.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_SNS_CM_ITER_H__
26 #define __MOTR_SNS_CM_ITER_H__
27 
28 #include "sm/sm.h"
29 #include "cob/ns_iter.h"
30 #include "layout/pdclust.h"
31 #include "layout/linear_enum.h"
32 
38 struct m0_cm;
39 struct m0_sns_cm;
40 struct m0_sns_cm_ag;
41 struct m0_cm_cp;
42 
51  struct m0_fid ifc_gfid;
52 
54 
57 
59 
61  uint32_t ifc_upg;
62 
64  uint32_t ifc_dpupg;
65 
67  uint64_t ifc_group_last;
68 
75 
81 
84 
86 };
87 
98  struct m0_sm si_sm;
99 
102 
103  struct m0_fom *si_fom;
104 
110 
112 
115 
120  uint64_t si_total_files;
121 
122  uint64_t si_magix;
123 };
124 
125 M0_INTERNAL int m0_sns_cm_iter_init(struct m0_sns_cm_iter *it);
126 M0_INTERNAL void m0_sns_cm_iter_fini(struct m0_sns_cm_iter *it);
127 
128 M0_INTERNAL int m0_sns_cm_iter_start(struct m0_sns_cm_iter *it);
129 M0_INTERNAL void m0_sns_cm_iter_stop(struct m0_sns_cm_iter *it);
130 
140 M0_INTERNAL int m0_sns_cm_iter_next(struct m0_cm *cm, struct m0_cm_cp *cp);
141 
150 M0_INTERNAL void m0_sns_cm_iter_tgt_unit_to_cob(struct m0_sns_cm_ag *rag);
151 
152 M0_INTERNAL uint64_t
154 
155 M0_INTERNAL ssize_t m0_sns_cm_iter_file_size(struct m0_fid *gfid);
156 
160 M0_INTERNAL int m0_sns_cm_fctx_pm(struct m0_sns_cm_file_ctx *fctx, struct m0_fid *gfid,
161  struct m0_poolmach **mach);
162 
164 #endif /* __MOTR_SNS_CM_ITER_H__ */
165 /*
166  * Local variables:
167  * c-indentation-style: "K&R"
168  * c-basic-offset: 8
169  * tab-width: 8
170  * fill-column: 80
171  * scroll-step: 1
172  * End:
173  */
struct m0_sm si_sm
Definition: iter.h:98
M0_INTERNAL void m0_sns_cm_iter_tgt_unit_to_cob(struct m0_sns_cm_ag *rag)
Definition: cm.h:205
struct m0_pdclust_instance * ifc_pi
Definition: iter.h:56
uint64_t si_total_files
Definition: iter.h:120
struct m0_cm_aggr_group * si_ag
Definition: iter.h:111
struct m0_fid ifc_cob_fid
Definition: iter.h:83
struct m0_sns_cm_file_ctx * ifc_fctx
Definition: iter.h:53
struct m0_poolmach * ifc_pm
Definition: iter.h:58
M0_INTERNAL void m0_sns_cm_iter_stop(struct m0_sns_cm_iter *it)
Definition: iter.c:908
Definition: cp.h:160
struct m0_pdclust_src_addr ifc_sa
Definition: iter.h:74
static struct m0_be_emap_cursor it
Definition: extmap.c:46
static struct m0_addb2_mach * mach
Definition: storage.c:42
M0_INTERNAL int m0_sns_cm_iter_init(struct m0_sns_cm_iter *it)
Definition: iter.c:871
struct m0_fom * si_fom
Definition: iter.h:103
static struct m0_cm * cm
Definition: cm.c:63
uint32_t ifc_dpupg
Definition: iter.h:64
M0_INTERNAL ssize_t m0_sns_cm_iter_file_size(struct m0_fid *gfid)
bool ifc_cob_is_spare_unit
Definition: iter.h:85
uint64_t si_magix
Definition: iter.h:122
struct m0_fid ifc_gfid
Definition: iter.h:51
M0_INTERNAL uint64_t m0_sns_cm_iter_failures_nr(const struct m0_sns_cm_iter *it)
M0_INTERNAL int m0_sns_cm_fctx_pm(struct m0_sns_cm_file_ctx *fctx, struct m0_fid *gfid, struct m0_poolmach **mach)
struct m0_cob_fid_ns_iter si_cns_it
Definition: iter.h:114
M0_INTERNAL int m0_sns_cm_iter_next(struct m0_cm *cm, struct m0_cm_cp *cp)
Definition: iter.c:762
Definition: fom.h:481
struct m0_sns_cm_iter_file_ctx si_fc
Definition: iter.h:101
uint64_t ifc_group_last
Definition: iter.h:67
Definition: fid.h:38
struct m0_sns_cm_cp * si_cp
Definition: iter.h:109
Definition: cm.h:166
Definition: sm.h:301
M0_INTERNAL int m0_sns_cm_iter_start(struct m0_sns_cm_iter *it)
Definition: iter.c:888
static struct m0_sns_cm_file_ctx fctx
Definition: net.c:55
uint32_t ifc_upg
Definition: iter.h:61
static struct m0_sns_cm_repair_ag rag
Definition: net.c:54
struct m0_pdclust_tgt_addr ifc_ta
Definition: iter.h:80
struct m0_fid gfid
Definition: dir.c:626
M0_INTERNAL void m0_sns_cm_iter_fini(struct m0_sns_cm_iter *it)
Definition: iter.c:922