Motr  M0
ios_start_sm.h
Go to the documentation of this file.
1 /* -*- C -*- */
2 /*
3  * Copyright (c) 2011-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_IOS_START_SM_H__
26 #define __MOTR_IOSERVICE_IOS_START_SM_H__
27 
42 #include "lib/chan.h"
43 #include "cob/cob.h"
44 #include "conf/confc.h"
45 #include "conf/diter.h"
46 #include "dtm/dtm.h"
47 #include "sm/sm.h"
48 
49 struct m0_fom;
50 struct m0_reqh;
51 struct m0_be_seg;
52 struct m0_be_tx;
53 struct m0_poolmach;
54 
55 
60 {
66  struct m0_sm ism_sm;
74  struct m0_reqh *ism_reqh;
76  struct m0_be_tx ism_tx;
83 };
84 
127 };
128 
129 M0_INTERNAL void m0_ios_start_lock(struct m0_ios_start_sm *ios_sm);
130 M0_INTERNAL void m0_ios_start_unlock(struct m0_ios_start_sm *ios_sm);
131 
139 M0_INTERNAL int m0_ios_start_sm_init(struct m0_ios_start_sm *ios_sm,
140  struct m0_reqh_service *service,
141  struct m0_sm_group *grp);
142 
147 M0_INTERNAL void m0_ios_start_sm_exec(struct m0_ios_start_sm *ios_sm);
148 
152 M0_INTERNAL void m0_ios_start_sm_fini(struct m0_ios_start_sm *ios_sm);
153 
158 #endif /* __MOTR_IOSERVICE_IOS_START_SM_H__ */
159 
160 /*
161  * Local variables:
162  * c-indentation-style: "K&R"
163  * c-basic-offset: 8
164  * tab-width: 8
165  * fill-column: 80
166  * scroll-step: 1
167  * End:
168  */
M0_INTERNAL int m0_ios_start_sm_init(struct m0_ios_start_sm *ios_sm, struct m0_reqh_service *service, struct m0_sm_group *grp)
Definition: ios_start_sm.c:190
struct m0_sm_ast ism_ast
Definition: ios_start_sm.h:80
struct m0_sm ism_sm
Definition: ios_start_sm.h:66
M0_INTERNAL void m0_ios_start_unlock(struct m0_ios_start_sm *ios_sm)
Definition: ios_start_sm.c:116
static struct m0_sm_group * grp
Definition: bytecount.c:38
struct m0_be_tx ism_tx
Definition: ios_start_sm.h:76
Definition: sm.h:504
struct m0_clink ism_clink
Definition: ios_start_sm.h:78
struct m0_cob_domain * ism_dom
Definition: ios_start_sm.h:68
struct m0_reqh * ism_reqh
Definition: ios_start_sm.h:74
Definition: reqh.h:94
Definition: seg.h:66
Definition: fom.h:481
m0_ios_start_state
Definition: ios_start_sm.h:91
M0_INTERNAL void m0_ios_start_sm_fini(struct m0_ios_start_sm *ios_sm)
Definition: ios_start_sm.c:463
Definition: sm.h:301
struct m0_cob_domain_id ism_cdom_id
Definition: ios_start_sm.h:70
M0_INTERNAL void m0_ios_start_sm_exec(struct m0_ios_start_sm *ios_sm)
Definition: ios_start_sm.c:211
static struct m0_reqh_service * service[REQH_IN_UT_MAX]
Definition: long_lock_ut.c:46
M0_INTERNAL void m0_ios_start_lock(struct m0_ios_start_sm *ios_sm)
Definition: ios_start_sm.c:111
Definition: tx.h:280
struct m0_reqh_service * ism_service
Definition: ios_start_sm.h:72