lkc.h revision 14cdd3c402bf7c66f0bcd76e290f0770a54a4b21
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# define gettext(Msgid) ((const char *) (Msgid)) 15# define textdomain(Domainname) ((const char *) (Domainname)) 16# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname)) 17#endif 18 19#ifdef __cplusplus 20extern "C" { 21#endif 22 23#ifdef LKC_DIRECT_LINK 24#define P(name,type,arg) extern type name arg 25#else 26#include "lkc_defs.h" 27#define P(name,type,arg) extern type (*name ## _p) arg 28#endif 29#include "lkc_proto.h" 30#undef P 31 32#define SRCTREE "srctree" 33 34#define PACKAGE "linux" 35#define LOCALEDIR "/usr/share/locale" 36 37#define _(text) gettext(text) 38#define N_(text) (text) 39 40 41#define TF_COMMAND 0x0001 42#define TF_PARAM 0x0002 43#define TF_OPTION 0x0004 44 45#define T_OPT_MODULES 1 46#define T_OPT_DEFCONFIG_LIST 2 47 48struct kconf_id { 49 int name; 50 int token; 51 unsigned int flags; 52 enum symbol_type stype; 53}; 54 55int zconfparse(void); 56void zconfdump(FILE *out); 57 58extern int zconfdebug; 59void zconf_starthelp(void); 60FILE *zconf_fopen(const char *name); 61void zconf_initscan(const char *name); 62void zconf_nextfile(const char *name); 63int zconf_lineno(void); 64char *zconf_curname(void); 65 66/* confdata.c */ 67char *conf_get_default_confname(void); 68 69/* kconfig_load.c */ 70void kconfig_load(void); 71 72/* menu.c */ 73void menu_init(void); 74struct menu *menu_add_menu(void); 75void menu_end_menu(void); 76void menu_add_entry(struct symbol *sym); 77void menu_end_entry(void); 78void menu_add_dep(struct expr *dep); 79struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep); 80struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep); 81void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep); 82void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep); 83void menu_add_option(int token, char *arg); 84void menu_finalize(struct menu *parent); 85void menu_set_type(int type); 86 87/* util.c */ 88struct file *file_lookup(const char *name); 89int file_write_dep(const char *name); 90 91struct gstr { 92 size_t len; 93 char *s; 94}; 95struct gstr str_new(void); 96struct gstr str_assign(const char *s); 97void str_free(struct gstr *gs); 98void str_append(struct gstr *gs, const char *s); 99void str_printf(struct gstr *gs, const char *fmt, ...); 100const char *str_get(struct gstr *gs); 101 102/* symbol.c */ 103void sym_init(void); 104void sym_clear_all_valid(void); 105void sym_set_all_changed(void); 106void sym_set_changed(struct symbol *sym); 107struct symbol *sym_check_deps(struct symbol *sym); 108struct property *prop_alloc(enum prop_type type, struct symbol *sym); 109struct symbol *prop_get_symbol(struct property *prop); 110 111static inline tristate sym_get_tristate_value(struct symbol *sym) 112{ 113 return sym->curr.tri; 114} 115 116 117static inline struct symbol *sym_get_choice_value(struct symbol *sym) 118{ 119 return (struct symbol *)sym->curr.val; 120} 121 122static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval) 123{ 124 return sym_set_tristate_value(chval, yes); 125} 126 127static inline bool sym_is_choice(struct symbol *sym) 128{ 129 return sym->flags & SYMBOL_CHOICE ? true : false; 130} 131 132static inline bool sym_is_choice_value(struct symbol *sym) 133{ 134 return sym->flags & SYMBOL_CHOICEVAL ? true : false; 135} 136 137static inline bool sym_is_optional(struct symbol *sym) 138{ 139 return sym->flags & SYMBOL_OPTIONAL ? true : false; 140} 141 142static inline bool sym_has_value(struct symbol *sym) 143{ 144 return sym->flags & SYMBOL_DEF_USER ? true : false; 145} 146 147#ifdef __cplusplus 148} 149#endif 150 151#endif /* LKC_H */ 152