M0_INTERNAL void m0_chan_wait(struct m0_clink *link)
static struct m0_chan conflict_chan
static struct m0_list list
M0_INTERNAL void m0_chan_broadcast_lock(struct m0_chan *chan)
int const char const void size_t int flags
M0_INTERNAL void m0_clink_init(struct m0_clink *link, m0_chan_cb_t cb)
static void lcredits_in_complete(struct m0_rm_incoming *in, int32_t rc)
static void local_credits_init(void)
M0_INTERNAL void m0_clink_del_lock(struct m0_clink *link)
struct rm_ut_data rm_test_data
void(* rio_complete)(struct m0_rm_incoming *in, int32_t rc)
const m0_time_t M0_TIME_NEVER
static void held_non_conflicting_test(enum m0_rm_incoming_flags flags)
static struct m0_mutex conflict_mutex
const struct m0_rm_incoming_ops rings_incoming_ops
struct m0_rm_owner * rd_owner
struct m0_rm_resource_type * rd_rt
struct m0_rm_credit rin_want
void barrier_on_barrier_test(void)
struct m0_rm_credit rd_credit
static void held_credits_test(enum m0_rm_incoming_flags flags)
static void local_credits_fini(void)
bool res_tlist_contains(const struct m0_tl *list, const struct m0_rm_resource *res)
M0_INTERNAL void m0_rm_incoming_init(struct m0_rm_incoming *in, struct m0_rm_owner *owner, enum m0_rm_incoming_type type, enum m0_rm_incoming_policy policy, uint64_t flags)
static void failures_test(void)
static void cached_credits_test(enum m0_rm_incoming_flags flags)
void rm_utdata_owner_windup_fini(struct rm_ut_data *data)
M0_INTERNAL void m0_chan_init(struct m0_chan *chan, struct m0_mutex *ch_guard)
static void reserved_credit_get_test(enum m0_rm_incoming_flags flags, enum m0_rm_owner_owned_state type)
static struct m0_chan complete_chan
static void lcredits_in_conflict(struct m0_rm_incoming *in)
static void credits_pinned_number_test(enum m0_rm_incoming_flags flags)
const struct m0_rm_incoming_ops * rin_ops
M0_INTERNAL void m0_mutex_init(struct m0_mutex *mutex)
void rm_utdata_init(struct rm_ut_data *data, enum obj_type type)
static struct m0_clink clink[RDWR_REQUEST_MAX]
void m0_clink_add_lock(struct m0_chan *chan, struct m0_clink *link)
M0_INTERNAL void m0_rm_credit_put(struct m0_rm_incoming *in)
M0_INTERNAL bool m0_chan_timedwait(struct m0_clink *link, const m0_time_t abs_timeout)
const struct m0_rm_incoming_ops lcredits_incoming_ops
m0_time_t m0_time_from_now(uint64_t secs, long ns)
void local_credits_test(void)
M0_INTERNAL void m0_mutex_fini(struct m0_mutex *mutex)
M0_INTERNAL void m0_clink_fini(struct m0_clink *link)
M0_INTERNAL void m0_rm_incoming_fini(struct m0_rm_incoming *in)
struct m0_rm_incoming rd_in
void rings_utdata_ops_set(struct rm_ut_data *data)
void rm_test_owner_capital_raise(struct m0_rm_owner *owner, struct m0_rm_credit *credit)
M0_INTERNAL void m0_chan_fini_lock(struct m0_chan *chan)
M0_INTERNAL void m0_rm_credit_get(struct m0_rm_incoming *in)