15 #ifndef LY_PLUGINS_EXTS_H_
16 #define LY_PLUGINS_EXTS_H_
103 #define LYPLG_EXT_API_VERSION 3
111 #define LYPLG_EXTENSIONS \
112 uint32_t plugins_extensions_apiver__ = LYPLG_EXT_API_VERSION; \
113 const struct lyplg_ext_record plugins_extensions__[]
181 const char *
name,
size_t name_len,
const struct lysc_node **snode);
261 const char *format, ...);
LY_ERR
libyang's error codes returned by the libyang functions.
LY_LOG_LEVEL
Verbosity levels of the libyang logger.
lyplg_ext_data_snode_clb snode
lyplg_ext_data_validate_clb validate
lyplg_ext_schema_printer_clb sprinter
lyplg_ext_compile_clb compile
LY_ERR(* lyplg_ext_schema_printer_clb)(struct lyspr_ctx *ctx, struct lysc_ext_instance *ext, ly_bool *flag)
Callback to print the compiled extension instance's private data in the INFO format.
void(* lyplg_ext_free_clb)(struct ly_ctx *ctx, struct lysc_ext_instance *ext)
Callback to free the extension-specific data created by its compilation.
LY_ERR(* lyplg_ext_data_snode_clb)(struct lysc_ext_instance *ext, const struct lyd_node *parent, const struct lysc_node *sparent, const char *prefix, size_t prefix_len, LY_VALUE_FORMAT format, void *prefix_data, const char *name, size_t name_len, const struct lysc_node **snode)
Callback for getting a schema node for a new YANG instance data described by an extension instance....
LIBYANG_API_DECL LY_ERR lyd_insert_ext(struct lyd_node *parent, struct lyd_node *first)
Insert extension instance data into a parent.
LIBYANG_API_DECL void lyplg_ext_log(const struct lysc_ext_instance *ext, LY_LOG_LEVEL level, LY_ERR err_no, const char *path, const char *format,...)
Provide a log message from an extension plugin.
LY_ERR(* lyplg_ext_data_validate_clb)(struct lysc_ext_instance *ext, struct lyd_node *sibling, uint32_t val_opts, struct lyd_node **diff)
Callback for validating parsed YANG instance data described by an extension instance.
LY_ERR(* lyplg_ext_compile_clb)(struct lysc_ctx *cctx, const struct lysp_ext_instance *p_ext, struct lysc_ext_instance *c_ext)
Callback to compile extension from the lysp_ext_instance to the lysc_ext_instance....
LIBYANG_API_DECL void lyplg_ext_instance_substatements_free(struct ly_ctx *ctx, struct lysc_ext_substmt *substmts)
Free the extension instance's data compiled with lys_compile_extension_instance().
LIBYANG_API_DECL LY_ERR lyplg_ext_get_data(const struct ly_ctx *ctx, const struct lysc_ext_instance *ext, void **ext_data, ly_bool *ext_data_free)
Get specific run-time extension instance data from a callback set by ly_ctx_set_ext_data_clb().
Extension plugin implementing various aspects of a YANG extension.
Description of the extension instance substatements.
LY_VALUE_FORMAT
All kinds of supported value formats and prefix mappings to modules.
Logger manipulation routines and error definitions.
uint8_t ly_bool
Type to indicate boolean value.
Parser input structure specifying where the data are read.
libyang support for YANG extensions implementation - schema compilation related items.
libyang support for YANG extensions implementation - schema print related items.
libyang representation of YANG data trees.
struct lyd_node_inner * parent
Generic structure for a data node.
libyang generic macros and functions to modify YANG schema or data trees. Intended for internal use a...
libyang representation of YANG schema trees.