aboutsummaryrefslogtreecommitdiff
path: root/scripts/parse_kconfig/cnfbuild.h
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/parse_kconfig/cnfbuild.h')
-rw-r--r--scripts/parse_kconfig/cnfbuild.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/scripts/parse_kconfig/cnfbuild.h b/scripts/parse_kconfig/cnfbuild.h
new file mode 100644
index 0000000..e042cce
--- /dev/null
+++ b/scripts/parse_kconfig/cnfbuild.h
@@ -0,0 +1,36 @@
+#include <stdlib.h>
+#include <stdbool.h>
+
+#include "symlist.h"
+#include <kconfig/lkc.h>
+#include "output.h"
+
+#ifndef _CNFBUILD_H_
+#define _CNFBUILD_H_
+
+enum cnfexpr_type {
+ CT_EXPR, CT_FALSE, CT_TRUE
+};
+
+struct cnfexpr {
+ enum cnfexpr_type type;
+ unsigned id;
+ struct output_expr *out;
+};
+
+struct cnfexpr *kconfig_expr(struct symlist *sl, struct expr *expr);
+
+struct cnfexpr *cnfexpr_true(struct symlist *sl);
+struct cnfexpr *cnfexpr_false(struct symlist *sl);
+struct cnfexpr *cnfexpr_sym(struct symlist *sl, struct symbol *sym);
+struct cnfexpr *cnfexpr_eql(struct symlist *sl, struct symbol *sym1,
+ struct symbol *sym2);
+struct cnfexpr *cnfexpr_or(struct symlist *sl, struct cnfexpr *e1,
+ struct cnfexpr *e2);
+struct cnfexpr *cnfexpr_and(struct symlist *sl, struct cnfexpr *e1,
+ struct cnfexpr *e2);
+struct cnfexpr *cnfexpr_not(struct symlist *sl, struct cnfexpr *e);
+struct cnfexpr *cnfexpr_copy(struct cnfexpr *e);
+void cnfexpr_free(struct cnfexpr *e);
+
+#endif /* _CNFBUILD_H_ */