kconfig/lkc.h
author "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
Mon Apr 16 15:25:36 2012 +0200 (2012-04-16)
changeset 2941 13e40098fffc
parent 943 1cca90ce0481
permissions -rw-r--r--
cc/gcc: update Linaro GCC revisions to 2012.04

Update Linaro GCC with the latest available revisions.

The 4.7 revision is also released, but the infrastructure is not yet ready for
it in CT-NG.

Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.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 static inline char *bind_textdomain_codeset(const char *dn, char *c) { return c; }
    18 #endif
    19 
    20 #ifdef __cplusplus
    21 extern "C" {
    22 #endif
    23 
    24 #ifdef LKC_DIRECT_LINK
    25 #define P(name,type,arg)	extern type name arg
    26 #else
    27 #include "lkc_defs.h"
    28 #define P(name,type,arg)	extern type (*name ## _p) arg
    29 #endif
    30 #include "lkc_proto.h"
    31 #undef P
    32 
    33 #define SRCTREE "srctree"
    34 
    35 #ifndef PACKAGE
    36 #define PACKAGE "linux"
    37 #endif
    38 
    39 #define LOCALEDIR "/usr/share/locale"
    40 
    41 #define _(text) gettext(text)
    42 #define N_(text) (text)
    43 
    44 #ifndef CONFIG_
    45 #define CONFIG_ "CONFIG_"
    46 #endif
    47 
    48 #define TF_COMMAND	0x0001
    49 #define TF_PARAM	0x0002
    50 #define TF_OPTION	0x0004
    51 
    52 enum conf_def_mode {
    53 	def_default,
    54 	def_yes,
    55 	def_mod,
    56 	def_no,
    57 	def_random
    58 };
    59 
    60 #define T_OPT_MODULES		1
    61 #define T_OPT_DEFCONFIG_LIST	2
    62 #define T_OPT_ENV		3
    63 
    64 struct kconf_id {
    65 	int name;
    66 	int token;
    67 	unsigned int flags;
    68 	enum symbol_type stype;
    69 };
    70 
    71 #ifdef YYDEBUG
    72 extern int zconfdebug;
    73 #endif
    74 
    75 int zconfparse(void);
    76 void zconfdump(FILE *out);
    77 void zconf_starthelp(void);
    78 FILE *zconf_fopen(const char *name);
    79 void zconf_initscan(const char *name);
    80 void zconf_nextfile(const char *name);
    81 int zconf_lineno(void);
    82 const char *zconf_curname(void);
    83 
    84 /* conf.c */
    85 void xfgets(char *str, int size, FILE *in);
    86 
    87 /* confdata.c */
    88 const char *conf_get_configname(void);
    89 const char *conf_get_autoconfig_name(void);
    90 char *conf_get_default_confname(void);
    91 void sym_set_change_count(int count);
    92 void sym_add_change_count(int count);
    93 void conf_set_all_new_symbols(enum conf_def_mode mode);
    94 
    95 /* confdata.c and expr.c */
    96 static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out)
    97 {
    98 	if (fwrite(str, len, count, out) < count)
    99 		fprintf(stderr, "\nError in writing or end of file.\n");
   100 }
   101 
   102 /* kconfig_load.c */
   103 void kconfig_load(void);
   104 
   105 /* menu.c */
   106 void _menu_init(void);
   107 void menu_warn(struct menu *menu, const char *fmt, ...);
   108 struct menu *menu_add_menu(void);
   109 void menu_end_menu(void);
   110 void menu_add_entry(struct symbol *sym);
   111 void menu_end_entry(void);
   112 void menu_add_dep(struct expr *dep);
   113 void menu_add_visibility(struct expr *dep);
   114 struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
   115 struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
   116 void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
   117 void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
   118 void menu_add_option(int token, char *arg);
   119 void menu_finalize(struct menu *parent);
   120 void menu_set_type(int type);
   121 
   122 /* util.c */
   123 struct file *file_lookup(const char *name);
   124 int file_write_dep(const char *name);
   125 
   126 struct gstr {
   127 	size_t len;
   128 	char  *s;
   129 	/*
   130 	* when max_width is not zero long lines in string s (if any) get
   131 	* wrapped not to exceed the max_width value
   132 	*/
   133 	int max_width;
   134 };
   135 struct gstr str_new(void);
   136 struct gstr str_assign(const char *s);
   137 void str_free(struct gstr *gs);
   138 void str_append(struct gstr *gs, const char *s);
   139 void str_printf(struct gstr *gs, const char *fmt, ...);
   140 const char *str_get(struct gstr *gs);
   141 
   142 /* symbol.c */
   143 extern struct expr *sym_env_list;
   144 
   145 void sym_init(void);
   146 void sym_clear_all_valid(void);
   147 void sym_set_all_changed(void);
   148 void sym_set_changed(struct symbol *sym);
   149 struct symbol *sym_choice_default(struct symbol *sym);
   150 const char *sym_get_string_default(struct symbol *sym);
   151 struct symbol *sym_check_deps(struct symbol *sym);
   152 struct property *prop_alloc(enum prop_type type, struct symbol *sym);
   153 struct symbol *prop_get_symbol(struct property *prop);
   154 struct property *sym_get_env_prop(struct symbol *sym);
   155 
   156 static inline tristate sym_get_tristate_value(struct symbol *sym)
   157 {
   158 	return sym->curr.tri;
   159 }
   160 
   161 
   162 static inline struct symbol *sym_get_choice_value(struct symbol *sym)
   163 {
   164 	return (struct symbol *)sym->curr.val;
   165 }
   166 
   167 static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
   168 {
   169 	return sym_set_tristate_value(chval, yes);
   170 }
   171 
   172 static inline bool sym_is_choice(struct symbol *sym)
   173 {
   174 	return sym->flags & SYMBOL_CHOICE ? true : false;
   175 }
   176 
   177 static inline bool sym_is_choice_value(struct symbol *sym)
   178 {
   179 	return sym->flags & SYMBOL_CHOICEVAL ? true : false;
   180 }
   181 
   182 static inline bool sym_is_optional(struct symbol *sym)
   183 {
   184 	return sym->flags & SYMBOL_OPTIONAL ? true : false;
   185 }
   186 
   187 static inline bool sym_has_value(struct symbol *sym)
   188 {
   189 	return sym->flags & SYMBOL_DEF_USER ? true : false;
   190 }
   191 
   192 #ifdef __cplusplus
   193 }
   194 #endif
   195 
   196 #endif /* LKC_H */