24 #ifndef __MOTR_BE_UT_HELPER_H__ 25 #define __MOTR_BE_UT_HELPER_H__ 86 const char *stob_create_cfg,
147 #define M0_BE_UT_ALLOC_PTR(ut_be, ut_seg, ptr) \ 148 m0_be_ut_alloc((ut_be), (ut_seg), \ 149 (void **) &(ptr), sizeof(*(ptr))) 151 #define M0_BE_UT_FREE_PTR(ut_be, ut_seg, ptr) \ 152 m0_be_ut_free((ut_be), (ut_seg), (ptr)) 159 #define M0_BE_UT_TRANSACT(__ut_be, __tx, __cred, __credit_func, __action_func) \ 161 struct m0_be_tx_credit __cred = {}; \ 162 struct m0_be_tx *__tx; \ 165 M0_ALLOC_PTR(__tx); \ 166 M0_ASSERT(__tx != NULL); \ 167 m0_be_ut_tx_init(__tx, (__ut_be)); \ 169 m0_be_tx_prep(__tx, &__cred); \ 170 __rc = m0_be_tx_open_sync(__tx); \ 171 M0_ASSERT_INFO(__rc == 0, "__rc = %d", __rc); \ 174 m0_be_tx_close_sync(__tx); \ 176 m0_be_tx_fini(__tx); \ void m0_be_ut_tx_init(struct m0_be_tx *tx, struct m0_be_ut_backend *ut_be)
static void ptr(struct m0_addb2__context *ctx, const uint64_t *v, char *buf)
void m0_be_ut_seg_reload(struct m0_be_ut_seg *ut_seg)
void m0_be_ut_backend_fini(struct m0_be_ut_backend *ut_be)
M0_INTERNAL int m0_be_ut_backend_init_cfg(struct m0_be_ut_backend *ut_be, const struct m0_be_domain_cfg *cfg, bool mkfs)
void m0_be_ut_seg_fini(struct m0_be_ut_seg *ut_seg)
void m0_be_ut_backend_thread_exit(struct m0_be_ut_backend *ut_be)
struct m0_be_seg * bus_seg
struct m0_mutex but_sgt_lock
void m0_be_ut_backend_init(struct m0_be_ut_backend *ut_be)
char * but_stob_domain_location
M0_INTERNAL uint64_t m0_be_ut_seg_allocate_id(void)
M0_INTERNAL void m0_be_ut_free(struct m0_be_ut_backend *ut_be, struct m0_be_ut_seg *ut_seg, void *ptr)
struct m0_be_ut_seg ut_seg
M0_INTERNAL void m0_be_ut_reqh_destroy(void)
M0_INTERNAL void m0_be_ut_alloc(struct m0_be_ut_backend *ut_be, struct m0_be_ut_seg *ut_seg, void **ptr, m0_bcount_t size)
bool but_sm_groups_unlocked
const struct m0_bob_type m0_ut_be_backend_bobtype
void m0_be_ut_seg_allocator_fini(struct m0_be_ut_seg *ut_seg, struct m0_be_ut_backend *ut_be)
M0_INTERNAL void m0_be_ut_backend_seg_add(struct m0_be_ut_backend *ut_be, const struct m0_be_0type_seg_cfg *seg_cfg, struct m0_be_seg **out)
struct m0_be_ut_backend ut_be
M0_INTERNAL int m0_be_ut_backend_log_resize(struct m0_be_ut_backend *ut_be, const struct m0_be_domain_cfg *cfg)
void m0_be_ut_backend_cfg_default(struct m0_be_domain_cfg *cfg)
struct m0_be_ut_sm_group_thread ** but_sgt
M0_INTERNAL void * m0_be_ut_seg_allocate_addr(m0_bcount_t size)
struct m0_be_ut_backend * bus_backend
struct m0_be_domain but_dom
M0_INTERNAL void m0_be_ut_backend_seg_add2(struct m0_be_ut_backend *ut_be, m0_bcount_t size, bool preallocate, const char *stob_create_cfg, struct m0_be_seg **out)
M0_INTERNAL void m0_be_ut_reqh_create(struct m0_reqh **pptr)
struct m0_sm_group * m0_be_ut_backend_sm_group_lookup(struct m0_be_ut_backend *ut_be)
struct m0_be_domain_cfg but_dom_cfg
M0_INTERNAL void m0_be_ut_backend_sm_group_asts_run(struct m0_be_ut_backend *ut_be)
void m0_be_ut_seg_init(struct m0_be_ut_seg *ut_seg, struct m0_be_ut_backend *ut_be, m0_bcount_t size)
void m0_be_ut_backend_new_grp_lock_state_set(struct m0_be_ut_backend *ut_be, bool unlocked_new)
static struct m0_be_seg * seg
M0_INTERNAL void m0_be_ut_backend_seg_del(struct m0_be_ut_backend *ut_be, struct m0_be_seg *seg)
void m0_be_ut_seg_allocator_init(struct m0_be_ut_seg *ut_seg, struct m0_be_ut_backend *ut_be)
M0_BOB_DECLARE(M0_INTERNAL, m0_be_ut_backend)