Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


imported SEABIOS source tree
[palacios.git] / bios / seabios / tools / kconfig / lkc.h
1 /*
2  * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
3  * Released under the terms of the GNU GPL v2.0.
4  */
5
6 #ifndef LKC_H
7 #define LKC_H
8
9 #include "expr.h"
10
11 #ifndef KBUILD_NO_NLS
12 # include <libintl.h>
13 #else
14 static inline const char *gettext(const char *txt) { return txt; }
15 static inline void textdomain(const char *domainname) {}
16 static inline void bindtextdomain(const char *name, const char *dir) {}
17 static inline char *bind_textdomain_codeset(const char *dn, char *c) { return c; }
18 #endif
19
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23
24 #ifdef LKC_DIRECT_LINK
25 #define P(name,type,arg)        extern type name arg
26 #else
27 #include "lkc_defs.h"
28 #define P(name,type,arg)        extern type (*name ## _p) arg
29 #endif
30 #include "lkc_proto.h"
31 #undef P
32
33 #define SRCTREE "srctree"
34
35 #ifndef PACKAGE
36 #define PACKAGE "linux"
37 #endif
38
39 #define LOCALEDIR "/usr/share/locale"
40
41 #define _(text) gettext(text)
42 #define N_(text) (text)
43
44 #ifndef CONFIG_
45 #define CONFIG_ "CONFIG_"
46 #endif
47
48 #define TF_COMMAND      0x0001
49 #define TF_PARAM        0x0002
50 #define TF_OPTION       0x0004
51
52 enum conf_def_mode {
53         def_default,
54         def_yes,
55         def_mod,
56         def_no,
57         def_random
58 };
59
60 #define T_OPT_MODULES           1
61 #define T_OPT_DEFCONFIG_LIST    2
62 #define T_OPT_ENV               3
63
64 struct kconf_id {
65         int name;
66         int token;
67         unsigned int flags;
68         enum symbol_type stype;
69 };
70
71 #ifdef YYDEBUG
72 extern int zconfdebug;
73 #endif
74
75 int zconfparse(void);
76 void zconfdump(FILE *out);
77 void zconf_starthelp(void);
78 FILE *zconf_fopen(const char *name);
79 void zconf_initscan(const char *name);
80 void zconf_nextfile(const char *name);
81 int zconf_lineno(void);
82 const char *zconf_curname(void);
83
84 /* conf.c */
85 void xfgets(char *str, int size, FILE *in);
86
87 /* confdata.c */
88 const char *conf_get_configname(void);
89 const char *conf_get_autoconfig_name(void);
90 char *conf_get_default_confname(void);
91 void sym_set_change_count(int count);
92 void sym_add_change_count(int count);
93 void conf_set_all_new_symbols(enum conf_def_mode mode);
94
95 /* confdata.c and expr.c */
96 static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out)
97 {
98         if (fwrite(str, len, count, out) < count)
99                 fprintf(stderr, "\nError in writing or end of file.\n");
100 }
101
102 /* kconfig_load.c */
103 void kconfig_load(void);
104
105 /* menu.c */
106 void _menu_init(void);
107 void menu_warn(struct menu *menu, const char *fmt, ...);
108 struct menu *menu_add_menu(void);
109 void menu_end_menu(void);
110 void menu_add_entry(struct symbol *sym);
111 void menu_end_entry(void);
112 void menu_add_dep(struct expr *dep);
113 void menu_add_visibility(struct expr *dep);
114 struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
115 struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
116 void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
117 void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
118 void menu_add_option(int token, char *arg);
119 void menu_finalize(struct menu *parent);
120 void menu_set_type(int type);
121
122 /* util.c */
123 struct file *file_lookup(const char *name);
124 int file_write_dep(const char *name);
125
126 struct gstr {
127         size_t len;
128         char  *s;
129         /*
130         * when max_width is not zero long lines in string s (if any) get
131         * wrapped not to exceed the max_width value
132         */
133         int max_width;
134 };
135 struct gstr str_new(void);
136 struct gstr str_assign(const char *s);
137 void str_free(struct gstr *gs);
138 void str_append(struct gstr *gs, const char *s);
139 void str_printf(struct gstr *gs, const char *fmt, ...);
140 const char *str_get(struct gstr *gs);
141
142 /* symbol.c */
143 extern struct expr *sym_env_list;
144
145 void sym_init(void);
146 void sym_clear_all_valid(void);
147 void sym_set_all_changed(void);
148 void sym_set_changed(struct symbol *sym);
149 struct symbol *sym_choice_default(struct symbol *sym);
150 const char *sym_get_string_default(struct symbol *sym);
151 struct symbol *sym_check_deps(struct symbol *sym);
152 struct property *prop_alloc(enum prop_type type, struct symbol *sym);
153 struct symbol *prop_get_symbol(struct property *prop);
154 struct property *sym_get_env_prop(struct symbol *sym);
155
156 static inline tristate sym_get_tristate_value(struct symbol *sym)
157 {
158         return sym->curr.tri;
159 }
160
161
162 static inline struct symbol *sym_get_choice_value(struct symbol *sym)
163 {
164         return (struct symbol *)sym->curr.val;
165 }
166
167 static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
168 {
169         return sym_set_tristate_value(chval, yes);
170 }
171
172 static inline bool sym_is_choice(struct symbol *sym)
173 {
174         return sym->flags & SYMBOL_CHOICE ? true : false;
175 }
176
177 static inline bool sym_is_choice_value(struct symbol *sym)
178 {
179         return sym->flags & SYMBOL_CHOICEVAL ? true : false;
180 }
181
182 static inline bool sym_is_optional(struct symbol *sym)
183 {
184         return sym->flags & SYMBOL_OPTIONAL ? true : false;
185 }
186
187 static inline bool sym_has_value(struct symbol *sym)
188 {
189         return sym->flags & SYMBOL_DEF_USER ? true : false;
190 }
191
192 #ifdef __cplusplus
193 }
194 #endif
195
196 #endif /* LKC_H */