23 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_CLIENT 210 struct m0_idx *idxs =
fctx->sfc_ctx->csc_index;
214 int *rcs =
fctx->sfc_rcs;
219 fctx->sfc_i, !!
fctx->sfc_fired, rqtype);
220 if (!
fctx->sfc_fired) {
227 fctx->sfc_fired =
true;
238 &
fctx->sfc_ctx->csc_realm.co_realm,
290 fctx->sfc_fired =
false;
336 foms_to_run =
ctx->csc_foms_nr;
337 for (
i = 0;
i < foms_to_run; ++
i) {
339 fom_s = &
fctx->sfc_fom_s;
341 fctx->sfc_fired =
false;
346 for (
i = 0;
i < foms_to_run; ++
i)
366 ctx->csc_foms_nr = foms_nr;
369 for (
i = 0;
i < foms_nr; ++
i) {
538 #undef M0_TRACE_SUBSYSTEM
static int st_mt_init(void)
void st_lsfid_cancel(void)
static void st_kv_alloc_and_fill(struct m0_bufvec *keys, struct m0_bufvec *vals, uint32_t first, uint32_t last, bool emptyvals)
#define M0_ALLOC_ARR(arr, nr)
M0_INTERNAL int m0_reqh_service_start(struct m0_reqh_service *service)
struct m0_idx csc_index[CMT_IDXS_NR]
static void tick(struct m0_locality_chore *chore, struct m0_locality *loc, void *place)
const m0_time_t M0_TIME_NEVER
void m0_op_fini(struct m0_op *op)
#define M0_LOG(level,...)
#define M0_FID_INIT(container, key)
static int64_t m0_atomic64_sub_return(struct m0_atomic64 *a, int64_t d)
struct m0_semaphore sfc_done
static void st_foms_init(struct st_mt_ctxt *ctx)
M0_INTERNAL void m0_fom_wait_on(struct m0_fom *fom, struct m0_chan *chan, struct m0_fom_callback *cb)
void m0_idx_fini(struct m0_idx *idx)
#define container_of(ptr, type, member)
const struct m0_uint128 M0_UBER_REALM
struct m0_atomic64 csc_counter
M0_INTERNAL bool m0_fid_is_set(const struct m0_fid *fid)
struct st_suite st_suite_mt
struct m0_reqh * csc_reqh
M0_INTERNAL struct m0_reqh_service_type * m0_reqh_service_type_find(const char *sname)
M0_INTERNAL void m0_fom_simple_post(struct m0_fom_simple *simpleton, struct m0_reqh *reqh, struct m0_sm_conf *conf, int(*tick)(struct m0_fom *, void *, int *), void(*free)(struct m0_fom_simple *sfom), void *data, size_t locality)
M0_INTERNAL int m0_bufvec_alloc(struct m0_bufvec *bufvec, uint32_t num_segs, m0_bcount_t seg_size)
int32_t m0_op_wait(struct m0_op *op, uint64_t bits, m0_time_t to)
int m0_idx_op(struct m0_idx *idx, enum m0_idx_opcode opcode, struct m0_bufvec *keys, struct m0_bufvec *vals, int32_t *rcs, uint32_t flags, struct m0_op **op)
M0_INTERNAL void m0_bufvec_free(struct m0_bufvec *bufvec)
M0_INTERNAL void m0_sm_group_unlock(struct m0_sm_group *grp)
static M0_UNUSED void print(struct m0_be_list *list)
static void st_fom_free(struct m0_fom_simple *fom_s)
struct m0_bufvec sfc_keys
#define M0_FID_TINIT(type, container, key)
static const struct socktype stype[]
M0_INTERNAL const struct m0_fid_type m0_dix_fid_type
void st_mt_inst(struct m0_client *cli)
static void st_foms_run(struct st_mt_ctxt *ctx, int(*tick)(struct m0_fom *, void *, int *))
void m0_op_launch(struct m0_op **op, uint32_t nr)
M0_INTERNAL bool m0_reqh_service_invariant(const struct m0_reqh_service *svc)
struct m0_container csc_realm
static int st_get_tick(struct m0_fom *fom, void *data, int *phase)
M0_INTERNAL int m0_semaphore_init(struct m0_semaphore *semaphore, unsigned value)
M0_INTERNAL uint64_t m0_reqh_nr_localities(const struct m0_reqh *reqh)
static void st_ifid_fill(struct m0_fid *ifid, int i)
static int st_idx_create_tick(struct m0_fom *fom, void *data, int *phase)
M0_INTERNAL int m0_reqh_service_allocate(struct m0_reqh_service **out, const struct m0_reqh_service_type *stype, struct m0_reqh_context *rctx)
struct m0_fom_simple sfc_fom_s
M0_INTERNAL void m0_reqh_service_init(struct m0_reqh_service *service, struct m0_reqh *reqh, const struct m0_fid *fid)
struct m0_client * csc_cli
void m0_op_cancel(struct m0_op **op, uint32_t nr)
static struct fdmi_ctx ctx
struct st_fom_ctx * csc_fctx
void st_lsfid_inst_cancel(struct m0_client *cli, void(*print)(struct m0_fid *))
#define m0_forall(var, nr,...)
int m0_entity_create(struct m0_fid *pool, struct m0_entity *entity, struct m0_op **op)
static void st_op_unlock(struct m0_op *op)
M0_BASSERT(CMT_PUTS >=CMT_IDXS)
static void st_op_lock(struct m0_op *op)
struct m0_bufvec sfc_vals
static int st_common_tick(struct m0_fom *fom, void *data, int *phase, int rqtype)
struct m0_fid csc_ifid[CMT_IDXS_NR]
static int st_put_tick(struct m0_fom *fom, void *data, int *phase)
static void st_vals_check(struct m0_bufvec *keys, struct m0_bufvec *vals, uint32_t first, uint32_t last)
void st_lsfid_inst(struct m0_client *cli, void(*print)(struct m0_fid *))
static struct m0_realm realm
m0_time_t m0_time_from_now(uint64_t secs, long ns)
struct m0_client * st_get_instance()
static int st_op_tick_ret(struct m0_op *op, struct m0_fom *fom)
static void st_dix_kv_destroy(struct m0_bufvec *keys, struct m0_bufvec *vals)
M0_INTERNAL void m0_sm_group_lock(struct m0_sm_group *grp)
static int st_idx_delete_tick(struct m0_fom *fom, void *data, int *phase)
int m0_entity_delete(struct m0_entity *entity, struct m0_op **op)
void m0_container_init(struct m0_container *con, struct m0_realm *parent, const struct m0_uint128 *id, struct m0_client *instance)
static struct m0_sns_cm_file_ctx fctx
struct m0_client * sfc_cli
M0_INTERNAL void m0_semaphore_down(struct m0_semaphore *semaphore)
static int st_del_tick(struct m0_fom *fom, void *data, int *phase)
M0_INTERNAL void m0_semaphore_up(struct m0_semaphore *semaphore)
struct st_mt_ctxt * sfc_ctx
static int st_mt_fini(void)
static struct m0_reqh_service * service[REQH_IN_UT_MAX]
static struct m0_fid ifid
void m0_idx_init(struct m0_idx *idx, struct m0_realm *parent, const struct m0_uint128 *id)
static struct m0_addb2_frame_header last
static void m0_atomic64_set(struct m0_atomic64 *a, int64_t num)
M0_INTERNAL int m0_bufvec_empty_alloc(struct m0_bufvec *bufvec, uint32_t num_segs)
static void fom_simple_svc_start(struct m0_reqh *reqh)
#define M0_IMPOSSIBLE(fmt,...)