22 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_CONF 26 #include "conf/onwire_xc.h" 49 #define XCAST(xobj) ((struct m0_confx_fdmi_filter *)(&(xobj)->xo_u)) 82 if (flt_root_str ==
NULL) {
87 if (flt_root ==
NULL) {
131 d->xf_type =
s->ff_type;
136 switch (
s->ff_type) {
138 d->
xf_node =
s->ff_node->cn_obj.co_id;
181 m0_conf_fdmi_filter_bob_fini(
x);
201 .
ft_id = M0_CONF__FDMI_FILTER_FT_ID,
202 .ft_name =
"conf_fdmi_filter" 204 .cot_create = &fdmi_filter_create,
205 .cot_xt = &m0_confx_fdmi_filter_xc,
206 .cot_branch =
"u_fdmi_filter",
207 .cot_xc_init = &m0_xc_m0_confx_fdmi_filter_struct_init,
212 #undef M0_TRACE_SUBSYSTEM const struct m0_conf_obj_type * m0_conf_obj_type(const struct m0_conf_obj *obj)
M0_BASSERT(offsetof(struct m0_confx_fdmi_filter, xf_header)==0)
M0_CONF__CTOR_DEFINE(fdmi_filter_create, m0_conf_fdmi_filter, &conf_fdmi_filter_ops)
M0_INTERNAL const struct m0_fid ** conf_obj_downlinks_none(const struct m0_conf_obj *obj)
struct m0_fid ff_filter_id
struct m0_fid xf_dix_pver
const char ** ff_substrings
bool(* coo_invariant)(const struct m0_conf_obj *obj)
static struct net_test_cmd_node * node
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_fdmi_filter ff_filter
static int fdmi_filter_decode(struct m0_conf_obj *dest, const struct m0_confx_obj *src)
const char ** ff_endpoints
static int fdmi_filter_encode(struct m0_confx_obj *dest, const struct m0_conf_obj *src)
return M0_ERR(-EOPNOTSUPP)
static const struct m0_conf_obj_ops conf_fdmi_filter_ops
struct m0_fid xf_filter_id
const struct m0_fid_type cot_ftype
M0_INTERNAL bool m0_bufs_streq(const struct m0_bufs *bufs, const char **strs)
M0_INTERNAL void m0_bufs_free(struct m0_bufs *bufs)
M0_INTERNAL int m0_fdmi_flt_node_parse(const char *str, struct m0_fdmi_flt_node *node)
static bool fdmi_filter_match(const struct m0_conf_obj *cached, const struct m0_confx_obj *flat)
struct m0_conf_pver * ff_dix_pver
struct m0_confx_header xf_header
M0_CONF__BOB_DEFINE(m0_conf_fdmi_filter, M0_CONF_FDMI_FILTER_MAGIC, fdmi_filter_check)
M0_INTERNAL void confx_encode(struct m0_confx_obj *dest, const struct m0_conf_obj *src)
#define M0_BUF_INITS(str)
M0_INTERNAL int m0_conf_obj_find(struct m0_conf_cache *cache, const struct m0_fid *id, struct m0_conf_obj **out)
M0_INTERNAL void m0_fdmi_filter_fini(struct m0_fdmi_filter *flt)
#define M0_CONF_CAST(ptr, type)
M0_INTERNAL int m0_buf_copy(struct m0_buf *dest, const struct m0_buf *src)
M0_INTERNAL int m0_fdmi_flt_node_print(struct m0_fdmi_flt_node *node, char **out)
M0_INTERNAL void m0_fdmi_filter_root_set(struct m0_fdmi_filter *flt, struct m0_fdmi_flt_node *root)
struct m0_fdmi_flt_node * ff_root
M0_INTERNAL bool m0_fid_eq(const struct m0_fid *fid0, const struct m0_fid *fid1)
static bool fdmi_filter_check(const void *bob)
M0_INTERNAL char * m0_buf_strdup(const struct m0_buf *buf)
M0_INTERNAL void m0_strings_free(const char **arr)
#define M0_ALLOC_PTR(ptr)
M0_INTERNAL int m0_bufs_to_strings(const char ***dest, const struct m0_bufs *src)
static void fdmi_filter_delete(struct m0_conf_obj *obj)
struct m0_bufs xf_endpoints
struct m0_buf xf_filter_root
struct m0_bufs xf_substrings
static struct m0_addb2_source * s
enum m0_fdmi_filter_type_id ff_type
struct m0_pdclust_src_addr src
M0_CONF__INVARIANT_DEFINE(fdmi_filter_invariant, m0_conf_fdmi_filter)
M0_INTERNAL int m0_bufs_from_strings(struct m0_bufs *dest, const char **src)
#define offsetof(typ, memb)
struct m0_conf_node * ff_node
const struct m0_conf_obj_type M0_CONF_FDMI_FILTER_TYPE
#define M0_IMPOSSIBLE(fmt,...)