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