22 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_CONF 27 #define X_CONF(name, key) \ 28 const struct m0_fid M0_CONF_ ## name ## _FID = M0_FID_TINIT('/', 0, (key)); 49 for (
i = 0;
i < how_nr; ++
i) {
71 for (
i = 0;
i < nr_rels; ++
i) {
90 if (
dest->af_count == 0)
112 dest->xo_u.u_header.ch_id =
src->co_id;
137 dest->au_count = src_nr;
139 dest->au_count *
sizeof dest->au_elems[0]);
171 if (
src->af_count == 0)
178 for (
i = 0;
i <
src->af_count; ++
i) {
205 if (
dest->af_count == 0)
212 for (
i = 0;
i <
dest->af_count; ++
i)
213 dest->af_elems[
i] =
src[
i]->pv_obj.co_id;
225 M0_INTERNAL
const struct m0_fid **
228 static const struct m0_fid *rels[] = {
NULL };
232 #undef M0_TRACE_SUBSYSTEM const struct m0_conf_obj_type * m0_conf_obj_type(const struct m0_conf_obj *obj)
M0_INTERNAL int conf_dirs_encode(const struct conf_dir_encoding_pair *how, size_t how_nr)
M0_INTERNAL const struct m0_fid ** conf_obj_downlinks_none(const struct m0_conf_obj *obj)
static struct m0_addb2_philter p
M0_INTERNAL void arrfid_free(struct m0_fid_arr *arr)
M0_INTERNAL int conf_dirs_lookup(struct m0_conf_obj **out, const struct m0_fid *name, const struct conf_dir_relation *rels, size_t nr_rels)
#define M0_ALLOC_ARR(arr, nr)
struct m0_conf_obj cd_obj
const struct m0_fid_arr * de_entries
const struct m0_conf_obj_type * de_entry_type
M0_INTERNAL int conf_obj_lookup_denied(const struct m0_conf_obj *parent, const struct m0_fid *name, struct m0_conf_obj **out)
struct m0_fid_arr * dep_dest
M0_INTERNAL int conf_pvers_decode(struct m0_conf_pver ***dest, const struct m0_fid_arr *src, struct m0_conf_cache *cache)
M0_INTERNAL int m0_conf_dir_new(struct m0_conf_obj *parent, const struct m0_fid *relfid, const struct m0_conf_obj_type *children_type, const struct m0_fid_arr *children_ids, struct m0_conf_dir **out)
M0_INTERNAL int u32arr_decode(const struct arr_u32 *src, uint32_t **dest)
return M0_ERR(-EOPNOTSUPP)
const struct m0_fid_type cot_ftype
const struct m0_fid * de_relfid
M0_INTERNAL int conf_pvers_encode(struct m0_fid_arr *dest, const struct m0_conf_pver **src)
static uint32_t m0_conf_dir_len(const struct m0_conf_dir *dir)
M0_INTERNAL void confx_encode(struct m0_confx_obj *dest, const struct m0_conf_obj *src)
M0_INTERNAL int m0_conf_obj_find(struct m0_conf_cache *cache, const struct m0_fid *id, struct m0_conf_obj **out)
#define M0_CONF_CAST(ptr, type)
M0_INTERNAL int arrfid_from_dir(struct m0_fid_arr *dest, const struct m0_conf_dir *dir)
M0_INTERNAL bool m0_fid_eq(const struct m0_fid *fid0, const struct m0_fid *fid1)
#define m0_forall(var, nr,...)
M0_INTERNAL void u32arr_free(struct arr_u32 *arr)
struct m0_conf_dir * dr_dir
M0_INTERNAL int u32arr_encode(struct arr_u32 *dest, const uint32_t *src, uint32_t src_nr)
M0_CONF_REL_FIDS M0_INTERNAL int dir_create_and_populate(struct m0_conf_dir **result, const struct conf_dir_entries *de, struct m0_conf_obj *dir_parent)
M0_INTERNAL bool u32arr_cmp(const struct arr_u32 *a1, const uint32_t *a2, uint32_t a2_nr)
#define m0_tl_for(name, head, obj)
struct m0_pdclust_src_addr src
M0_INTERNAL bool m0_conf_obj_invariant(const struct m0_conf_obj *obj)
#define M0_IMPOSSIBLE(fmt,...)