30 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_DIX 37 #include "lib/ext_xc.h" 39 #define AT(mask, idx) ((mask)->im_range[idx]) 83 for (
i = 0;
i <
nr;
i++)
106 if (range ==
NULL ||
nr == 0) {
149 M0_PRE(buf_len_bytes != 0);
150 mask_size =
imask_size(mask, buf_len_bytes * 8);
161 for (j = 0; j < rsize && k < mask_size; j++) {
167 *res_len_bits = mask_size;
181 for (
i = 0;
i <
dst->im_nr;
i++)
182 dst->im_range[
i] =
src->im_range[
i];
203 #undef M0_TRACE_SUBSYSTEM
#define M0_ALLOC_ARR(arr, nr)
static void dix_imask_range_free(struct m0_dix_imask *mask)
M0_INTERNAL int m0_dix_imask_init(struct m0_dix_imask *mask, struct m0_ext *range, uint64_t nr)
M0_INTERNAL bool m0_bit_get(void *buffer, m0_bcount_t i)
#define M0_LOG(level,...)
M0_INTERNAL int m0_dix_imask_apply(void *buffer, m0_bcount_t buf_len_bytes, struct m0_dix_imask *mask, void **res, m0_bcount_t *res_len_bits)
M0_INTERNAL bool m0_dix_imask_eq(const struct m0_dix_imask *imask1, const struct m0_dix_imask *imask2)
static m0_bcount_t range_size(const struct m0_ext *range)
#define M0_BYTES(bits_nr)
return M0_ERR(-EOPNOTSUPP)
static m0_bcount_t range_actual_size(const struct m0_ext *range, uint64_t bs_len)
M0_INTERNAL int m0_dix_imask_copy(struct m0_dix_imask *dst, const struct m0_dix_imask *src)
static uint64_t ranges_size(struct m0_ext *range, uint64_t nr, uint64_t bs_len)
static int dix_imask_range_alloc(struct m0_dix_imask *mask, uint64_t nr)
void * m0_alloc(size_t size)
static uint64_t imask_size(struct m0_dix_imask *mask, uint64_t bs_len)
M0_INTERNAL bool m0_dix_imask_is_empty(const struct m0_dix_imask *mask)
#define m0_forall(var, nr,...)
M0_INTERNAL void m0_dix_imask_fini(struct m0_dix_imask *mask)
M0_INTERNAL void m0_bit_set(void *buffer, m0_bcount_t i, bool val)
static void mask_bit_copy(void *buffer, m0_bcount_t pos, void *res, m0_bcount_t respos)
struct m0_pdclust_src_addr src