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
  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 */
  67const char *conf_get_configname(void);
  68char *conf_get_default_confname(void);
  69void sym_set_change_count(int count);
  70void sym_add_change_count(int count);
  71
  72/* kconfig_load.c */
  73void kconfig_load(void);
  74
  75/* menu.c */
  76void menu_init(void);
  77struct menu *menu_add_menu(void);
  78void menu_end_menu(void);
  79void menu_add_entry(struct symbol *sym);
  80void menu_end_entry(void);
  81void menu_add_dep(struct expr *dep);
  82struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
  83struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
  84void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
  85void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
  86void menu_add_option(int token, char *arg);
  87void menu_finalize(struct menu *parent);
  88void menu_set_type(int type);
  89
  90/* util.c */
  91struct file *file_lookup(const char *name);
  92int file_write_dep(const char *name);
  93
  94struct gstr {
  95        size_t len;
  96        char  *s;
  97};
  98struct gstr str_new(void);
  99struct gstr str_assign(const char *s);
 100void str_free(struct gstr *gs);
 101void str_append(struct gstr *gs, const char *s);
 102void str_printf(struct gstr *gs, const char *fmt, ...);
 103const char *str_get(struct gstr *gs);
 104
 105/* symbol.c */
 106void sym_init(void);
 107void sym_clear_all_valid(void);
 108void sym_set_all_changed(void);
 109void sym_set_changed(struct symbol *sym);
 110struct symbol *sym_check_deps(struct symbol *sym);
 111struct property *prop_alloc(enum prop_type type, struct symbol *sym);
 112struct symbol *prop_get_symbol(struct property *prop);
 113
 114static inline tristate sym_get_tristate_value(struct symbol *sym)
 115{
 116        return sym->curr.tri;
 117}
 118
 119
 120static inline struct symbol *sym_get_choice_value(struct symbol *sym)
 121{
 122        return (struct symbol *)sym->curr.val;
 123}
 124
 125static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
 126{
 127        return sym_set_tristate_value(chval, yes);
 128}
 129
 130static inline bool sym_is_choice(struct symbol *sym)
 131{
 132        return sym->flags & SYMBOL_CHOICE ? true : false;
 133}
 134
 135static inline bool sym_is_choice_value(struct symbol *sym)
 136{
 137        return sym->flags & SYMBOL_CHOICEVAL ? true : false;
 138}
 139
 140static inline bool sym_is_optional(struct symbol *sym)
 141{
 142        return sym->flags & SYMBOL_OPTIONAL ? true : false;
 143}
 144
 145static inline bool sym_has_value(struct symbol *sym)
 146{
 147        return sym->flags & SYMBOL_DEF_USER ? true : false;
 148}
 149
 150#ifdef __cplusplus
 151}
 152#endif
 153
 154#endif /* LKC_H */
 155