22 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_CONF 27 #include "conf/onwire_xc.h" 30 #define XCAST(xobj) ((struct m0_confx_root *)(&(xobj)->xo_u)) 77 &
s->xt_nodes),
dest) ?:
81 &
s->xt_sites),
dest) ?:
85 &
s->xt_pools),
dest) ?:
89 &
s->xt_profiles),
dest) ?:
93 &
s->xt_fdmi_flt_grps),
dest);
131 if (
rc == 0 &&
s->rt_fdmi_flt_grps !=
NULL)
179 static const struct m0_fid *rels[] = {
180 &M0_CONF_ROOT_NODES_FID,
181 &M0_CONF_ROOT_SITES_FID,
182 &M0_CONF_ROOT_POOLS_FID,
183 &M0_CONF_ROOT_PROFILES_FID,
184 &M0_CONF_ROOT_FDMI_FLT_GRPS_FID,
197 m0_conf_root_bob_fini(
root);
216 .
ft_id = M0_CONF__ROOT_FT_ID,
217 .ft_name =
"conf_root" 219 .cot_create = &root_create,
220 .cot_xt = &m0_confx_root_xc,
221 .cot_branch =
"u_root",
222 .cot_xc_init = &m0_xc_m0_confx_root_struct_init,
229 #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 int conf_dirs_lookup(struct m0_conf_obj **out, const struct m0_fid *name, const struct conf_dir_relation *rels, size_t nr_rels)
const struct m0_conf_obj_type M0_CONF_PROFILE_TYPE
M0_CONF__BOB_DEFINE(m0_conf_root, M0_CONF_ROOT_MAGIC, root_check)
struct m0_fid_arr xt_sites
#define CONF_DIR_ENTRIES(relfid, entry_type, entries)
const struct m0_conf_obj_type M0_CONF_SITE_TYPE
const struct m0_conf_obj_type * m0_conf_fid_type(const struct m0_fid *fid)
const struct m0_conf_obj_type M0_CONF_PVER_TYPE
bool(* coo_invariant)(const struct m0_conf_obj *obj)
static void root_delete(struct m0_conf_obj *obj)
const struct m0_conf_obj_type M0_CONF_ROOT_TYPE
const struct m0_conf_obj_type M0_CONF_POOL_TYPE
struct m0_conf_obj * co_parent
M0_INTERNAL bool m0_fid_is_set(const struct m0_fid *fid)
M0_INTERNAL bool m0_conf_obj_is_stub(const struct m0_conf_obj *obj)
static const struct m0_fid ** root_downlinks(const struct m0_conf_obj *obj)
struct m0_confx_header xt_header
static int root_encode(struct m0_confx_obj *dest, const struct m0_conf_obj *src)
struct m0_conf_root * root
struct m0_conf_dir * rt_fdmi_flt_grps
return M0_ERR(-EOPNOTSUPP)
#define M0_FID_TINIT(type, container, key)
static int root_lookup(const struct m0_conf_obj *parent, const struct m0_fid *name, struct m0_conf_obj **out)
struct m0_fid rt_imeta_pver
const struct m0_fid_type cot_ftype
M0_INTERNAL bool m0_bufs_streq(const struct m0_bufs *bufs, const char **strs)
struct m0_conf_dir * rt_nodes
M0_INTERNAL void m0_bufs_free(struct m0_bufs *bufs)
static int root_decode(struct m0_conf_obj *dest, const struct m0_confx_obj *src)
M0_CONF__INVARIANT_DEFINE(root_invariant, m0_conf_root)
M0_INTERNAL void confx_encode(struct m0_confx_obj *dest, const struct m0_conf_obj *src)
static const struct m0_conf_obj_ops root_ops
struct m0_conf_dir * rt_sites
static bool root_check(const void *bob)
struct m0_fid_arr xt_profiles
#define M0_CONF_CAST(ptr, type)
M0_INTERNAL int arrfid_from_dir(struct m0_fid_arr *dest, const struct m0_conf_dir *dir)
M0_BASSERT(offsetof(struct m0_confx_root, xt_header)==0)
struct m0_conf_dir * rt_profiles
struct m0_conf_dir * rt_pools
bool m0_conf_fid_is_valid(const struct m0_fid *fid)
M0_INTERNAL bool m0_fid_eq(const struct m0_fid *fid0, const struct m0_fid *fid1)
M0_INTERNAL void m0_strings_free(const char **arr)
const struct m0_conf_obj_type M0_CONF_NODE_TYPE
static bool root_match(const struct m0_conf_obj *cached, const struct m0_confx_obj *flat)
const struct m0_fid M0_CONF_ROOT_FID
struct m0_fid_arr xt_pools
struct m0_fid xt_imeta_pver
M0_INTERNAL int m0_bufs_to_strings(const char ***dest, const struct m0_bufs *src)
struct m0_fid_arr xt_nodes
enum m0_conf_status co_status
const struct m0_conf_obj_type M0_CONF_FDMI_FLT_GRP_TYPE
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)
static struct m0_addb2_source * s
M0_INTERNAL bool m0_conf_dir_elems_match(const struct m0_conf_dir *dir, const struct m0_fid_arr *fids)
struct m0_pdclust_src_addr src
struct m0_fid_arr xt_fdmi_flt_grps
M0_INTERNAL int m0_bufs_from_strings(struct m0_bufs *dest, const char **src)
#define offsetof(typ, memb)
M0_CONF__CTOR_DEFINE(root_create, m0_conf_root, &root_ops)