blob: 90fc70a941ff2f16b5ee2834126ea627294c7f2c [file] [log] [blame]
Radek Krejci0935f412019-08-20 16:15:18 +02001/**
2 * @file plugins_exts.c
3 * @author Radek Krejci <rkrejci@cesnet.cz>
4 * @brief Internally implemented YANG extensions.
5 *
6 * Copyright (c) 2019 CESNET, z.s.p.o.
7 *
8 * This source code is licensed under BSD 3-Clause License (the "License").
9 * You may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * https://opensource.org/licenses/BSD-3-Clause
13 */
Radek Krejci0935f412019-08-20 16:15:18 +020014
15#include "plugins_exts.h"
Radek Krejci77114102021-03-10 15:21:57 +010016#include "plugins_exts_compile.h"
17#include "plugins_exts_print.h"
Radek Krejci0935f412019-08-20 16:15:18 +020018
Radek Krejci47fab892020-11-05 17:02:41 +010019#include <stdint.h>
Radek Krejci535ea9f2020-05-29 16:01:05 +020020
Radek Krejcicc9e30f2021-03-29 12:45:08 +020021extern struct lyplg_ext metadata_plugin; /* plugins_exts_metadata.c */
22extern struct lyplg_ext nacm_plugin; /* plugins_exts_nacm.c */
23extern struct lyplg_ext yangdata_plugin; /* plugins_exts_yangdata.c */
Radek Krejci0935f412019-08-20 16:15:18 +020024
Radek Krejci5f9a3672021-03-05 21:35:22 +010025/* internal libyang headers - do not make them accessible to the extension plugins in plugins_exts_*.c */
26#include "common.h"
Radek Krejcif8d7f9a2021-03-10 14:32:36 +010027#include "printer_internal.h"
Radek Krejci5f9a3672021-03-05 21:35:22 +010028#include "schema_compile.h"
29
Jan Kundrátc6e39de2021-12-09 16:01:19 +010030LIBYANG_API_DEF struct ly_ctx *
Radek Krejci5f9a3672021-03-05 21:35:22 +010031lysc_ctx_get_ctx(const struct lysc_ctx *ctx)
32{
33 return ctx->ctx;
34}
35
Jan Kundrátc6e39de2021-12-09 16:01:19 +010036LIBYANG_API_DEF uint32_t *
Radek Krejci5f9a3672021-03-05 21:35:22 +010037lysc_ctx_get_options(const struct lysc_ctx *ctx)
38{
Michal Vasko7c565922021-06-10 14:58:27 +020039 return &((struct lysc_ctx *)ctx)->compile_opts;
Radek Krejci5f9a3672021-03-05 21:35:22 +010040}
41
Jan Kundrátc6e39de2021-12-09 16:01:19 +010042LIBYANG_API_DEF const char *
Radek Krejci5f9a3672021-03-05 21:35:22 +010043lysc_ctx_get_path(const struct lysc_ctx *ctx)
44{
45 return ctx->path;
46}
Radek Krejcif8d7f9a2021-03-10 14:32:36 +010047
Jan Kundrátc6e39de2021-12-09 16:01:19 +010048LIBYANG_API_DEF struct ly_out **
Radek Krejcif8d7f9a2021-03-10 14:32:36 +010049lys_ypr_ctx_get_out(const struct lyspr_ctx *ctx)
50{
51 return &((struct lyspr_ctx *)ctx)->out;
52}
53
Jan Kundrátc6e39de2021-12-09 16:01:19 +010054LIBYANG_API_DEF uint32_t *
Radek Krejcif8d7f9a2021-03-10 14:32:36 +010055lys_ypr_ctx_get_options(const struct lyspr_ctx *ctx)
56{
57 return &((struct lyspr_ctx *)ctx)->options;
58}
59
Jan Kundrátc6e39de2021-12-09 16:01:19 +010060LIBYANG_API_DEF uint16_t *
Radek Krejcif8d7f9a2021-03-10 14:32:36 +010061lys_ypr_ctx_get_level(const struct lyspr_ctx *ctx)
62{
63 return &((struct lyspr_ctx *)ctx)->level;
64}