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>
yann@1
     1
/*
yann@1
     2
 * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
yann@1
     3
 * Released under the terms of the GNU GPL v2.0.
yann@1
     4
 */
yann@1
     5
yann@1
     6
#ifndef LKC_H
yann@1
     7
#define LKC_H
yann@1
     8
yann@1
     9
#include "expr.h"
yann@1
    10
yann@1
    11
#ifndef KBUILD_NO_NLS
yann@1
    12
# include <libintl.h>
yann@1
    13
#else
yann@943
    14
static inline const char *gettext(const char *txt) { return txt; }
yann@943
    15
static inline void textdomain(const char *domainname) {}
yann@943
    16
static inline void bindtextdomain(const char *name, const char *dir) {}
yann@1
    17
#endif
yann@1
    18
yann@1
    19
#ifdef __cplusplus
yann@1
    20
extern "C" {
yann@1
    21
#endif
yann@1
    22
yann@1
    23
#ifdef LKC_DIRECT_LINK
yann@1
    24
#define P(name,type,arg)	extern type name arg
yann@1
    25
#else
yann@1
    26
#include "lkc_defs.h"
yann@1
    27
#define P(name,type,arg)	extern type (*name ## _p) arg
yann@1
    28
#endif
yann@1
    29
#include "lkc_proto.h"
yann@1
    30
#undef P
yann@1
    31
yann@1
    32
#define SRCTREE "srctree"
yann@1
    33
yann@1
    34
#define PACKAGE "crosstool-NG"
yann@1
    35
#define LOCALEDIR "/usr/share/locale"
yann@1
    36
yann@1
    37
#define _(text) gettext(text)
yann@1
    38
#define N_(text) (text)
yann@1
    39
yann@1
    40
yann@1
    41
#define TF_COMMAND	0x0001
yann@1
    42
#define TF_PARAM	0x0002
yann@1
    43
#define TF_OPTION	0x0004
yann@1
    44
yann@943
    45
enum conf_def_mode {
yann@943
    46
	def_default,
yann@943
    47
	def_yes,
yann@943
    48
	def_mod,
yann@943
    49
	def_no,
yann@943
    50
	def_random
yann@943
    51
};
yann@943
    52
yann@1
    53
#define T_OPT_MODULES		1
yann@1
    54
#define T_OPT_DEFCONFIG_LIST	2
yann@943
    55
#define T_OPT_ENV		3
yann@1
    56
yann@1
    57
struct kconf_id {
yann@1
    58
	int name;
yann@1
    59
	int token;
yann@1
    60
	unsigned int flags;
yann@1
    61
	enum symbol_type stype;
yann@1
    62
};
yann@1
    63
yann@1
    64
int zconfparse(void);
yann@1
    65
void zconfdump(FILE *out);
yann@1
    66
yann@1
    67
extern int zconfdebug;
yann@1
    68
void zconf_starthelp(void);
yann@1
    69
FILE *zconf_fopen(const char *name);
yann@1
    70
void zconf_initscan(const char *name);
yann@1
    71
void zconf_nextfile(const char *name);
yann@1
    72
int zconf_lineno(void);
yann@1
    73
char *zconf_curname(void);
yann@1
    74
yann@1
    75
/* confdata.c */
yann@943
    76
const char *conf_get_configname(void);
yann@1
    77
char *conf_get_default_confname(void);
yann@39
    78
void sym_set_change_count(int count);
yann@39
    79
void sym_add_change_count(int count);
yann@943
    80
void conf_set_all_new_symbols(enum conf_def_mode mode);
yann@1
    81
yann@1
    82
/* kconfig_load.c */
yann@1
    83
void kconfig_load(void);
yann@1
    84
yann@1
    85
/* menu.c */
yann@1
    86
void menu_init(void);
yann@943
    87
void menu_warn(struct menu *menu, const char *fmt, ...);
yann@1
    88
struct menu *menu_add_menu(void);
yann@1
    89
void menu_end_menu(void);
yann@1
    90
void menu_add_entry(struct symbol *sym);
yann@1
    91
void menu_end_entry(void);
yann@1
    92
void menu_add_dep(struct expr *dep);
yann@1
    93
struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
yann@1
    94
struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
yann@1
    95
void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
yann@1
    96
void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
yann@1
    97
void menu_add_option(int token, char *arg);
yann@1
    98
void menu_finalize(struct menu *parent);
yann@1
    99
void menu_set_type(int type);
yann@1
   100
yann@1
   101
/* util.c */
yann@1
   102
struct file *file_lookup(const char *name);
yann@1
   103
int file_write_dep(const char *name);
yann@1
   104
yann@1
   105
struct gstr {
yann@1
   106
	size_t len;
yann@1
   107
	char  *s;
yann@1
   108
};
yann@1
   109
struct gstr str_new(void);
yann@1
   110
struct gstr str_assign(const char *s);
yann@1
   111
void str_free(struct gstr *gs);
yann@1
   112
void str_append(struct gstr *gs, const char *s);
yann@1
   113
void str_printf(struct gstr *gs, const char *fmt, ...);
yann@1
   114
const char *str_get(struct gstr *gs);
yann@1
   115
yann@1
   116
/* symbol.c */
yann@943
   117
extern struct expr *sym_env_list;
yann@943
   118
yann@1
   119
void sym_init(void);
yann@1
   120
void sym_clear_all_valid(void);
yann@1
   121
void sym_set_all_changed(void);
yann@1
   122
void sym_set_changed(struct symbol *sym);
yann@1
   123
struct symbol *sym_check_deps(struct symbol *sym);
yann@1
   124
struct property *prop_alloc(enum prop_type type, struct symbol *sym);
yann@1
   125
struct symbol *prop_get_symbol(struct property *prop);
yann@943
   126
struct property *sym_get_env_prop(struct symbol *sym);
yann@1
   127
yann@1
   128
static inline tristate sym_get_tristate_value(struct symbol *sym)
yann@1
   129
{
yann@1
   130
	return sym->curr.tri;
yann@1
   131
}
yann@1
   132
yann@1
   133
yann@1
   134
static inline struct symbol *sym_get_choice_value(struct symbol *sym)
yann@1
   135
{
yann@1
   136
	return (struct symbol *)sym->curr.val;
yann@1
   137
}
yann@1
   138
yann@1
   139
static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
yann@1
   140
{
yann@1
   141
	return sym_set_tristate_value(chval, yes);
yann@1
   142
}
yann@1
   143
yann@1
   144
static inline bool sym_is_choice(struct symbol *sym)
yann@1
   145
{
yann@1
   146
	return sym->flags & SYMBOL_CHOICE ? true : false;
yann@1
   147
}
yann@1
   148
yann@1
   149
static inline bool sym_is_choice_value(struct symbol *sym)
yann@1
   150
{
yann@1
   151
	return sym->flags & SYMBOL_CHOICEVAL ? true : false;
yann@1
   152
}
yann@1
   153
yann@1
   154
static inline bool sym_is_optional(struct symbol *sym)
yann@1
   155
{
yann@1
   156
	return sym->flags & SYMBOL_OPTIONAL ? true : false;
yann@1
   157
}
yann@1
   158
yann@1
   159
static inline bool sym_has_value(struct symbol *sym)
yann@1
   160
{
yann@1
   161
	return sym->flags & SYMBOL_DEF_USER ? true : false;
yann@1
   162
}
yann@1
   163
yann@1
   164
#ifdef __cplusplus
yann@1
   165
}
yann@1
   166
#endif
yann@1
   167
yann@1
   168
#endif /* LKC_H */