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