22 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_CONF 26 #include "conf/onwire_xc.h" 29 #define XCAST(xobj) ((struct m0_confx_controller *)(&(xobj)->xo_u)) 95 {
c->cc_drives, &M0_CONF_CONTROLLER_DRIVES_FID }
104 static const struct m0_fid *rels[] = { &M0_CONF_CONTROLLER_DRIVES_FID,
113 m0_conf_controller_bob_fini(
x);
133 .
ft_id = M0_CONF__CONTROLLER_FT_ID,
134 .ft_name =
"conf_controller" 136 .cot_create = &controller_create,
137 .cot_xt = &m0_confx_controller_xc,
138 .cot_branch =
"u_controller",
139 .cot_xc_init = &m0_xc_m0_confx_controller_struct_init,
144 #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)
#define CONF_DIR_ENTRIES(relfid, entry_type, entries)
struct m0_conf_pver ** cc_pvers
bool(* coo_invariant)(const struct m0_conf_obj *obj)
static bool controller_match(const struct m0_conf_obj *cached, const struct m0_confx_obj *flat)
M0_CONF__INVARIANT_DEFINE(controller_invariant, m0_conf_controller)
static void controller_delete(struct m0_conf_obj *obj)
static const struct m0_fid ** controller_downlinks(const struct m0_conf_obj *obj)
M0_BASSERT(offsetof(struct m0_confx_controller, xc_header)==0)
const struct m0_conf_obj_type M0_CONF_CONTROLLER_TYPE
M0_INTERNAL int conf_pvers_decode(struct m0_conf_pver ***dest, const struct m0_fid_arr *src, struct m0_conf_cache *cache)
M0_CONF__BOB_DEFINE(m0_conf_controller, M0_CONF_CONTROLLER_MAGIC, controller_check)
M0_CONF__CTOR_DEFINE(controller_create, m0_conf_controller, &controller_ops)
struct m0_conf_dir * cc_drives
const struct m0_fid_type cot_ftype
M0_INTERNAL int conf_pvers_encode(struct m0_fid_arr *dest, const struct m0_conf_pver **src)
static struct m0_addb2_callback c
static bool controller_check(const void *bob)
struct m0_fid_arr xc_pvers
static int controller_lookup(const struct m0_conf_obj *parent, const struct m0_fid *name, struct m0_conf_obj **out)
M0_INTERNAL void confx_encode(struct m0_confx_obj *dest, const struct m0_conf_obj *src)
const struct m0_conf_obj_type M0_CONF_DRIVE_TYPE
static const struct m0_conf_obj_ops controller_ops
#define M0_CONF_CAST(ptr, type)
static int controller_encode(struct m0_confx_obj *dest, const struct m0_conf_obj *src)
struct m0_fid_arr xc_drives
enum m0_conf_status co_status
struct m0_confx_header xc_header
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
#define offsetof(typ, memb)
static int controller_decode(struct m0_conf_obj *dest, const struct m0_confx_obj *src)