~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/scripts/kconfig/lkc.h

Version: ~ [ linux-5.3-rc5 ] ~ [ linux-5.2.9 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.67 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.139 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.189 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.189 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.72 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 #include "lkc_proto.h"
 25 
 26 #define SRCTREE "srctree"
 27 
 28 #ifndef PACKAGE
 29 #define PACKAGE "linux"
 30 #endif
 31 
 32 #define LOCALEDIR "/usr/share/locale"
 33 
 34 #define _(text) gettext(text)
 35 #define N_(text) (text)
 36 
 37 #ifndef CONFIG_
 38 #define CONFIG_ "CONFIG_"
 39 #endif
 40 static inline const char *CONFIG_prefix(void)
 41 {
 42         return getenv( "CONFIG_" ) ?: CONFIG_;
 43 }
 44 #undef CONFIG_
 45 #define CONFIG_ CONFIG_prefix()
 46 
 47 #define TF_COMMAND      0x0001
 48 #define TF_PARAM        0x0002
 49 #define TF_OPTION       0x0004
 50 
 51 enum conf_def_mode {
 52         def_default,
 53         def_yes,
 54         def_mod,
 55         def_no,
 56         def_random
 57 };
 58 
 59 #define T_OPT_MODULES           1
 60 #define T_OPT_DEFCONFIG_LIST    2
 61 #define T_OPT_ENV               3
 62 #define T_OPT_ALLNOCONFIG_Y     4
 63 
 64 struct kconf_id {
 65         int name;
 66         int token;
 67         unsigned int flags;
 68         enum symbol_type stype;
 69 };
 70 
 71 void zconfdump(FILE *out);
 72 void zconf_starthelp(void);
 73 FILE *zconf_fopen(const char *name);
 74 void zconf_initscan(const char *name);
 75 void zconf_nextfile(const char *name);
 76 int zconf_lineno(void);
 77 const char *zconf_curname(void);
 78 
 79 /* confdata.c */
 80 const char *conf_get_configname(void);
 81 const char *conf_get_autoconfig_name(void);
 82 char *conf_get_default_confname(void);
 83 void sym_set_change_count(int count);
 84 void sym_add_change_count(int count);
 85 bool conf_set_all_new_symbols(enum conf_def_mode mode);
 86 void set_all_choice_values(struct symbol *csym);
 87 
 88 /* confdata.c and expr.c */
 89 static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out)
 90 {
 91         assert(len != 0);
 92 
 93         if (fwrite(str, len, count, out) != count)
 94                 fprintf(stderr, "Error in writing or end of file.\n");
 95 }
 96 
 97 /* menu.c */
 98 void _menu_init(void);
 99 void menu_warn(struct menu *menu, const char *fmt, ...);
100 struct menu *menu_add_menu(void);
101 void menu_end_menu(void);
102 void menu_add_entry(struct symbol *sym);
103 void menu_end_entry(void);
104 void menu_add_dep(struct expr *dep);
105 void menu_add_visibility(struct expr *dep);
106 struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
107 void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
108 void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
109 void menu_add_option(int token, char *arg);
110 void menu_finalize(struct menu *parent);
111 void menu_set_type(int type);
112 
113 /* util.c */
114 struct file *file_lookup(const char *name);
115 int file_write_dep(const char *name);
116 void *xmalloc(size_t size);
117 void *xcalloc(size_t nmemb, size_t size);
118 
119 struct gstr {
120         size_t len;
121         char  *s;
122         /*
123         * when max_width is not zero long lines in string s (if any) get
124         * wrapped not to exceed the max_width value
125         */
126         int max_width;
127 };
128 struct gstr str_new(void);
129 void str_free(struct gstr *gs);
130 void str_append(struct gstr *gs, const char *s);
131 void str_printf(struct gstr *gs, const char *fmt, ...);
132 const char *str_get(struct gstr *gs);
133 
134 /* symbol.c */
135 extern struct expr *sym_env_list;
136 
137 void sym_init(void);
138 void sym_clear_all_valid(void);
139 struct symbol *sym_choice_default(struct symbol *sym);
140 const char *sym_get_string_default(struct symbol *sym);
141 struct symbol *sym_check_deps(struct symbol *sym);
142 struct property *prop_alloc(enum prop_type type, struct symbol *sym);
143 struct symbol *prop_get_symbol(struct property *prop);
144 struct property *sym_get_env_prop(struct symbol *sym);
145 
146 static inline tristate sym_get_tristate_value(struct symbol *sym)
147 {
148         return sym->curr.tri;
149 }
150 
151 
152 static inline struct symbol *sym_get_choice_value(struct symbol *sym)
153 {
154         return (struct symbol *)sym->curr.val;
155 }
156 
157 static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
158 {
159         return sym_set_tristate_value(chval, yes);
160 }
161 
162 static inline bool sym_is_choice(struct symbol *sym)
163 {
164         return sym->flags & SYMBOL_CHOICE ? true : false;
165 }
166 
167 static inline bool sym_is_choice_value(struct symbol *sym)
168 {
169         return sym->flags & SYMBOL_CHOICEVAL ? true : false;
170 }
171 
172 static inline bool sym_is_optional(struct symbol *sym)
173 {
174         return sym->flags & SYMBOL_OPTIONAL ? true : false;
175 }
176 
177 static inline bool sym_has_value(struct symbol *sym)
178 {
179         return sym->flags & SYMBOL_DEF_USER ? true : false;
180 }
181 
182 #ifdef __cplusplus
183 }
184 #endif
185 
186 #endif /* LKC_H */
187 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp