25 #ifndef __MOTR_BE_OP_H__ 26 #define __MOTR_BE_OP_H__ 93 struct m0_be_op__btree {
190 #define M0_BE_OP_SYNC(op_obj, action) \ 192 struct m0_be_op op_obj = {}; \ 193 M0_BE_OP_SYNC_WITH(&op_obj, action); \ 196 #define M0_BE_OP_SYNC_RC(op_obj, action) \ 198 struct m0_be_op op_obj = {}; \ 199 M0_BE_OP_SYNC_WITH_RC(&op_obj, action); \ 207 #define M0_BE_OP_SYNC_WITH(op, action) \ 209 struct m0_be_op *__opp = (op); \ 211 m0_be_op_init(__opp); \ 213 m0_be_op_wait(__opp); \ 214 m0_be_op_fini(__opp); \ 217 #define M0_BE_OP_SYNC_WITH_RC(op, action) \ 219 struct m0_be_op *__opp = (op); \ 222 m0_be_op_init(__opp); \ 224 m0_be_op_wait(__opp); \ 225 __op_rc = m0_be_op_rc(__opp); \ 226 m0_be_op_fini(__opp); \ 243 #define M0_BE_OP_SYNC_RET(op_obj, action, member) \ 245 struct m0_be_op op_obj = {}; \ 246 M0_BE_OP_SYNC_RET_WITH(&op_obj, action, member); \ 253 #define M0_BE_OP_SYNC_RET_WITH(op, action, member) \ 255 struct m0_be_op *__opp = (op); \ 256 typeof(__opp->member) __result; \ 258 m0_be_op_init(__opp); \ 260 m0_be_op_wait(__opp); \ 261 __result = __opp->member; \ 262 m0_be_op_fini(__opp); \ M0_INTERNAL int m0_be_op_rc(struct m0_be_op *op)
struct m0_be_op::@39::m0_be_op__btree u_btree
M0_INTERNAL void m0_be_op_unlock(struct m0_be_op *op)
void(* m0_be_op_cb_t)(struct m0_be_op *op, void *param)
M0_INTERNAL void m0_be_op_callback_set(struct m0_be_op *op, m0_be_op_cb_t cb, void *param, enum m0_be_op_state state)
struct m0_sm_group bo_sm_group
M0_INTERNAL void m0_be_op_rc_set(struct m0_be_op *op, int rc)
struct m0_be_op * bo_parent
struct m0_be_btree * t_tree
struct m0_be_op::@39::@40 u_emap
M0_INTERNAL void m0_be_op_done(struct m0_be_op *op)
struct m0_tlink bo_set_link
M0_INTERNAL void m0_be_op_reset(struct m0_be_op *op)
M0_INTERNAL void m0_be_op_active(struct m0_be_op *op)
M0_INTERNAL int m0_be_op_tick_ret(struct m0_be_op *op, struct m0_fom *fom, int next_state)
uint64_t bo_set_link_magic
m0_be_op_cb_t bo_cb_active
void * bo_cb_active_param
M0_INTERNAL void m0_be_op_fini(struct m0_be_op *op)
M0_INTERNAL void m0_be_op_set_add(struct m0_be_op *parent, struct m0_be_op *child)
struct m0_be_btree_anchor * t_anchor
M0_INTERNAL bool m0_be_op_is_locked(const struct m0_be_op *op)
enum m0_be_op_type bo_utype
M0_INTERNAL void m0_be_op_init(struct m0_be_op *op)
M0_INTERNAL bool m0_be_op_is_done(struct m0_be_op *op)
M0_INTERNAL void m0_be_op_lock(struct m0_be_op *op)
M0_INTERNAL void m0_be_op_wait(struct m0_be_op *op)
const struct m0_buf * t_in