Motr  M0
tx_regmap.c File Reference
#include "lib/trace.h"
#include "be/tx_regmap.h"
#include "be/tx.h"
#include "be/io.h"
#include "lib/ext.h"
#include "lib/errno.h"
#include "lib/memory.h"
#include "lib/assert.h"
#include "lib/misc.h"
#include "lib/arith.h"
Include dependency graph for tx_regmap.c:

Go to the source code of this file.

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_BE
 
#define REGD_EXT(rd)
 
#define ARRAY_ALLOC_NZ(arr, nr)   ((arr) = m0_alloc_nz((nr) * sizeof ((arr)[0])))
 

Functions

M0_INTERNAL bool m0_be_reg_d__invariant (const struct m0_be_reg_d *rd)
 
M0_INTERNAL bool m0_be_reg_d_is_in (const struct m0_be_reg_d *rd, void *ptr)
 
static bool be_reg_d_are_overlapping (const struct m0_be_reg_d *rd1, const struct m0_be_reg_d *rd2)
 
static bool be_reg_d_is_partof (const struct m0_be_reg_d *super, const struct m0_be_reg_d *sub)
 
static void * be_reg_d_fb (const struct m0_be_reg_d *rd)
 
static void * be_reg_d_fb1 (const struct m0_be_reg_d *rd)
 
static void * be_reg_d_lb (const struct m0_be_reg_d *rd)
 
static void * be_reg_d_lb1 (const struct m0_be_reg_d *rd)
 
static m0_bcount_t be_reg_d_size (const struct m0_be_reg_d *rd)
 
static void be_reg_d_sub_make (struct m0_be_reg_d *super, struct m0_be_reg_d *sub)
 
static void be_reg_d_arr_insert2 (void *arr[2], void *value)
 
static void be_reg_d_arr_first_subreg (struct m0_be_reg_d **rd_arr, int nr, void *start, void **addr, m0_bcount_t *size)
 
static bool be_rdt_contains (const struct m0_be_reg_d_tree *rdt, const struct m0_be_reg_d *rd)
 
M0_INTERNAL int m0_be_rdt_init (struct m0_be_reg_d_tree *rdt, size_t size_max)
 
M0_INTERNAL void m0_be_rdt_fini (struct m0_be_reg_d_tree *rdt)
 
M0_INTERNAL bool m0_be_rdt__invariant (const struct m0_be_reg_d_tree *rdt)
 
M0_INTERNAL size_t m0_be_rdt_size (const struct m0_be_reg_d_tree *rdt)
 
static bool be_rdt_check_i (const struct m0_be_reg_d_tree *rdt, void *addr, size_t index)
 
static size_t be_rdt_find_i (const struct m0_be_reg_d_tree *rdt, void *addr)
 
M0_INTERNAL struct m0_be_reg_dm0_be_rdt_find (const struct m0_be_reg_d_tree *rdt, void *addr)
 
M0_INTERNAL struct m0_be_reg_dm0_be_rdt_next (const struct m0_be_reg_d_tree *rdt, struct m0_be_reg_d *prev)
 
M0_INTERNAL void m0_be_rdt_ins (struct m0_be_reg_d_tree *rdt, const struct m0_be_reg_d *rd)
 
M0_INTERNAL struct m0_be_reg_dm0_be_rdt_del (struct m0_be_reg_d_tree *rdt, const struct m0_be_reg_d *rd)
 
M0_INTERNAL void m0_be_rdt_reset (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_fini (struct m0_be_regmap *rm)
 
M0_INTERNAL bool m0_be_regmap__invariant (const struct m0_be_regmap *rm)
 
static struct m0_be_reg_dbe_regmap_find_fb (struct m0_be_regmap *rm, const struct m0_be_reg_d *rd)
 
static void be_regmap_reg_d_cut (struct m0_be_regmap *rm, struct m0_be_reg_d *rd, m0_bcount_t cut_start, m0_bcount_t cut_end)
 
static void be_regmap_reg_d_split (struct m0_be_regmap *rm, struct m0_be_reg_d *rdi, struct m0_be_reg_d *rd, struct m0_be_reg_d *rd_new)
 
M0_INTERNAL void m0_be_regmap_add (struct m0_be_regmap *rm, struct m0_be_reg_d *rd)
 
M0_INTERNAL void m0_be_regmap_del (struct m0_be_regmap *rm, const struct m0_be_reg_d *rd)
 
M0_INTERNAL struct m0_be_reg_dm0_be_regmap_first (struct m0_be_regmap *rm)
 
M0_INTERNAL struct m0_be_reg_dm0_be_regmap_next (struct m0_be_regmap *rm, struct m0_be_reg_d *prev)
 
M0_INTERNAL size_t m0_be_regmap_size (const struct m0_be_regmap *rm)
 
M0_INTERNAL void m0_be_regmap_reset (struct m0_be_regmap *rm)
 
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)
 
M0_INTERNAL void m0_be_reg_area_fini (struct m0_be_reg_area *ra)
 
M0_INTERNAL bool m0_be_reg_area__invariant (const struct m0_be_reg_area *ra)
 
M0_INTERNAL void m0_be_reg_area_used (struct m0_be_reg_area *ra, struct m0_be_tx_credit *used)
 
M0_INTERNAL void m0_be_reg_area_prepared (struct m0_be_reg_area *ra, struct m0_be_tx_credit *prepared)
 
M0_INTERNAL void m0_be_reg_area_captured (struct m0_be_reg_area *ra, struct m0_be_tx_credit *captured)
 
static void be_reg_d_cpy (void *dst, const struct m0_be_reg_d *rd)
 
static void * be_reg_area_alloc (struct m0_be_reg_area *ra, m0_bcount_t size)
 
static void be_reg_area_add_copy (void *data, struct m0_be_reg_d *rd)
 
static void be_reg_area_add (void *data, struct m0_be_reg_d *rd)
 
static void be_reg_area_del (void *data, const struct m0_be_reg_d *rd)
 
static void be_reg_area_cpy_copy (void *data, const struct m0_be_reg_d *super, const struct m0_be_reg_d *rd)
 
static void be_reg_area_cpy (void *data, const struct m0_be_reg_d *super, const struct m0_be_reg_d *rd)
 
static void be_reg_area_cut (void *data, struct m0_be_reg_d *rd, m0_bcount_t cut_at_start, m0_bcount_t cut_at_end)
 
static void be_reg_area_split (void *data, struct m0_be_reg_d *rd, struct m0_be_reg_d *rd_new)
 
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_uncapture (struct m0_be_reg_area *ra, const struct m0_be_reg_d *rd)
 
M0_INTERNAL void m0_be_reg_area_merge_in (struct m0_be_reg_area *ra, struct m0_be_reg_area *src)
 
M0_INTERNAL void m0_be_reg_area_reset (struct m0_be_reg_area *ra)
 
M0_INTERNAL void m0_be_reg_area_optimize (struct m0_be_reg_area *ra)
 
M0_INTERNAL struct m0_be_reg_dm0_be_reg_area_first (struct m0_be_reg_area *ra)
 
M0_INTERNAL struct m0_be_reg_dm0_be_reg_area_next (struct m0_be_reg_area *ra, struct m0_be_reg_d *prev)
 
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_reg_area_merger_fini (struct m0_be_reg_area_merger *brm)
 
M0_INTERNAL void m0_be_reg_area_merger_reset (struct m0_be_reg_area_merger *brm)
 
M0_INTERNAL void m0_be_reg_area_merger_add (struct m0_be_reg_area_merger *brm, struct m0_be_reg_area *ra)
 
static void be_reg_area_merger_max_gen_idx (struct m0_be_reg_area_merger *brm, void *addr, m0_bcount_t size, struct m0_be_reg_d *rd_new)
 
M0_INTERNAL void m0_be_reg_area_merger_merge_to (struct m0_be_reg_area_merger *brm, struct m0_be_reg_area *ra)
 

Variables

static const struct m0_be_regmap_ops be_reg_area_ops_data_copy
 
static const struct m0_be_regmap_ops be_reg_area_ops_data_nocopy
 
static const struct m0_be_regmap_opsbe_reg_area_ops []
 

Macro Definition Documentation

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_BE

Definition at line 23 of file tx_regmap.c.