Motr  M0
imask.c File Reference
#include "lib/trace.h"
#include "lib/memory.h"
#include "lib/errno.h"
#include "dix/imask.h"
#include "lib/misc.h"
#include "lib/ext.h"
#include "lib/ext_xc.h"
Include dependency graph for imask.c:

Go to the source code of this file.

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_DIX
 
#define AT(mask, idx)   ((mask)->im_range[idx])
 

Functions

static m0_bcount_t range_size (const struct m0_ext *range)
 
static m0_bcount_t range_actual_size (const struct m0_ext *range, uint64_t bs_len)
 
static int dix_imask_range_alloc (struct m0_dix_imask *mask, uint64_t nr)
 
static void dix_imask_range_free (struct m0_dix_imask *mask)
 
static uint64_t ranges_size (struct m0_ext *range, uint64_t nr, uint64_t bs_len)
 
static uint64_t imask_size (struct m0_dix_imask *mask, uint64_t bs_len)
 
M0_INTERNAL int m0_dix_imask_init (struct m0_dix_imask *mask, struct m0_ext *range, uint64_t nr)
 
M0_INTERNAL void m0_dix_imask_fini (struct m0_dix_imask *mask)
 
static void mask_bit_copy (void *buffer, m0_bcount_t pos, void *res, m0_bcount_t respos)
 
M0_INTERNAL bool m0_dix_imask_is_empty (const struct m0_dix_imask *mask)
 
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 int m0_dix_imask_copy (struct m0_dix_imask *dst, const struct m0_dix_imask *src)
 
M0_INTERNAL bool m0_dix_imask_eq (const struct m0_dix_imask *imask1, const struct m0_dix_imask *imask2)