Blame view

scripts/kconfig/lkc.h 4.31 KB
0c8741001   Masahiro Yamada   kconfig: convert ...
1
  /* SPDX-License-Identifier: GPL-2.0 */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
2
3
  /*
   * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
4
5
6
7
8
9
10
11
12
13
   */
  
  #ifndef LKC_H
  #define LKC_H
  
  #include "expr.h"
  
  #ifdef __cplusplus
  extern "C" {
  #endif
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
14
  #include "lkc_proto.h"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
15
16
  
  #define SRCTREE "srctree"
ef211607e   Arnaud Lacombe   kconfig: allow PA...
17
  #ifndef PACKAGE
3b9fa0931   Arnaldo Carvalho de Melo   [PATCH] Kconfig i...
18
  #define PACKAGE "linux"
ef211607e   Arnaud Lacombe   kconfig: allow PA...
19
  #endif
ffb5957bc   Arnaud Lacombe   kconfig: allow bu...
20
21
22
  #ifndef CONFIG_
  #define CONFIG_ "CONFIG_"
  #endif
b341f7882   Yann E. MORIN   kconfig: add a fu...
23
24
  static inline const char *CONFIG_prefix(void)
  {
9a926d435   Yann E. MORIN   kconfig: get CONF...
25
  	return getenv( "CONFIG_" ) ?: CONFIG_;
b341f7882   Yann E. MORIN   kconfig: add a fu...
26
27
28
  }
  #undef CONFIG_
  #define CONFIG_ CONFIG_prefix()
7a88488bb   Roman Zippel   [PATCH] kconfig: ...
29

dc7862e5a   Roman Zippel   kconfig: set all ...
30
31
32
33
  enum conf_def_mode {
  	def_default,
  	def_yes,
  	def_mod,
89b906098   Tetsuo Handa   kconfig: Add yes2...
34
35
  	def_y2m,
  	def_m2y,
dc7862e5a   Roman Zippel   kconfig: set all ...
36
37
38
  	def_no,
  	def_random
  };
18492685e   Masahiro Yamada   kconfig: use yyli...
39
  extern int yylineno;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
40
  void zconfdump(FILE *out);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
41
42
43
44
45
  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...
46
  const char *zconf_curname(void);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
47
48
  
  /* confdata.c */
d802b50f0   Sam Ravnborg   kconfig/menuconfi...
49
  const char *conf_get_configname(void);
bfc10001b   Karsten Wiese   [PATCH] kconfig: ...
50
51
  void sym_set_change_count(int count);
  void sym_add_change_count(int count);
3b9a19e08   Yann E. MORIN   kconfig: loop as ...
52
  bool conf_set_all_new_symbols(enum conf_def_mode mode);
89b906098   Tetsuo Handa   kconfig: Add yes2...
53
  void conf_rewrite_mod_or_yes(enum conf_def_mode mode);
fbe98bb9e   Arve Hjønnevåg   kconfig: Fix defc...
54
  void set_all_choice_values(struct symbol *csym);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
55

bf5e327a3   Jean Sacren   kconfig: Fix warn...
56
57
58
  /* 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...
59
60
61
62
63
  	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...
64
  }
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
65
66
  /* util.c */
  struct file *file_lookup(const char *name);
177acf784   Alan Cox   kconfig: Fix mall...
67
68
  void *xmalloc(size_t size);
  void *xcalloc(size_t nmemb, size_t size);
d717f24d8   Masahiro Yamada   kconfig: add xrea...
69
  void *xrealloc(void *p, size_t size);
cd81fc82b   Masahiro Yamada   kconfig: add xstr...
70
  char *xstrdup(const char *s);
104daea14   Masahiro Yamada   kconfig: referenc...
71
  char *xstrndup(const char *s, size_t n);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
72

981e545a6   Masahiro Yamada   kconfig: rename z...
73
  /* lexer.l */
cbafbf7f5   Masahiro Yamada   kconfig: split th...
74
  int yylex(void);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
75
76
77
  struct gstr {
  	size_t len;
  	char  *s;
da60fbbcb   Vadim Bendebury (вб)   menuconfig: wrap ...
78
79
80
81
82
  	/*
  	* 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
83
84
  };
  struct gstr str_new(void);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
85
86
87
88
  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);
19b835a5d   Masahiro Yamada   kconfig: qconf: f...
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
  /* menu.c */
  void _menu_init(void);
  void menu_warn(struct menu *menu, const char *fmt, ...);
  struct menu *menu_add_menu(void);
  void menu_end_menu(void);
  void menu_add_entry(struct symbol *sym);
  void menu_add_dep(struct expr *dep);
  void menu_add_visibility(struct expr *dep);
  struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
  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);
  void menu_add_option_modules(void);
  void menu_add_option_defconfig_list(void);
  void menu_add_option_allnoconfig_y(void);
  void menu_finalize(struct menu *parent);
  void menu_set_type(int type);
  
  extern struct menu rootmenu;
  
  bool menu_is_empty(struct menu *menu);
  bool menu_is_visible(struct menu *menu);
  bool menu_has_prompt(struct menu *menu);
  const char *menu_get_prompt(struct menu *menu);
  struct menu *menu_get_root_menu(struct menu *menu);
  struct menu *menu_get_parent_menu(struct menu *menu);
  bool menu_has_help(struct menu *menu);
  const char *menu_get_help(struct menu *menu);
  struct gstr get_relations_str(struct symbol **sym_arr, struct list_head *head);
  void menu_get_ext_help(struct menu *menu, struct gstr *help);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
118
  /* symbol.c */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
119
  void sym_clear_all_valid(void);
c252147de   Sam Ravnborg   kconfig: refactor...
120
  struct symbol *sym_choice_default(struct symbol *sym);
558e78e3c   Masahiro Yamada   kconfig: split so...
121
  struct property *sym_get_range_prop(struct symbol *sym);
7cf3d73b4   Sam Ravnborg   kconfig: add save...
122
  const char *sym_get_string_default(struct symbol *sym);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
123
  struct symbol *sym_check_deps(struct symbol *sym);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
  struct symbol *prop_get_symbol(struct property *prop);
  
  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...
159
  	return sym->flags & SYMBOL_DEF_USER ? true : false;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
160
161
162
163
164
165
166
  }
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif /* LKC_H */