25 #ifndef __MOTR_FILE_DI_H__ 26 #define __MOTR_FILE_DI_H__ 85 #ifdef ENABLE_DATA_INTEGRITY 147 uint64_t *cksum_field);
156 uint64_t *cksum_field);
158 #define M0_MD_DI_SET(obj, field) \ 160 void *__obj = (obj); \ 161 m0_md_di_set(__obj, sizeof *(obj), &__obj->field); \ 164 #define M0_MD_DI_CHK(obj, field) \ 166 void *__obj = (obj); \ 167 m0_md_di_chk(__obj, sizeof *(obj), &__obj->field); \ 177 M0_INTERNAL
void m0_crc32(
const void *
data, uint64_t len,
189 const uint64_t *cksum);
uint64_t(* do_out_shift)(const struct m0_file *file)
uint64_t(* do_mask)(const struct m0_file *file)
const struct m0_di_type * do_type
void(* do_sum)(const struct m0_file *file, const struct m0_indexvec *io_info, const struct m0_bufvec *in, struct m0_bufvec *out)
M0_INTERNAL bool m0_crc32_chk(const void *data, uint64_t len, const uint64_t *cksum)
M0_INTERNAL void m0_crc32(const void *data, uint64_t len, uint64_t *cksum)
uint64_t(* do_in_shift)(const struct m0_file *file)
bool(* do_check)(const struct m0_file *file, const struct m0_indexvec *io_info, const struct m0_bufvec *in, const struct m0_bufvec *out)
M0_INTERNAL m0_bcount_t m0_di_size_get(const struct m0_file *file, const m0_bcount_t size)
M0_INTERNAL const struct m0_di_ops * m0_di_ops_get(enum m0_di_types di_type)
M0_INTERNAL bool m0_md_di_chk(void *addr, m0_bcount_t nob, uint64_t *cksum_field)
M0_INTERNAL void m0_md_di_set(void *addr, m0_bcount_t nob, uint64_t *cksum_field)