81#define EC_NODE_TYPE_REGISTER(t) \
82 static void ec_node_init_##t(void); \
83 static void __attribute__((constructor, used)) \
84 ec_node_init_##t(void) \
86 if (ec_node_type_register(&t, 0) < 0) \
88 "cannot register node type %s\n", \
105#define EC_NODE_TYPE_REGISTER_OVERRIDE(t) \
106 static void ec_node_init_##t(void); \
107 static void __attribute__((constructor, used)) \
108 ec_node_init_##t(void) \
110 if (ec_node_type_register(&t, 1) < 0) \
112 "cannot register node type %s\n", \
209 struct ec_comp *comp,
237typedef char * (*ec_node_desc_t)(
const struct ec_node *);
295 size_t i,
struct ec_node **child,
unsigned int *refs);
392void ec_node_free(
struct ec_node *node);
403size_t ec_node_get_children_count(
const struct ec_node *node);
405ec_node_get_child(
const struct ec_node *node,
size_t i,
406 struct ec_node **child,
unsigned int *refs);
411const char *ec_node_id(
const struct ec_node *node);
413char *ec_node_desc(
const struct ec_node *node);
415void ec_node_dump(FILE *out,
const struct ec_node *node);
416struct ec_node *ec_node_find(
struct ec_node *node,
const char *
id);
419int ec_node_check_type(
const struct ec_node *node,
422const char *ec_node_get_type_name(
const struct ec_node *node);
struct ec_dict * ec_dict(void)
struct ec_node * ec_node_from_type(const struct ec_node_type *type, const char *id)
void(* ec_node_free_priv_t)(struct ec_node *)
struct ec_node * ec_node(const char *typename, const char *id)
void ec_node_type_dump(FILE *out)
int(* ec_node_get_child_t)(const struct ec_node *, size_t i, struct ec_node **child, unsigned int *refs)
char *(* ec_node_desc_t)(const struct ec_node *)
int(* ec_node_set_config_t)(struct ec_node *node, const struct ec_config *config)
int ec_node_type_register(struct ec_node_type *type, bool override)
int(* ec_node_init_priv_t)(struct ec_node *)
int(* ec_complete_t)(const struct ec_node *node, struct ec_comp *comp, const struct ec_strvec *strvec)
size_t(* ec_node_get_children_count_t)(const struct ec_node *)
const struct ec_config_schema * ec_node_type_schema(const struct ec_node_type *type)
int(* ec_parse_t)(const struct ec_node *node, struct ec_pnode *pstate, const struct ec_strvec *strvec)
const struct ec_node_type * ec_node_type_lookup(const char *name)
const char * ec_node_type_name(const struct ec_node_type *type)
void * ec_node_priv(const struct ec_node *node)
struct ec_pnode * ec_pnode(const struct ec_node *node)
struct ec_strvec * ec_strvec(void)