22 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_CONF 26 #include "conf/onwire_xc.h" 29 #define XCAST(xobj) ((struct m0_confx_drive *)(&(xobj)->xo_u)) 70 if (
s->ck_sdev !=
NULL)
71 XCAST(
dest)->xk_sdev =
s->ck_sdev->sd_obj.co_id;
90 m0_conf_drive_bob_fini(
x);
110 .
ft_id = M0_CONF__DRIVE_FT_ID,
111 .ft_name =
"conf_drive" 113 .cot_create = &drive_create,
114 .cot_xt = &m0_confx_drive_xc,
115 .cot_branch =
"u_drive",
116 .cot_xc_init = &m0_xc_m0_confx_drive_struct_init,
121 #undef M0_TRACE_SUBSYSTEM const struct m0_conf_obj_type * m0_conf_obj_type(const struct m0_conf_obj *obj)
M0_INTERNAL const struct m0_fid ** conf_obj_downlinks_none(const struct m0_conf_obj *obj)
static int drive_decode(struct m0_conf_obj *dest, const struct m0_confx_obj *src)
struct m0_fid_arr xk_pvers
static const struct m0_conf_obj_ops drive_ops
bool(* coo_invariant)(const struct m0_conf_obj *obj)
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_conf_pver ** ck_pvers
M0_INTERNAL int conf_pvers_decode(struct m0_conf_pver ***dest, const struct m0_fid_arr *src, struct m0_conf_cache *cache)
static int drive_encode(struct m0_confx_obj *dest, const struct m0_conf_obj *src)
const struct m0_fid_type cot_ftype
M0_INTERNAL int conf_pvers_encode(struct m0_fid_arr *dest, const struct m0_conf_pver **src)
M0_INTERNAL void confx_encode(struct m0_confx_obj *dest, const struct m0_conf_obj *src)
static bool drive_check(const void *bob)
const struct m0_conf_obj_type M0_CONF_DRIVE_TYPE
M0_BASSERT(offsetof(struct m0_confx_drive, xk_header)==0)
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)
struct m0_conf_sdev * ck_sdev
M0_INTERNAL bool m0_fid_eq(const struct m0_fid *fid0, const struct m0_fid *fid1)
M0_CONF__INVARIANT_DEFINE(drive_invariant, m0_conf_drive)
struct m0_conf_obj sd_obj
M0_CONF__BOB_DEFINE(m0_conf_drive, M0_CONF_DRIVE_MAGIC, drive_check)
static struct m0_addb2_source * s
M0_CONF__CTOR_DEFINE(drive_create, m0_conf_drive, &drive_ops)
struct m0_pdclust_src_addr src
struct m0_confx_header xk_header
static bool drive_match(const struct m0_conf_obj *cached, const struct m0_confx_obj *flat)
#define offsetof(typ, memb)
static void drive_delete(struct m0_conf_obj *obj)