kconfig/lkc.h
author Arnaud Lacombe <lacombar@gmail.com>
Tue Aug 03 06:17:51 2010 +0200 (2010-08-03)
changeset 2064 f5ebe8c429dc
parent 39 af42eec9d383
child 2448 a103abae1560
permissions -rw-r--r--
libc/uClibc: add uClibc 0.9.30.3

This version has been released a couple of month ago, but it never reached
crosstool-ng tree. This may be linked to the fact that the current 0.9.30.2,
once patched, has nothing much different from 0.9.30.3, released.

I'm not including any patch with this upgrade, on purpose.

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