43 #include "reqh/ut/io_fop_xc.h" 85 .sd_name =
"Read stob wait",
103 .sd_name =
"Write stob wait",
219 fom_obj =
m0_alloc(
sizeof *fom_obj);
285 oid =
fop->fic_object.f_oid;
293 oid =
fop->fiw_object.f_oid;
301 oid =
fop->fir_object.f_oid;
622 m0_xc_reqh_ut_io_fop_init();
634 .
name =
"Stob create",
636 .
xt = m0_stob_io_create_xc,
644 .
xt = m0_stob_io_read_xc,
650 .
name =
"Stob write",
652 .
xt = m0_stob_io_write_xc,
658 .
name =
"Stob create reply",
660 .
xt = m0_stob_io_create_rep_xc,
664 .
name =
"Stob read reply",
666 .
xt = m0_stob_io_read_rep_xc,
670 .
name =
"Stob write reply",
672 .
xt = m0_stob_io_write_rep_xc,
688 m0_xc_reqh_ut_io_fop_fini();
#define M0_BUFVEC_INIT_BUF(addr_ptr, count_ptr)
void m0_fom_phase_moveif(struct m0_fom *fom, int32_t rc, int phase0, int phase1)
static struct m0_fom_ops stob_read_fom_ops
uint32_t m0_fop_opcode(const struct m0_fop *fop)
struct m0_fop_type m0_stob_io_read_fopt
#define M0_ALLOC_ARR(arr, nr)
const struct m0_sm_conf read_conf
enum m0_stob_io_flags si_flags
static struct m0_fom_ops stob_create_fom_ops
M0_INTERNAL void m0_mutex_unlock(struct m0_mutex *mutex)
M0_INTERNAL void m0_stob_io_fini(struct m0_stob_io *io)
M0_INTERNAL int m0_stob_locate(struct m0_stob *stob)
struct m0_sm_state_descr stob_read_phases[]
M0_INTERNAL void m0_stob_io_credit(const struct m0_stob_io *io, const struct m0_stob_domain *dom, struct m0_be_tx_credit *accum)
#define M0_FOP_TYPE_INIT(ft,...)
static void fom_stob_write_credit(struct m0_fom *fom)
static struct m0_be_tx_credit * m0_fom_tx_credit(struct m0_fom *fom)
static const struct m0_fom_type_ops stob_write_fom_type_ops
int(* fto_create)(struct m0_fop *fop, struct m0_fom **out, struct m0_reqh *reqh)
void * m0_fop_data(const struct m0_fop *fop)
void m0_fop_type_fini(struct m0_fop_type *fopt)
M0_INTERNAL void m0_stob_ad_balloc_set(struct m0_stob_io *io, uint64_t flags)
M0_INTERNAL void m0_sm_conf_extend(const struct m0_sm_state_descr *base, struct m0_sm_state_descr *sub, uint32_t nr)
M0_INTERNAL void m0_fom_wait_on(struct m0_fom *fom, struct m0_chan *chan, struct m0_fom_callback *cb)
struct m0_sm_state_descr stob_create_phases[]
#define container_of(ptr, type, member)
M0_INTERNAL void m0_mutex_lock(struct m0_mutex *mutex)
struct m0_stob * sif_stobj
static struct m0_xcode_type ** xt[]
struct m0_reqh_service_type m0_rpc_service_type
struct stob_io_fop_fid fic_object
const struct m0_sm_conf m0_generic_conf
static struct m0_rpc_item * item
struct m0_fom_type ft_fom_type
struct m0_stob_domain * so_domain
static int stob_create_fom_create(struct m0_fop *fop, struct m0_fom **out, struct m0_reqh *reqh)
static void stob_io_fom_fini(struct m0_fom *fom)
M0_INTERNAL uint32_t m0_stob_block_shift(struct m0_stob *stob)
struct m0_sm_state_descr stob_write_phases[]
static const struct m0_fom_type_ops stob_read_fom_type_ops
struct m0_fop_type m0_stob_io_create_rep_fopt
void m0_fom_init(struct m0_fom *fom, const struct m0_fom_type *fom_type, const struct m0_fom_ops *ops, struct m0_fop *fop, struct m0_fop *reply, struct m0_reqh *reqh)
struct m0_fi_value fiw_value
struct m0_fop_type * f_type
static int stob_io_fop_fom_create_helper(struct m0_fop *fop, struct m0_fom_ops *fom_ops, struct m0_fop_type *fop_type, struct m0_fom **out, struct m0_reqh *reqh)
struct m0_stob_domain * reqh_ut_stob_domain_find(void)
struct m0_fop_type m0_stob_io_write_fopt
static const struct m0_fom_type_ops stob_create_fom_type_ops
M0_INTERNAL int m0_stob_io_prepare_and_launch(struct m0_stob_io *io, struct m0_stob *obj, struct m0_dtx *tx, struct m0_io_scope *scope)
int m0_fom_tick_generic(struct m0_fom *fom)
const struct m0_sm_conf write_conf
struct m0_indexvec si_stob
void m0_fom_fini(struct m0_fom *fom)
static struct m0_stob * stob
void m0_fom_phase_move(struct m0_fom *fom, int32_t rc, int phase)
static struct m0_fom_ops stob_write_fom_ops
static int stob_read_fom_create(struct m0_fop *fop, struct m0_fom **out, struct m0_reqh *reqh)
M0_INTERNAL void m0_stob_id_make(uint64_t container, uint64_t key, const struct m0_fid *dom_id, struct m0_stob_id *stob_id)
M0_INTERNAL void * m0_stob_addr_pack(const void *buf, uint32_t shift)
M0_INTERNAL int m0_stob_io_private_setup(struct m0_stob_io *io, struct m0_stob *obj)
const struct m0_rpc_item_type * ri_type
void * m0_alloc(size_t size)
struct m0_fol_frag * si_fol_frag
void m0_stob_io_fop_fini(void)
enum m0_stob_io_state si_state
static m0_bindex_t offset
static size_t stob_find_fom_home_locality(const struct m0_fom *fom)
static struct m0_stob_io io
static int stob_create_fom_tick(struct m0_fom *fom)
struct m0_fop * m0_fop_reply_alloc(struct m0_fop *req, struct m0_fop_type *rept)
M0_INTERNAL int m0_stob_create(struct m0_stob *stob, struct m0_dtx *dtx, const char *str_cfg)
M0_INTERNAL enum m0_stob_state m0_stob_state_get(struct m0_stob *stob)
struct m0_fol_frag sif_fol_frag
struct m0_sm_state_descr * scf_state
static int stob_write_fom_tick(struct m0_fom *fom)
static int stob_write_fom_create(struct m0_fop *fop, struct m0_fom **out, struct m0_reqh *reqh)
struct stob_io_fop_fid fir_object
static int stob_read_fom_tick(struct m0_fom *fom)
M0_INTERNAL int m0_fom_rc(const struct m0_fom *fom)
struct m0_rpc_item * m0_fop_to_rpc_item(const struct m0_fop *fop)
struct m0_fop_type m0_stob_io_write_rep_fopt
static struct m0_fop * fop
struct m0_fop_type m0_stob_io_read_rep_fopt
static struct m0_stob * stob_object_find(const struct stob_io_fop_fid *fid, struct m0_fom *fom)
struct m0_rpc_item_type ft_rpc_item_type
M0_INTERNAL void m0_fom_callback_cancel(struct m0_fom_callback *cb)
M0_INTERNAL void m0_stob_io_init(struct m0_stob_io *io)
M0_INTERNAL int m0_stob_find(const struct m0_stob_id *id, struct m0_stob **out)
void(* fo_fini)(struct m0_fom *fom)
struct stob_io_fop_fid fiw_object
void m0_stob_io_fop_init(void)
M0_INTERNAL void m0_stob_create_credit(struct m0_stob_domain *dom, struct m0_be_tx_credit *accum)
void m0_fom_phase_set(struct m0_fom *fom, int phase)
struct m0_stob_io sif_stio
struct m0_fop * sif_rep_fop
struct m0_fop_type m0_stob_io_create_fopt
M0_INTERNAL void m0_stob_put(struct m0_stob *stob)
struct m0_fi_value firr_value
enum m0_stob_io_opcode si_opcode