Motr  M0
di.c File Reference
#include "lib/trace.h"
#include "stob/battr.h"
#include "file/di.h"
#include "file/file.h"
#include "lib/misc.h"
#include "lib/vec_xc.h"
#include "file/crc.c"
Include dependency graph for di.c:

Go to the source code of this file.

Data Structures

struct  di_info
 

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_FILE
 

Functions

static m0_bcount_t current_pos (const struct di_info *info, int i)
 
static uint64_t file_di_crc_mask (const struct m0_file *file)
 
static uint64_t file_di_crc_in_shift (const struct m0_file *file)
 
static uint64_t file_di_crc_out_shift (const struct m0_file *file)
 
static void file_di_crc_sum (const struct m0_file *file, const struct m0_indexvec *io_info, const struct m0_bufvec *in_vec, struct m0_bufvec *di_vec)
 
static bool file_di_crc_check (const struct m0_file *file, const struct m0_indexvec *io_info, const struct m0_bufvec *in_vec, const struct m0_bufvec *di_vec)
 
static void file_checksum (void(*checksum)(const void *data, m0_bcount_t bsize, uint64_t *csum), const struct m0_bufvec *in_vec, const struct m0_indexvec *io_info, struct di_info *di, struct m0_bufvec *di_vec)
 
static bool file_checksum_check (bool(*checksum)(const void *data, m0_bcount_t bsize, const uint64_t *csum), const struct m0_bufvec *in_vec, const struct m0_indexvec *io_info, struct di_info *di, const struct m0_bufvec *di_vec)
 
static void t10_ref_tag_compute (const struct m0_indexvec *io_info, struct di_info *di, struct m0_bufvec *di_vec)
 
static bool t10_ref_tag_check (const struct m0_indexvec *io_info, struct di_info *di, const struct m0_bufvec *di_vec)
 
static void file_di_info_setup (const struct m0_file *file, const struct m0_indexvec *io_info, struct di_info *di)
 
static void file_di_none_sum (const struct m0_file *file, const struct m0_indexvec *io_info, const struct m0_bufvec *in_vec, struct m0_bufvec *di_vec)
 
static bool file_di_none_check (const struct m0_file *file, const struct m0_indexvec *io_info, const struct m0_bufvec *in_vec, const struct m0_bufvec *di_vec)
 
static uint64_t file_di_none_mask (const struct m0_file *file)
 
static uint64_t file_di_none_in_shift (const struct m0_file *file)
 
static uint64_t file_di_none_out_shift (const struct m0_file *file)
 
static bool file_di_invariant (const struct m0_bufvec *in_vec, const struct m0_bufvec *di_vec, const struct m0_indexvec *io_info, const struct di_info *di)
 
M0_INTERNAL const struct m0_di_opsm0_di_ops_get (enum m0_di_types di_type)
 
M0_INTERNAL void m0_md_di_set (void *addr, m0_bcount_t nob, uint64_t *cksum_field)
 
M0_INTERNAL bool m0_md_di_chk (void *addr, m0_bcount_t nob, uint64_t *cksum_field)
 
M0_INTERNAL m0_bcount_t m0_di_size_get (const struct m0_file *file, const m0_bcount_t size)
 

Variables

static struct m0_di_type file_di_crc
 
static struct m0_di_type file_di_none_type
 
static const struct m0_di_ops di_ops [M0_DI_NR]