24 #ifndef __MOTR_BE_TX_REGMAP_H__ 25 #define __MOTR_BE_TX_REGMAP_H__ 67 #define M0_BE_REG_D(reg, buf) (struct m0_be_reg_d) \ 68 { .rd_reg = (reg), .rd_buf = (buf) } 69 #define M0_BE_REG_D_CREDIT(rd) M0_BE_TX_CREDIT(1, (rd)->rd_reg.br_size) 186 bool split_on_absorb);
299 #define M0_BE_REG_AREA_FORALL(ra, rd) \ 300 for ((rd) = m0_be_reg_area_first(ra); \ 302 (rd) = m0_be_reg_area_next((ra), (rd))) 321 int reg_area_nr_max);
static void ptr(struct m0_addb2__context *ctx, const uint64_t *v, char *buf)
M0_INTERNAL struct m0_be_reg_d * m0_be_rdt_next(const struct m0_be_reg_d_tree *rdt, struct m0_be_reg_d *prev)
struct m0_be_reg_d ** brm_pos
M0_INTERNAL struct m0_be_reg_d * m0_be_regmap_first(struct m0_be_regmap *rm)
M0_INTERNAL struct m0_be_reg_d * m0_be_rdt_del(struct m0_be_reg_d_tree *rdt, const struct m0_be_reg_d *rd)
M0_INTERNAL struct m0_be_reg_d * m0_be_reg_area_first(struct m0_be_reg_area *ra)
M0_INTERNAL int m0_be_reg_area_merger_init(struct m0_be_reg_area_merger *brm, int reg_area_nr_max)
M0_INTERNAL void m0_be_regmap_del(struct m0_be_regmap *rm, const struct m0_be_reg_d *rd)
M0_INTERNAL bool m0_be_reg_area__invariant(const struct m0_be_reg_area *ra)
struct m0_be_tx_credit bra_prepared
M0_INTERNAL void m0_be_rdt_fini(struct m0_be_reg_d_tree *rdt)
M0_INTERNAL int m0_be_regmap_init(struct m0_be_regmap *rm, const struct m0_be_regmap_ops *ops, void *ops_data, size_t size_max, bool split_on_absorb)
M0_INTERNAL void m0_be_regmap_add(struct m0_be_regmap *rm, struct m0_be_reg_d *rd)
M0_INTERNAL void m0_be_reg_area_merger_add(struct m0_be_reg_area_merger *brm, struct m0_be_reg_area *ra)
struct m0_be_reg_d * brt_r
m0_bcount_t bra_area_used
void(* rmo_add)(void *data, struct m0_be_reg_d *rd)
M0_INTERNAL void m0_be_reg_area_capture(struct m0_be_reg_area *ra, struct m0_be_reg_d *rd)
M0_INTERNAL void m0_be_reg_area_fini(struct m0_be_reg_area *ra)
M0_INTERNAL int m0_be_reg_area_init(struct m0_be_reg_area *ra, const struct m0_be_tx_credit *prepared, enum m0_be_reg_area_type type)
enum m0_be_reg_area_type bra_type
M0_INTERNAL size_t m0_be_regmap_size(const struct m0_be_regmap *rm)
M0_INTERNAL void m0_be_reg_area_reset(struct m0_be_reg_area *ra)
M0_INTERNAL struct m0_be_reg_d * m0_be_reg_area_next(struct m0_be_reg_area *ra, struct m0_be_reg_d *prev)
M0_INTERNAL void m0_be_reg_area_used(struct m0_be_reg_area *ra, struct m0_be_tx_credit *used)
M0_INTERNAL int m0_be_rdt_init(struct m0_be_reg_d_tree *rdt, size_t size_max)
M0_INTERNAL bool m0_be_reg_d__invariant(const struct m0_be_reg_d *rd)
struct m0_be_tx_credit bra_captured
M0_INTERNAL void m0_be_reg_area_merger_merge_to(struct m0_be_reg_area_merger *brm, struct m0_be_reg_area *ra)
const struct m0_be_regmap_ops * br_ops
void(* rmo_del)(void *data, const struct m0_be_reg_d *rd)
M0_INTERNAL void m0_be_reg_area_captured(struct m0_be_reg_area *ra, struct m0_be_tx_credit *captured)
M0_INTERNAL bool m0_be_regmap__invariant(const struct m0_be_regmap *rm)
M0_INTERNAL void m0_be_reg_area_merge_in(struct m0_be_reg_area *ra, struct m0_be_reg_area *src)
M0_INTERNAL size_t m0_be_rdt_size(const struct m0_be_reg_d_tree *rdt)
void(* rmo_cpy)(void *data, const struct m0_be_reg_d *super, const struct m0_be_reg_d *rd)
M0_INTERNAL void m0_be_reg_area_optimize(struct m0_be_reg_area *ra)
struct m0_be_reg_d_tree br_rdt
M0_INTERNAL void m0_be_reg_area_merger_reset(struct m0_be_reg_area_merger *brm)
M0_INTERNAL struct m0_be_reg_d * m0_be_regmap_next(struct m0_be_regmap *rm, struct m0_be_reg_d *prev)
M0_INTERNAL bool m0_be_rdt__invariant(const struct m0_be_reg_d_tree *rdt)
M0_INTERNAL void m0_be_reg_area_merger_fini(struct m0_be_reg_area_merger *brm)
M0_INTERNAL void m0_be_reg_area_uncapture(struct m0_be_reg_area *ra, const struct m0_be_reg_d *rd)
M0_INTERNAL void m0_be_rdt_ins(struct m0_be_reg_d_tree *rdt, const struct m0_be_reg_d *rd)
void(* rmo_split)(void *data, struct m0_be_reg_d *rd, struct m0_be_reg_d *rd_new)
M0_INTERNAL void m0_be_reg_area_prepared(struct m0_be_reg_area *ra, struct m0_be_tx_credit *prepared)
struct m0_be_reg_area ** brm_reg_areas
M0_INTERNAL bool m0_be_reg_d_is_in(const struct m0_be_reg_d *rd, void *ptr)
M0_INTERNAL void m0_be_rdt_reset(struct m0_be_reg_d_tree *rdt)
struct m0_be_regmap bra_map
M0_INTERNAL struct m0_be_reg_d * m0_be_rdt_find(const struct m0_be_reg_d_tree *rdt, void *addr)
M0_INTERNAL void m0_be_regmap_fini(struct m0_be_regmap *rm)
struct m0_pdclust_src_addr src
void(* rmo_cut)(void *data, struct m0_be_reg_d *rd, m0_bcount_t cut_at_start, m0_bcount_t cut_at_end)
M0_INTERNAL void m0_be_regmap_reset(struct m0_be_regmap *rm)