Blame view

scripts/kconfig/lkc.h 4.63 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
9
  /*
   * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
   * Released under the terms of the GNU GPL v2.0.
   */
  
  #ifndef LKC_H
  #define LKC_H
  
  #include "expr.h"
70a6a0cb9   Yuri Vasilevski   [PATCH] fix build...
10
11
12
  #ifndef KBUILD_NO_NLS
  # include <libintl.h>
  #else
c4143a830   Sam Ravnborg   kconfig: fix MAC ...
13
14
15
  static inline const char *gettext(const char *txt) { return txt; }
  static inline void textdomain(const char *domainname) {}
  static inline void bindtextdomain(const char *name, const char *dir) {}
1ebfa5198   Arnaud Lacombe   kbuild/gconf: add...
16
  static inline char *bind_textdomain_codeset(const char *dn, char *c) { return c; }
70a6a0cb9   Yuri Vasilevski   [PATCH] fix build...
17
  #endif
3b9fa0931   Arnaldo Carvalho de Melo   [PATCH] Kconfig i...
18

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
19
20
21
  #ifdef __cplusplus
  extern "C" {
  #endif
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
22
  #define P(name,type,arg)	extern type name arg
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
23
24
25
26
  #include "lkc_proto.h"
  #undef P
  
  #define SRCTREE "srctree"
ef211607e   Arnaud Lacombe   kconfig: allow PA...
27
  #ifndef PACKAGE
3b9fa0931   Arnaldo Carvalho de Melo   [PATCH] Kconfig i...
28
  #define PACKAGE "linux"
ef211607e   Arnaud Lacombe   kconfig: allow PA...
29
  #endif
3b9fa0931   Arnaldo Carvalho de Melo   [PATCH] Kconfig i...
30
31
32
33
  #define LOCALEDIR "/usr/share/locale"
  
  #define _(text) gettext(text)
  #define N_(text) (text)
ffb5957bc   Arnaud Lacombe   kconfig: allow bu...
34
35
36
  #ifndef CONFIG_
  #define CONFIG_ "CONFIG_"
  #endif
7a88488bb   Roman Zippel   [PATCH] kconfig: ...
37
38
39
  
  #define TF_COMMAND	0x0001
  #define TF_PARAM	0x0002
f6a88aa86   Roman Zippel   kconfig: add symb...
40
  #define TF_OPTION	0x0004
dc7862e5a   Roman Zippel   kconfig: set all ...
41
42
43
44
45
46
47
  enum conf_def_mode {
  	def_default,
  	def_yes,
  	def_mod,
  	def_no,
  	def_random
  };
f6a88aa86   Roman Zippel   kconfig: add symb...
48
49
  #define T_OPT_MODULES		1
  #define T_OPT_DEFCONFIG_LIST	2
93449082e   Roman Zippel   kconfig: environm...
50
  #define T_OPT_ENV		3
7a88488bb   Roman Zippel   [PATCH] kconfig: ...
51
52
53
54
55
  
  struct kconf_id {
  	int name;
  	int token;
  	unsigned int flags;
3370f9f0d   Roman Zippel   [PATCH] kconfig: ...
56
  	enum symbol_type stype;
7a88488bb   Roman Zippel   [PATCH] kconfig: ...
57
  };
4ce2c1e8e   Arnaud Lacombe   kconfig: fix `zco...
58
  extern int zconfdebug;
4ce2c1e8e   Arnaud Lacombe   kconfig: fix `zco...
59

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
60
61
  int zconfparse(void);
  void zconfdump(FILE *out);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
62
63
64
65
66
  void zconf_starthelp(void);
  FILE *zconf_fopen(const char *name);
  void zconf_initscan(const char *name);
  void zconf_nextfile(const char *name);
  int zconf_lineno(void);
2e7a09183   Arnaud Lacombe   kconfig: constify...
67
  const char *zconf_curname(void);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
68
69
  
  /* confdata.c */
d802b50f0   Sam Ravnborg   kconfig/menuconfi...
70
  const char *conf_get_configname(void);
12122f623   Markus Heidelberg   kconfig: do not h...
71
  const char *conf_get_autoconfig_name(void);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
72
  char *conf_get_default_confname(void);
bfc10001b   Karsten Wiese   [PATCH] kconfig: ...
73
74
  void sym_set_change_count(int count);
  void sym_add_change_count(int count);
dc7862e5a   Roman Zippel   kconfig: set all ...
75
  void conf_set_all_new_symbols(enum conf_def_mode mode);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
76

e54e692ba   Arnaud Lacombe   kconfig: introduc...
77
78
79
80
  struct conf_printer {
  	void (*print_symbol)(FILE *, struct symbol *, const char *, void *);
  	void (*print_comment)(FILE *, const char *, void *);
  };
bf5e327a3   Jean Sacren   kconfig: Fix warn...
81
82
83
  /* confdata.c and expr.c */
  static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out)
  {
37ae2d599   Arnaud Lacombe   kbuild: Fix compi...
84
85
86
87
88
  	assert(len != 0);
  
  	if (fwrite(str, len, count, out) != count)
  		fprintf(stderr, "Error in writing or end of file.
  ");
bf5e327a3   Jean Sacren   kconfig: Fix warn...
89
  }
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
90
  /* menu.c */
692d97c38   nir.tzachar@gmail.com   kconfig: new conf...
91
  void _menu_init(void);
93449082e   Roman Zippel   kconfig: environm...
92
  void menu_warn(struct menu *menu, const char *fmt, ...);
a02f0570a   Roman Zippel   [PATCH] kconfig: ...
93
  struct menu *menu_add_menu(void);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
94
95
96
97
  void menu_end_menu(void);
  void menu_add_entry(struct symbol *sym);
  void menu_end_entry(void);
  void menu_add_dep(struct expr *dep);
86e187ff9   Arnaud Lacombe   kconfig: add an o...
98
  void menu_add_visibility(struct expr *dep);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
99
  struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
fb7f6ff61   Paolo 'Blaisorblade' Giarrusso   [PATCH] kconfig: ...
100
  struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
101
102
  void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
  void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
f6a88aa86   Roman Zippel   kconfig: add symb...
103
  void menu_add_option(int token, char *arg);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
104
105
106
107
108
109
110
111
112
113
  void menu_finalize(struct menu *parent);
  void menu_set_type(int type);
  
  /* util.c */
  struct file *file_lookup(const char *name);
  int file_write_dep(const char *name);
  
  struct gstr {
  	size_t len;
  	char  *s;
da60fbbcb   Vadim Bendebury (вб)   menuconfig: wrap ...
114
115
116
117
118
  	/*
  	* when max_width is not zero long lines in string s (if any) get
  	* wrapped not to exceed the max_width value
  	*/
  	int max_width;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
119
120
121
122
123
124
125
126
127
  };
  struct gstr str_new(void);
  struct gstr str_assign(const char *s);
  void str_free(struct gstr *gs);
  void str_append(struct gstr *gs, const char *s);
  void str_printf(struct gstr *gs, const char *fmt, ...);
  const char *str_get(struct gstr *gs);
  
  /* symbol.c */
93449082e   Roman Zippel   kconfig: environm...
128
  extern struct expr *sym_env_list;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
129
130
  void sym_init(void);
  void sym_clear_all_valid(void);
face4374e   Roman Zippel   kconfig: add defc...
131
  void sym_set_all_changed(void);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
132
  void sym_set_changed(struct symbol *sym);
c252147de   Sam Ravnborg   kconfig: refactor...
133
  struct symbol *sym_choice_default(struct symbol *sym);
7cf3d73b4   Sam Ravnborg   kconfig: add save...
134
  const char *sym_get_string_default(struct symbol *sym);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
135
136
137
  struct symbol *sym_check_deps(struct symbol *sym);
  struct property *prop_alloc(enum prop_type type, struct symbol *sym);
  struct symbol *prop_get_symbol(struct property *prop);
93449082e   Roman Zippel   kconfig: environm...
138
  struct property *sym_get_env_prop(struct symbol *sym);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
  
  static inline tristate sym_get_tristate_value(struct symbol *sym)
  {
  	return sym->curr.tri;
  }
  
  
  static inline struct symbol *sym_get_choice_value(struct symbol *sym)
  {
  	return (struct symbol *)sym->curr.val;
  }
  
  static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
  {
  	return sym_set_tristate_value(chval, yes);
  }
  
  static inline bool sym_is_choice(struct symbol *sym)
  {
  	return sym->flags & SYMBOL_CHOICE ? true : false;
  }
  
  static inline bool sym_is_choice_value(struct symbol *sym)
  {
  	return sym->flags & SYMBOL_CHOICEVAL ? true : false;
  }
  
  static inline bool sym_is_optional(struct symbol *sym)
  {
  	return sym->flags & SYMBOL_OPTIONAL ? true : false;
  }
  
  static inline bool sym_has_value(struct symbol *sym)
  {
669bfad90   Roman Zippel   kconfig: allow lo...
173
  	return sym->flags & SYMBOL_DEF_USER ? true : false;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
174
175
176
177
178
179
180
  }
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif /* LKC_H */