Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v5.4-rc7 158 lines 3.9 kB view raw
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 12extern "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 26static inline const char *CONFIG_prefix(void) 27{ 28 return getenv( "CONFIG_" ) ?: CONFIG_; 29} 30#undef CONFIG_ 31#define CONFIG_ CONFIG_prefix() 32 33enum conf_def_mode { 34 def_default, 35 def_yes, 36 def_mod, 37 def_no, 38 def_random 39}; 40 41extern int yylineno; 42void zconfdump(FILE *out); 43void zconf_starthelp(void); 44FILE *zconf_fopen(const char *name); 45void zconf_initscan(const char *name); 46void zconf_nextfile(const char *name); 47int zconf_lineno(void); 48const char *zconf_curname(void); 49 50/* confdata.c */ 51const char *conf_get_configname(void); 52void sym_set_change_count(int count); 53void sym_add_change_count(int count); 54bool conf_set_all_new_symbols(enum conf_def_mode mode); 55void set_all_choice_values(struct symbol *csym); 56 57/* confdata.c and expr.c */ 58static 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 */ 67void _menu_init(void); 68void menu_warn(struct menu *menu, const char *fmt, ...); 69struct menu *menu_add_menu(void); 70void menu_end_menu(void); 71void menu_add_entry(struct symbol *sym); 72void menu_add_dep(struct expr *dep); 73void menu_add_visibility(struct expr *dep); 74struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep); 75void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep); 76void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep); 77void menu_add_option_modules(void); 78void menu_add_option_defconfig_list(void); 79void menu_add_option_allnoconfig_y(void); 80void menu_finalize(struct menu *parent); 81void menu_set_type(int type); 82 83/* util.c */ 84struct file *file_lookup(const char *name); 85void *xmalloc(size_t size); 86void *xcalloc(size_t nmemb, size_t size); 87void *xrealloc(void *p, size_t size); 88char *xstrdup(const char *s); 89char *xstrndup(const char *s, size_t n); 90 91/* lexer.l */ 92int yylex(void); 93 94struct 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}; 103struct gstr str_new(void); 104void str_free(struct gstr *gs); 105void str_append(struct gstr *gs, const char *s); 106void str_printf(struct gstr *gs, const char *fmt, ...); 107const char *str_get(struct gstr *gs); 108 109/* symbol.c */ 110void sym_clear_all_valid(void); 111struct symbol *sym_choice_default(struct symbol *sym); 112struct property *sym_get_range_prop(struct symbol *sym); 113const char *sym_get_string_default(struct symbol *sym); 114struct symbol *sym_check_deps(struct symbol *sym); 115struct property *prop_alloc(enum prop_type type, struct symbol *sym); 116struct symbol *prop_get_symbol(struct property *prop); 117 118static inline tristate sym_get_tristate_value(struct symbol *sym) 119{ 120 return sym->curr.tri; 121} 122 123 124static inline struct symbol *sym_get_choice_value(struct symbol *sym) 125{ 126 return (struct symbol *)sym->curr.val; 127} 128 129static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval) 130{ 131 return sym_set_tristate_value(chval, yes); 132} 133 134static inline bool sym_is_choice(struct symbol *sym) 135{ 136 return sym->flags & SYMBOL_CHOICE ? true : false; 137} 138 139static inline bool sym_is_choice_value(struct symbol *sym) 140{ 141 return sym->flags & SYMBOL_CHOICEVAL ? true : false; 142} 143 144static inline bool sym_is_optional(struct symbol *sym) 145{ 146 return sym->flags & SYMBOL_OPTIONAL ? true : false; 147} 148 149static 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 */