Motr  M0
layout.c File Reference
#include "lib/trace.h"
#include "lib/errno.h"
#include "lib/assert.h"
#include "lib/buf.h"
#include "lib/hash_fnc.h"
#include "lib/misc.h"
#include "lib/memory.h"
#include "lib/ext.h"
#include "layout/layout.h"
#include "layout/pdclust.h"
#include "pool/pool.h"
#include "dix/imask.h"
#include "dix/layout.h"
Include dependency graph for layout.c:

Go to the source code of this file.

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_DIX
 

Functions

static int layout_create (struct m0_layout_domain *domain, const struct m0_fid *fid, uint64_t layout_id, struct m0_pool_version *pver, struct m0_dix_linst *dli)
 
M0_INTERNAL uint32_t m0_dix_devices_nr (struct m0_dix_linst *linst)
 
M0_INTERNAL struct m0_pooldevm0_dix_tgt2sdev (struct m0_dix_linst *linst, uint64_t tgt)
 
M0_INTERNAL int m0_dix_layout_init (struct m0_dix_linst *dli, struct m0_layout_domain *domain, const struct m0_fid *fid, uint64_t layout_id, struct m0_pool_version *pver, struct m0_dix_ldesc *dld)
 
M0_INTERNAL void m0_dix_layout_fini (struct m0_dix_linst *li)
 
static void dix_hash (struct m0_dix_ldesc *ldesc, struct m0_buf *buf, uint64_t *hash)
 
static bool unit_is_valid (struct m0_pdclust_attr *attr, uint64_t unit)
 
M0_INTERNAL void m0_dix_target (struct m0_dix_linst *inst, uint64_t unit, struct m0_buf *key, uint64_t *out_id)
 
M0_INTERNAL int m0_dix_ldesc_init (struct m0_dix_ldesc *ld, struct m0_ext *range, m0_bcount_t range_nr, enum m0_dix_hash_fnc_type htype, struct m0_fid *pver)
 
M0_INTERNAL int m0_dix_ldesc_copy (struct m0_dix_ldesc *dst, const struct m0_dix_ldesc *src)
 
M0_INTERNAL void m0_dix_ldesc_fini (struct m0_dix_ldesc *ld)
 
M0_INTERNAL int m0_dix_layout_iter_init (struct m0_dix_layout_iter *iter, const struct m0_fid *index, struct m0_layout_domain *ldom, struct m0_pool_version *pver, struct m0_dix_ldesc *ldesc, struct m0_buf *key)
 
M0_INTERNAL void m0_dix_layout_iter_next (struct m0_dix_layout_iter *iter, uint64_t *tgt)
 
M0_INTERNAL void m0_dix_layout_iter_get_at (struct m0_dix_layout_iter *iter, uint64_t unit, uint64_t *tgt)
 
M0_INTERNAL uint32_t m0_dix_liter_W (struct m0_dix_layout_iter *iter)
 
M0_INTERNAL uint32_t m0_dix_liter_N (struct m0_dix_layout_iter *iter)
 
M0_INTERNAL uint32_t m0_dix_liter_P (struct m0_dix_layout_iter *iter)
 
M0_INTERNAL uint32_t m0_dix_liter_K (struct m0_dix_layout_iter *iter)
 
M0_INTERNAL uint32_t m0_dix_liter_S (struct m0_dix_layout_iter *iter)
 
M0_INTERNAL uint32_t m0_dix_liter_spare_offset (struct m0_dix_layout_iter *iter)
 
M0_INTERNAL uint32_t m0_dix_liter_unit_classify (struct m0_dix_layout_iter *iter, uint64_t unit)
 
M0_INTERNAL void m0_dix_layout_iter_goto (struct m0_dix_layout_iter *iter, uint64_t unit)
 
M0_INTERNAL void m0_dix_layout_iter_reset (struct m0_dix_layout_iter *iter)
 
M0_INTERNAL void m0_dix_layout_iter_fini (struct m0_dix_layout_iter *iter)
 
M0_INTERNAL bool m0_dix_layout_eq (const struct m0_dix_layout *layout1, const struct m0_dix_layout *layout2)