root/scripts/kconfig/lkc.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. CONFIG_prefix
  2. xfwrite
  3. sym_get_tristate_value
  4. sym_get_choice_value
  5. sym_set_choice_value
  6. sym_is_choice
  7. sym_is_choice_value
  8. sym_is_optional
  9. sym_has_value

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
   4  */
   5 
   6 #ifndef LKC_H
   7 #define LKC_H
   8 
   9 #include "expr.h"
  10 
  11 #ifdef __cplusplus
  12 extern "C" {
  13 #endif
  14 
  15 #include "lkc_proto.h"
  16 
  17 #define SRCTREE "srctree"
  18 
  19 #ifndef PACKAGE
  20 #define PACKAGE "linux"
  21 #endif
  22 
  23 #ifndef CONFIG_
  24 #define CONFIG_ "CONFIG_"
  25 #endif
  26 static inline const char *CONFIG_prefix(void)
  27 {
  28         return getenv( "CONFIG_" ) ?: CONFIG_;
  29 }
  30 #undef CONFIG_
  31 #define CONFIG_ CONFIG_prefix()
  32 
  33 enum conf_def_mode {
  34         def_default,
  35         def_yes,
  36         def_mod,
  37         def_no,
  38         def_random
  39 };
  40 
  41 extern int yylineno;
  42 void zconfdump(FILE *out);
  43 void zconf_starthelp(void);
  44 FILE *zconf_fopen(const char *name);
  45 void zconf_initscan(const char *name);
  46 void zconf_nextfile(const char *name);
  47 int zconf_lineno(void);
  48 const char *zconf_curname(void);
  49 
  50 /* confdata.c */
  51 const char *conf_get_configname(void);
  52 void sym_set_change_count(int count);
  53 void sym_add_change_count(int count);
  54 bool conf_set_all_new_symbols(enum conf_def_mode mode);
  55 void set_all_choice_values(struct symbol *csym);
  56 
  57 /* confdata.c and expr.c */
  58 static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out)
  59 {
  60         assert(len != 0);
  61 
  62         if (fwrite(str, len, count, out) != count)
  63                 fprintf(stderr, "Error in writing or end of file.\n");
  64 }
  65 
  66 /* menu.c */
  67 void _menu_init(void);
  68 void menu_warn(struct menu *menu, const char *fmt, ...);
  69 struct menu *menu_add_menu(void);
  70 void menu_end_menu(void);
  71 void menu_add_entry(struct symbol *sym);
  72 void menu_add_dep(struct expr *dep);
  73 void menu_add_visibility(struct expr *dep);
  74 struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
  75 void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
  76 void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
  77 void menu_add_option_modules(void);
  78 void menu_add_option_defconfig_list(void);
  79 void menu_add_option_allnoconfig_y(void);
  80 void menu_finalize(struct menu *parent);
  81 void menu_set_type(int type);
  82 
  83 /* util.c */
  84 struct file *file_lookup(const char *name);
  85 void *xmalloc(size_t size);
  86 void *xcalloc(size_t nmemb, size_t size);
  87 void *xrealloc(void *p, size_t size);
  88 char *xstrdup(const char *s);
  89 char *xstrndup(const char *s, size_t n);
  90 
  91 /* lexer.l */
  92 int yylex(void);
  93 
  94 struct gstr {
  95         size_t len;
  96         char  *s;
  97         /*
  98         * when max_width is not zero long lines in string s (if any) get
  99         * wrapped not to exceed the max_width value
 100         */
 101         int max_width;
 102 };
 103 struct gstr str_new(void);
 104 void str_free(struct gstr *gs);
 105 void str_append(struct gstr *gs, const char *s);
 106 void str_printf(struct gstr *gs, const char *fmt, ...);
 107 const char *str_get(struct gstr *gs);
 108 
 109 /* symbol.c */
 110 void sym_clear_all_valid(void);
 111 struct symbol *sym_choice_default(struct symbol *sym);
 112 struct property *sym_get_range_prop(struct symbol *sym);
 113 const char *sym_get_string_default(struct symbol *sym);
 114 struct symbol *sym_check_deps(struct symbol *sym);
 115 struct property *prop_alloc(enum prop_type type, struct symbol *sym);
 116 struct symbol *prop_get_symbol(struct property *prop);
 117 
 118 static inline tristate sym_get_tristate_value(struct symbol *sym)
 119 {
 120         return sym->curr.tri;
 121 }
 122 
 123 
 124 static inline struct symbol *sym_get_choice_value(struct symbol *sym)
 125 {
 126         return (struct symbol *)sym->curr.val;
 127 }
 128 
 129 static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
 130 {
 131         return sym_set_tristate_value(chval, yes);
 132 }
 133 
 134 static inline bool sym_is_choice(struct symbol *sym)
 135 {
 136         return sym->flags & SYMBOL_CHOICE ? true : false;
 137 }
 138 
 139 static inline bool sym_is_choice_value(struct symbol *sym)
 140 {
 141         return sym->flags & SYMBOL_CHOICEVAL ? true : false;
 142 }
 143 
 144 static inline bool sym_is_optional(struct symbol *sym)
 145 {
 146         return sym->flags & SYMBOL_OPTIONAL ? true : false;
 147 }
 148 
 149 static inline bool sym_has_value(struct symbol *sym)
 150 {
 151         return sym->flags & SYMBOL_DEF_USER ? true : false;
 152 }
 153 
 154 #ifdef __cplusplus
 155 }
 156 #endif
 157 
 158 #endif /* LKC_H */

/* [<][>][^][v][top][bottom][index][help] */