linux/scripts/kconfig/lkc.h
<<
>>
Prefs
   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
  14static inline const char *gettext(const char *txt) { return txt; }
  15static inline void textdomain(const char *domainname) {}
  16static inline void bindtextdomain(const char *name, const char *dir) {}
  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
  45enum conf_def_mode {
  46        def_default,
  47        def_yes,
  48        def_mod,
  49        def_no,
  50        def_random
  51};
  52
  53#define T_OPT_MODULES           1
  54#define T_OPT_DEFCONFIG_LIST    2
  55#define T_OPT_ENV               3
  56
  57struct kconf_id {
  58        int name;
  59        int token;
  60        unsigned int flags;
  61        enum symbol_type stype;
  62};
  63
  64int zconfparse(void);
  65void zconfdump(FILE *out);
  66
  67extern int zconfdebug;
  68void zconf_starthelp(void);
  69FILE *zconf_fopen(const char *name);
  70void zconf_initscan(const char *name);
  71void zconf_nextfile(const char *name);
  72int zconf_lineno(void);
  73char *zconf_curname(void);
  74
  75/* confdata.c */
  76const char *conf_get_configname(void);
  77const char *conf_get_autoconfig_name(void);
  78char *conf_get_default_confname(void);
  79void sym_set_change_count(int count);
  80void sym_add_change_count(int count);
  81void conf_set_all_new_symbols(enum conf_def_mode mode);
  82
  83/* kconfig_load.c */
  84void kconfig_load(void);
  85
  86/* menu.c */
  87void menu_init(void);
  88void menu_warn(struct menu *menu, const char *fmt, ...);
  89struct menu *menu_add_menu(void);
  90void menu_end_menu(void);
  91void menu_add_entry(struct symbol *sym);
  92void menu_end_entry(void);
  93void menu_add_dep(struct expr *dep);
  94struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
  95struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
  96void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
  97void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
  98void menu_add_option(int token, char *arg);
  99void menu_finalize(struct menu *parent);
 100void menu_set_type(int type);
 101
 102/* util.c */
 103struct file *file_lookup(const char *name);
 104int file_write_dep(const char *name);
 105
 106struct gstr {
 107        size_t len;
 108        char  *s;
 109};
 110struct gstr str_new(void);
 111struct gstr str_assign(const char *s);
 112void str_free(struct gstr *gs);
 113void str_append(struct gstr *gs, const char *s);
 114void str_printf(struct gstr *gs, const char *fmt, ...);
 115const char *str_get(struct gstr *gs);
 116
 117/* symbol.c */
 118extern struct expr *sym_env_list;
 119
 120void sym_init(void);
 121void sym_clear_all_valid(void);
 122void sym_set_all_changed(void);
 123void sym_set_changed(struct symbol *sym);
 124struct symbol *sym_check_deps(struct symbol *sym);
 125struct property *prop_alloc(enum prop_type type, struct symbol *sym);
 126struct symbol *prop_get_symbol(struct property *prop);
 127struct property *sym_get_env_prop(struct symbol *sym);
 128
 129static inline tristate sym_get_tristate_value(struct symbol *sym)
 130{
 131        return sym->curr.tri;
 132}
 133
 134
 135static inline struct symbol *sym_get_choice_value(struct symbol *sym)
 136{
 137        return (struct symbol *)sym->curr.val;
 138}
 139
 140static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
 141{
 142        return sym_set_tristate_value(chval, yes);
 143}
 144
 145static inline bool sym_is_choice(struct symbol *sym)
 146{
 147        return sym->flags & SYMBOL_CHOICE ? true : false;
 148}
 149
 150static inline bool sym_is_choice_value(struct symbol *sym)
 151{
 152        return sym->flags & SYMBOL_CHOICEVAL ? true : false;
 153}
 154
 155static inline bool sym_is_optional(struct symbol *sym)
 156{
 157        return sym->flags & SYMBOL_OPTIONAL ? true : false;
 158}
 159
 160static inline bool sym_has_value(struct symbol *sym)
 161{
 162        return sym->flags & SYMBOL_DEF_USER ? true : false;
 163}
 164
 165#ifdef __cplusplus
 166}
 167#endif
 168
 169#endif /* LKC_H */
 170