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