kconfig/lkc.h
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Jul 29 16:48:20 2008 +0000 (2008-07-29)
changeset 750 0cbd1eb86f68
parent 1 eeea35fbf182
child 943 1cca90ce0481
permissions -rw-r--r--
Pretyy-up the WiKi table with the date of last update for each sample.

/trunk/scripts/showSamples.sh | 15 12 3 0 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
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@1
    14
# define gettext(Msgid) ((const char *) (Msgid))
yann@1
    15
# define textdomain(Domainname) ((const char *) (Domainname))
yann@1
    16
# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
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@39
    34
#define PROJECT_NAME "crosstool-NG"
yann@1
    35
#define PACKAGE "crosstool-NG"
yann@1
    36
#define LOCALEDIR "/usr/share/locale"
yann@1
    37
yann@1
    38
#define _(text) gettext(text)
yann@1
    39
#define N_(text) (text)
yann@1
    40
yann@1
    41
yann@1
    42
#define TF_COMMAND	0x0001
yann@1
    43
#define TF_PARAM	0x0002
yann@1
    44
#define TF_OPTION	0x0004
yann@1
    45
yann@1
    46
#define T_OPT_MODULES		1
yann@1
    47
#define T_OPT_DEFCONFIG_LIST	2
yann@1
    48
yann@1
    49
struct kconf_id {
yann@1
    50
	int name;
yann@1
    51
	int token;
yann@1
    52
	unsigned int flags;
yann@1
    53
	enum symbol_type stype;
yann@1
    54
};
yann@1
    55
yann@1
    56
int zconfparse(void);
yann@1
    57
void zconfdump(FILE *out);
yann@1
    58
yann@1
    59
extern int zconfdebug;
yann@1
    60
void zconf_starthelp(void);
yann@1
    61
FILE *zconf_fopen(const char *name);
yann@1
    62
void zconf_initscan(const char *name);
yann@1
    63
void zconf_nextfile(const char *name);
yann@1
    64
int zconf_lineno(void);
yann@1
    65
char *zconf_curname(void);
yann@1
    66
yann@1
    67
/* confdata.c */
yann@1
    68
char *conf_get_default_confname(void);
yann@39
    69
void sym_set_change_count(int count);
yann@39
    70
void sym_add_change_count(int count);
yann@1
    71
yann@1
    72
/* kconfig_load.c */
yann@1
    73
void kconfig_load(void);
yann@1
    74
yann@1
    75
/* menu.c */
yann@1
    76
void menu_init(void);
yann@1
    77
struct menu *menu_add_menu(void);
yann@1
    78
void menu_end_menu(void);
yann@1
    79
void menu_add_entry(struct symbol *sym);
yann@1
    80
void menu_end_entry(void);
yann@1
    81
void menu_add_dep(struct expr *dep);
yann@1
    82
struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
yann@1
    83
struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
yann@1
    84
void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
yann@1
    85
void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
yann@1
    86
void menu_add_option(int token, char *arg);
yann@1
    87
void menu_finalize(struct menu *parent);
yann@1
    88
void menu_set_type(int type);
yann@1
    89
yann@1
    90
/* util.c */
yann@1
    91
struct file *file_lookup(const char *name);
yann@1
    92
int file_write_dep(const char *name);
yann@1
    93
yann@1
    94
struct gstr {
yann@1
    95
	size_t len;
yann@1
    96
	char  *s;
yann@1
    97
};
yann@1
    98
struct gstr str_new(void);
yann@1
    99
struct gstr str_assign(const char *s);
yann@1
   100
void str_free(struct gstr *gs);
yann@1
   101
void str_append(struct gstr *gs, const char *s);
yann@1
   102
void str_printf(struct gstr *gs, const char *fmt, ...);
yann@1
   103
const char *str_get(struct gstr *gs);
yann@1
   104
yann@1
   105
/* symbol.c */
yann@1
   106
void sym_init(void);
yann@1
   107
void sym_clear_all_valid(void);
yann@1
   108
void sym_set_all_changed(void);
yann@1
   109
void sym_set_changed(struct symbol *sym);
yann@1
   110
struct symbol *sym_check_deps(struct symbol *sym);
yann@1
   111
struct property *prop_alloc(enum prop_type type, struct symbol *sym);
yann@1
   112
struct symbol *prop_get_symbol(struct property *prop);
yann@1
   113
yann@1
   114
static inline tristate sym_get_tristate_value(struct symbol *sym)
yann@1
   115
{
yann@1
   116
	return sym->curr.tri;
yann@1
   117
}
yann@1
   118
yann@1
   119
yann@1
   120
static inline struct symbol *sym_get_choice_value(struct symbol *sym)
yann@1
   121
{
yann@1
   122
	return (struct symbol *)sym->curr.val;
yann@1
   123
}
yann@1
   124
yann@1
   125
static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
yann@1
   126
{
yann@1
   127
	return sym_set_tristate_value(chval, yes);
yann@1
   128
}
yann@1
   129
yann@1
   130
static inline bool sym_is_choice(struct symbol *sym)
yann@1
   131
{
yann@1
   132
	return sym->flags & SYMBOL_CHOICE ? true : false;
yann@1
   133
}
yann@1
   134
yann@1
   135
static inline bool sym_is_choice_value(struct symbol *sym)
yann@1
   136
{
yann@1
   137
	return sym->flags & SYMBOL_CHOICEVAL ? true : false;
yann@1
   138
}
yann@1
   139
yann@1
   140
static inline bool sym_is_optional(struct symbol *sym)
yann@1
   141
{
yann@1
   142
	return sym->flags & SYMBOL_OPTIONAL ? true : false;
yann@1
   143
}
yann@1
   144
yann@1
   145
static inline bool sym_has_value(struct symbol *sym)
yann@1
   146
{
yann@1
   147
	return sym->flags & SYMBOL_DEF_USER ? true : false;
yann@1
   148
}
yann@1
   149
yann@1
   150
#ifdef __cplusplus
yann@1
   151
}
yann@1
   152
#endif
yann@1
   153
yann@1
   154
#endif /* LKC_H */