busybox/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
  44struct kconf_id {
  45        int name;
  46        int token;
  47        unsigned int flags;
  48        enum symbol_type stype;
  49};
  50
  51int zconfparse(void);
  52void zconfdump(FILE *out);
  53
  54extern int zconfdebug;
  55void zconf_starthelp(void);
  56FILE *zconf_fopen(const char *name);
  57void zconf_initscan(const char *name);
  58void zconf_nextfile(const char *name);
  59int zconf_lineno(void);
  60char *zconf_curname(void);
  61
  62/* confdata.c */
  63extern const char conf_def_filename[];
  64
  65char *conf_get_default_confname(void);
  66
  67/* kconfig_load.c */
  68void kconfig_load(void);
  69
  70/* menu.c */
  71void menu_init(void);
  72struct menu *menu_add_menu(void);
  73void menu_end_menu(void);
  74void menu_add_entry(struct symbol *sym);
  75void menu_end_entry(void);
  76void menu_add_dep(struct expr *dep);
  77struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
  78struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
  79void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
  80void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
  81void menu_finalize(struct menu *parent);
  82void menu_set_type(int type);
  83
  84/* util.c */
  85struct file *file_lookup(const char *name);
  86int file_write_dep(const char *name);
  87
  88struct gstr {
  89        size_t len;
  90        char  *s;
  91};
  92struct gstr str_new(void);
  93struct gstr str_assign(const char *s);
  94void str_free(struct gstr *gs);
  95void str_append(struct gstr *gs, const char *s);
  96void str_printf(struct gstr *gs, const char *fmt, ...);
  97const char *str_get(struct gstr *gs);
  98
  99/* symbol.c */
 100void sym_init(void);
 101void sym_clear_all_valid(void);
 102void sym_set_changed(struct symbol *sym);
 103struct symbol *sym_check_deps(struct symbol *sym);
 104struct property *prop_alloc(enum prop_type type, struct symbol *sym);
 105struct symbol *prop_get_symbol(struct property *prop);
 106
 107static inline tristate sym_get_tristate_value(struct symbol *sym)
 108{
 109        return sym->curr.tri;
 110}
 111
 112
 113static inline struct symbol *sym_get_choice_value(struct symbol *sym)
 114{
 115        return (struct symbol *)sym->curr.val;
 116}
 117
 118static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
 119{
 120        return sym_set_tristate_value(chval, yes);
 121}
 122
 123static inline bool sym_is_choice(struct symbol *sym)
 124{
 125        return sym->flags & SYMBOL_CHOICE ? true : false;
 126}
 127
 128static inline bool sym_is_choice_value(struct symbol *sym)
 129{
 130        return sym->flags & SYMBOL_CHOICEVAL ? true : false;
 131}
 132
 133static inline bool sym_is_optional(struct symbol *sym)
 134{
 135        return sym->flags & SYMBOL_OPTIONAL ? true : false;
 136}
 137
 138static inline bool sym_has_value(struct symbol *sym)
 139{
 140        return sym->flags & SYMBOL_NEW ? false : true;
 141}
 142
 143#ifdef __cplusplus
 144}
 145#endif
 146
 147#endif /* LKC_H */
 148