Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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