23 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_BE 141 .ot_version = M0_BE_LIST_FORMAT_VERSION,
142 .ot_type = M0_FORMAT_TYPE_BE_LIST,
143 .ot_footer_offset = offsetof(struct m0_be_list, bl_format_footer)
495 bool head_is_dirty =
false;
507 head_is_dirty =
true;
518 head_is_dirty =
true;
541 #undef M0_TRACE_SUBSYSTEM
static void * be_list_link2obj(struct m0_be_list_link *link, const struct m0_be_list_descr *descr)
M0_INTERNAL void * m0_be_list_tail(struct m0_be_list *blist, const struct m0_be_list_descr *descr)
M0_INTERNAL void m0_be_list_del(struct m0_be_list *blist, const struct m0_be_list_descr *descr, struct m0_be_tx *tx, void *obj)
static bool be_tlink_is_in_list(struct m0_be_list_link *link)
M0_INTERNAL void * m0_be_list_head(struct m0_be_list *blist, const struct m0_be_list_descr *descr)
static bool be_tlink_invariant(const struct m0_be_list_link *link, const struct m0_be_list_descr *descr)
static bool m0_addu64_will_overflow(uint64_t a, uint64_t b)
#define M0_BE_TX_CAPTURE_PTR(seg, tx, ptr)
M0_INTERNAL void m0_be_list_create(struct m0_be_list *blist, const struct m0_be_list_descr *descr, struct m0_be_tx *tx)
M0_INTERNAL void m0_be_list_add(struct m0_be_list *blist, const struct m0_be_list_descr *descr, struct m0_be_tx *tx, void *obj)
M0_INTERNAL void * m0_be_list_next(struct m0_be_list *blist, const struct m0_be_list_descr *descr, const void *obj)
#define M0_BE_TX_CREDIT_TYPE(type)
static bool be_list_invariant(const struct m0_be_list *blist, const struct m0_be_list_descr *descr)
static bool be_tlink_is_head(struct m0_be_list *blist, struct m0_be_list_link *link)
M0_INTERNAL void m0_be_list_add_tail(struct m0_be_list *blist, const struct m0_be_list_descr *descr, struct m0_be_tx *tx, void *obj)
M0_INTERNAL void m0_be_tlink_create(void *obj, const struct m0_be_list_descr *descr, struct m0_be_tx *tx)
static struct m0_be_list_link * be_list_obj2link(const void *obj, const struct m0_be_list_descr *descr)
struct m0_be_list_link * bll_prev
M0_INTERNAL void m0_be_tx_credit_mul(struct m0_be_tx_credit *c, m0_bcount_t k)
M0_INTERNAL void m0_be_tx_credit_add(struct m0_be_tx_credit *c0, const struct m0_be_tx_credit *c1)
M0_INTERNAL void * m0_be_list_prev(struct m0_be_list *blist, const struct m0_be_list_descr *descr, const void *obj)
static void be_list_capture(struct m0_be_list *blist, struct m0_be_tx *tx)
M0_INTERNAL void m0_be_list_add_before(struct m0_be_list *blist, const struct m0_be_list_descr *descr, struct m0_be_tx *tx, void *obj, void *obj_new)
M0_INTERNAL void m0_be_tlink_destroy(void *obj, const struct m0_be_list_descr *descr, struct m0_be_tx *tx)
M0_INTERNAL void m0_be_list_add_after(struct m0_be_list *blist, const struct m0_be_list_descr *descr, struct m0_be_tx *tx, void *obj, void *obj_new)
static void be_tlink_capture(struct m0_be_list_link *link, struct m0_be_tx *tx)
struct m0_be_list_link * blh_head
M0_INTERNAL bool m0_be_list_is_empty(struct m0_be_list *blist, const struct m0_be_list_descr *descr)
struct m0_format_header bl_format_header
struct m0_be_list_link * blh_tail
struct m0_be_list_head bl_head
static bool be_tlink_is_tail(struct m0_be_list *blist, struct m0_be_list_link *link)
M0_INTERNAL void m0_be_list_credit(enum m0_be_list_op optype, m0_bcount_t nr, struct m0_be_tx_credit *accum)
M0_INTERNAL void m0_be_list_destroy(struct m0_be_list *blist, const struct m0_be_list_descr *descr, struct m0_be_tx *tx)
#define M0_IMPOSSIBLE(fmt,...)
struct m0_be_list_link * bll_next