23 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_CONF 72 bool ret =
obj->co_ops->coo_invariant(
obj);
97 m0_conf_obj_bob_init(
obj);
102 m0_conf_cache_tlink_init(
obj);
103 m0_conf_dir_tlink_init(
obj);
109 m0_conf_obj_bob_init(
obj);
175 m0_conf_dir_tlink_fini(
obj);
176 m0_conf_cache_tlink_fini(
obj);
179 m0_conf_obj_bob_fini(
obj);
182 obj->co_ops->coo_delete(
obj);
214 if (
obj->co_nrefs == 0)
268 return &
obj->xo_u.u_header.ch_id;
277 #undef M0_TRACE_SUBSYSTEM const struct m0_conf_obj_type * m0_conf_obj_type(const struct m0_conf_obj *obj)
M0_BOB_DEFINE(static, &generic_obj_bob, m0_conf_obj)
static bool confx_obj_is_valid(const struct m0_confx_obj *flat)
M0_INTERNAL bool m0_conf_obj_match(const struct m0_conf_obj *cached, const struct m0_confx_obj *flat)
static int stub_create(struct m0_conf_cache *cache, const struct m0_fid *id, struct m0_conf_obj **out)
static bool _concrete_obj_invariant(const struct m0_conf_obj *obj)
M0_INTERNAL struct m0_conf_obj * m0_conf_cache_lookup(const struct m0_conf_cache *cache, const struct m0_fid *id)
#define M0_LOG(level,...)
const struct m0_conf_obj_type * m0_conf_fid_type(const struct m0_fid *fid)
M0_INTERNAL void m0_conf_obj_put(struct m0_conf_obj *obj)
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 bool _generic_obj_invariant(const void *bob)
static const struct m0_bob_type generic_obj_bob
M0_INTERNAL int m0_conf_obj_fill(struct m0_conf_obj *dest, const struct m0_confx_obj *src)
M0_INTERNAL void m0_conf_obj_get(struct m0_conf_obj *obj)
return M0_ERR(-EOPNOTSUPP)
M0_INTERNAL void m0_chan_init(struct m0_chan *chan, struct m0_mutex *ch_guard)
const struct m0_fid * m0_conf_objx_fid(const struct m0_confx_obj *obj)
M0_INTERNAL bool m0_conf_cache_is_locked(const struct m0_conf_cache *cache)
M0_INTERNAL int m0_conf_obj_find_lock(struct m0_conf_cache *cache, const struct m0_fid *id, struct m0_conf_obj **out)
M0_INTERNAL int m0_conf_obj_find(struct m0_conf_cache *cache, const struct m0_fid *id, struct m0_conf_obj **out)
M0_INTERNAL int m0_conf_cache_add(struct m0_conf_cache *cache, struct m0_conf_obj *obj)
bool m0_conf_fid_is_valid(const struct m0_fid *fid)
M0_INTERNAL void m0_conf_obj_get_lock(struct m0_conf_obj *obj)
M0_INTERNAL bool m0_fid_eq(const struct m0_fid *fid0, const struct m0_fid *fid1)
M0_INTERNAL struct m0_conf_obj * m0_conf_obj_create(const struct m0_fid *id, struct m0_conf_cache *cache)
#define M0_MAGIX_OFFSET(type, field)
M0_INTERNAL void m0_conf_obj_delete(struct m0_conf_obj *obj)
M0_INTERNAL void m0_chan_fini(struct m0_chan *chan)
const struct m0_conf_obj_type * m0_conf_objx_type(const struct m0_confx_obj *obj)
bool(* coo_match)(const struct m0_conf_obj *cached, const struct m0_confx_obj *flat)
M0_INTERNAL void m0_conf_cache_lock(struct m0_conf_cache *cache)
struct m0_pdclust_src_addr src
M0_INTERNAL void m0_chan_broadcast(struct m0_chan *chan)
M0_INTERNAL void m0_conf_cache_unlock(struct m0_conf_cache *cache)
M0_INTERNAL bool m0_conf_obj_invariant(const struct m0_conf_obj *obj)
const struct m0_conf_obj_ops * co_ops