24 #ifndef __MOTR_RM_RM_INTERNAL_H__ 25 #define __MOTR_RM_RM_INTERNAL_H__ 263 #define RM_OWNER_LISTS_FOR(owner, expr) \ 265 struct m0_rm_owner *__o = (owner); \ 269 (expr)(&__o->ro_borrowed); \ 270 (expr)(&__o->ro_sublet); \ 272 for (__i = 0; __i < ARRAY_SIZE(__o->ro_owned); __i++) \ 273 (expr)(&__o->ro_owned[__i]); \ 275 for (__i = 0; __i < ARRAY_SIZE(__o->ro_incoming); __i++) { \ 276 for (__j = 0; __j < ARRAY_SIZE(__o->ro_incoming[__i]); __j++) \ 277 (expr)(&__o->ro_incoming[__i][__j]); \ 280 for (__i = 0; __i < ARRAY_SIZE(__o->ro_outgoing); __i++) \ 281 (expr)(&__o->ro_outgoing[__i]); \ 305 return &
res->r_type->rt_sm_grp;
M0_INTERNAL int m0_rm_outgoing_init(struct m0_rm_outgoing *out, enum m0_rm_outgoing_type req_type, struct m0_rm_remote *other, struct m0_rm_credit *credit)
int m0_rm_resource_owner_find(const struct m0_rm_resource *resource, struct m0_rm_owner **owner)
static struct m0_list list
int const char const void size_t int flags
M0_INTERNAL void m0_rm_outgoing_send(struct m0_rm_outgoing *outgoing)
M0_INTERNAL int m0_rm_owner_loan_debit(struct m0_rm_owner *owner, struct m0_rm_loan *paid_loan, struct m0_tl *list)
struct m0_cookie ri_rem_owner_cookie
static struct m0_rm_remote creditor
struct m0_cookie ri_loan_cookie
M0_INTERNAL int m0_rm_reverse_session_get(struct m0_rm_remote_incoming *rem_in, struct m0_rm_remote *remote)
int m0_rm_revoke_done(struct m0_rm_outgoing *out)
struct m0_rm_credit rin_want
M0_INTERNAL int m0_rm_loan_init(struct m0_rm_loan *loan, const struct m0_rm_credit *credit, struct m0_rm_remote *creditor)
struct m0_cookie ri_owner_cookie
struct m0_rm_owner * cr_owner
M0_INTERNAL int m0_rm_loan_settle(struct m0_rm_owner *owner, struct m0_rm_loan *loan)
static enum m0_rm_owner_state owner_state(const struct m0_rm_owner *owner)
static enum m0_rm_incoming_state incoming_state(const struct m0_rm_incoming *in)
M0_BOB_DECLARE(M0_INTERNAL, m0_rm_loan)
M0_INTERNAL int m0_rm_pin_add(struct m0_rm_incoming *in, struct m0_rm_credit *credit, uint32_t flags)
struct m0_pdclust_instance pi
M0_INTERNAL int m0_rm_borrow_done(struct m0_rm_outgoing *out, struct m0_rm_loan *loan)
static struct m0_sm_group * owner_grp(const struct m0_rm_owner *owner)
static struct m0_sm_group * resource_grp(const struct m0_rm_resource *res)
static struct m0_rm_resource * incoming_to_resource(struct m0_rm_incoming *in)
M0_INTERNAL int granted_maybe_reserve(struct m0_rm_credit *granted, struct m0_rm_credit *to_cache)
M0_INTERNAL int m0_rm_revoke_commit(struct m0_rm_remote_incoming *rvk)
M0_INTERNAL void m0_rm_loan_fini(struct m0_rm_loan *loan)
struct m0_rm_incoming ri_incoming
M0_INTERNAL void m0_rm_outgoing_complete(struct m0_rm_outgoing *og)
static struct m0_rm_remote * remote
M0_TL_DECLARE(res, M0_INTERNAL, struct m0_rm_resource)
M0_INTERNAL int m0_rm_loan_alloc(struct m0_rm_loan **loan, const struct m0_rm_credit *credit, struct m0_rm_remote *creditor)
M0_INTERNAL int m0_rm_request_out(enum m0_rm_outgoing_type otype, struct m0_rm_incoming *in, struct m0_rm_loan *loan, struct m0_rm_credit *credit, struct m0_rm_remote *remote)
M0_TL_DESCR_DECLARE(res, extern)
M0_INTERNAL struct m0_rm_remote * m0_rm_remote_find(struct m0_rm_remote_incoming *rem_in)
M0_EXTERN const struct m0_bob_type loan_bob
struct m0_uint128 ri_group_id
M0_INTERNAL int m0_rm_borrow_commit(struct m0_rm_remote_incoming *bor)
struct m0_rm_resource * ro_resource
M0_INTERNAL void m0_rm_outgoing_fini(struct m0_rm_outgoing *out)