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.


Ported palacios to Kbuild
[palacios.git] / scripts / 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 # define gettext(Msgid) ((const char *) (Msgid))
15 # define textdomain(Domainname) ((const char *) (Domainname))
16 # define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
17 #endif
18
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22
23 #ifdef LKC_DIRECT_LINK
24 #define P(name,type,arg)        extern type name arg
25 #else
26 #include "lkc_defs.h"
27 #define P(name,type,arg)        extern type (*name ## _p) arg
28 #endif
29 #include "lkc_proto.h"
30 #undef P
31
32 #define SRCTREE "srctree"
33
34 #define PACKAGE "linux"
35 #define LOCALEDIR "/usr/share/locale"
36
37 #define _(text) gettext(text)
38 #define N_(text) (text)
39
40
41 #define TF_COMMAND      0x0001
42 #define TF_PARAM        0x0002
43
44 struct kconf_id {
45         int name;
46         int token;
47         unsigned int flags;
48         enum symbol_type stype;
49 };
50
51 int zconfparse(void);
52 void zconfdump(FILE *out);
53
54 extern int zconfdebug;
55 void zconf_starthelp(void);
56 FILE *zconf_fopen(const char *name);
57 void zconf_initscan(const char *name);
58 void zconf_nextfile(const char *name);
59 int zconf_lineno(void);
60 char *zconf_curname(void);
61
62 /* confdata.c */
63 extern const char conf_def_filename[];
64
65 char *conf_get_default_confname(void);
66
67 /* kconfig_load.c */
68 void kconfig_load(void);
69
70 /* menu.c */
71 void menu_init(void);
72 struct menu *menu_add_menu(void);
73 void menu_end_menu(void);
74 void menu_add_entry(struct symbol *sym);
75 void menu_end_entry(void);
76 void menu_add_dep(struct expr *dep);
77 struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
78 struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
79 void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
80 void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
81 void menu_finalize(struct menu *parent);
82 void menu_set_type(int type);
83
84 /* util.c */
85 struct file *file_lookup(const char *name);
86 int file_write_dep(const char *name);
87
88 struct gstr {
89         size_t len;
90         char  *s;
91 };
92 struct gstr str_new(void);
93 struct gstr str_assign(const char *s);
94 void str_free(struct gstr *gs);
95 void str_append(struct gstr *gs, const char *s);
96 void str_printf(struct gstr *gs, const char *fmt, ...);
97 const char *str_get(struct gstr *gs);
98
99 /* symbol.c */
100 void sym_init(void);
101 void sym_clear_all_valid(void);
102 void sym_set_changed(struct symbol *sym);
103 struct symbol *sym_check_deps(struct symbol *sym);
104 struct property *prop_alloc(enum prop_type type, struct symbol *sym);
105 struct symbol *prop_get_symbol(struct property *prop);
106
107 static inline tristate sym_get_tristate_value(struct symbol *sym)
108 {
109         return sym->curr.tri;
110 }
111
112
113 static inline struct symbol *sym_get_choice_value(struct symbol *sym)
114 {
115         return (struct symbol *)sym->curr.val;
116 }
117
118 static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
119 {
120         return sym_set_tristate_value(chval, yes);
121 }
122
123 static inline bool sym_is_choice(struct symbol *sym)
124 {
125         return sym->flags & SYMBOL_CHOICE ? true : false;
126 }
127
128 static inline bool sym_is_choice_value(struct symbol *sym)
129 {
130         return sym->flags & SYMBOL_CHOICEVAL ? true : false;
131 }
132
133 static inline bool sym_is_optional(struct symbol *sym)
134 {
135         return sym->flags & SYMBOL_OPTIONAL ? true : false;
136 }
137
138 static inline bool sym_has_value(struct symbol *sym)
139 {
140         return sym->flags & SYMBOL_NEW ? false : true;
141 }
142
143 #ifdef __cplusplus
144 }
145 #endif
146
147 #endif /* LKC_H */