base/config/kconfig/expr.c File Reference

Include dependency graph for expr.c:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define LKC_DIRECT_LINK
#define e1   (*ep1)
#define e2   (*ep2)
#define e1   (*ep1)
#define e2   (*ep2)
#define e1   (*ep1)
#define e2   (*ep2)
#define e1   (*ep1)
#define e2   (*ep2)

Functions

exprexpr_alloc_symbol (struct symbol *sym)
exprexpr_alloc_one (enum expr_type type, struct expr *ce)
exprexpr_alloc_two (enum expr_type type, struct expr *e1, struct expr *e2)
exprexpr_alloc_comp (enum expr_type type, struct symbol *s1, struct symbol *s2)
exprexpr_alloc_and (struct expr *e1, struct expr *e2)
exprexpr_alloc_or (struct expr *e1, struct expr *e2)
exprexpr_copy (struct expr *org)
void expr_free (struct expr *e)
static void __expr_eliminate_eq (enum expr_type type, struct expr **ep1, struct expr **ep2)
void expr_eliminate_eq (struct expr **ep1, struct expr **ep2)
int expr_eq (struct expr *e1, struct expr *e2)
exprexpr_eliminate_yn (struct expr *e)
exprexpr_trans_bool (struct expr *e)
exprexpr_join_or (struct expr *e1, struct expr *e2)
exprexpr_join_and (struct expr *e1, struct expr *e2)
static void expr_eliminate_dups1 (enum expr_type type, struct expr **ep1, struct expr **ep2)
static void expr_eliminate_dups2 (enum expr_type type, struct expr **ep1, struct expr **ep2)
exprexpr_eliminate_dups (struct expr *e)
exprexpr_transform (struct expr *e)
int expr_contains_symbol (struct expr *dep, struct symbol *sym)
bool expr_depends_symbol (struct expr *dep, struct symbol *sym)
exprexpr_extract_eq_and (struct expr **ep1, struct expr **ep2)
exprexpr_extract_eq_or (struct expr **ep1, struct expr **ep2)
void expr_extract_eq (enum expr_type type, struct expr **ep, struct expr **ep1, struct expr **ep2)
exprexpr_trans_compare (struct expr *e, enum expr_type type, struct symbol *sym)
tristate expr_calc_value (struct expr *e)
int expr_compare_type (enum expr_type t1, enum expr_type t2)
void expr_print (struct expr *e, void(*fn)(void *, const char *), void *data, int prevtoken)
static void expr_print_file_helper (void *data, const char *str)
void expr_fprint (struct expr *e, FILE *out)
void print_expr (int mask, struct expr *e, int prevtoken)

Variables

static int trans_count


Define Documentation

#define e1   (*ep1)

Definition at line 130 of file expr.c.

#define e1   (*ep1)

Definition at line 130 of file expr.c.

#define e1   (*ep1)

Definition at line 130 of file expr.c.

#define e1   (*ep1)

Definition at line 130 of file expr.c.

Referenced by __expr_eliminate_eq(), expr_alloc_and(), expr_alloc_or(), expr_alloc_two(), expr_eliminate_dups1(), expr_eliminate_dups2(), expr_eliminate_eq(), expr_eq(), expr_extract_eq(), expr_join_and(), expr_join_or(), and expr_trans_compare().

#define e2   (*ep2)

Definition at line 131 of file expr.c.

#define e2   (*ep2)

Definition at line 131 of file expr.c.

#define e2   (*ep2)

Definition at line 131 of file expr.c.

#define e2   (*ep2)

Definition at line 131 of file expr.c.

Referenced by __expr_eliminate_eq(), expr_alloc_and(), expr_alloc_or(), expr_alloc_two(), expr_eliminate_dups1(), expr_eliminate_dups2(), expr_eliminate_eq(), expr_eq(), expr_extract_eq(), expr_join_and(), expr_join_or(), and expr_trans_compare().

#define LKC_DIRECT_LINK

Definition at line 10 of file expr.c.


Function Documentation

static void __expr_eliminate_eq ( enum expr_type  type,
struct expr **  ep1,
struct expr **  ep2 
) [static]

Definition at line 133 of file expr.c.

References e1, e2, E_AND, E_OR, E_SYMBOL, expr_alloc_symbol(), expr_eq(), expr_free(), symbol_no, SYMBOL_NO, symbol_yes, SYMBOL_YES, and trans_count.

Referenced by expr_eliminate_eq().

Here is the call graph for this function:

struct expr* expr_alloc_and ( struct expr e1,
struct expr e2 
)

Definition at line 51 of file expr.c.

References e1, e2, E_AND, and expr_alloc_two().

Referenced by menu_add_dep(), menu_check_dep(), and menu_finalize().

Here is the call graph for this function:

struct expr* expr_alloc_comp ( enum expr_type  type,
struct symbol s1,
struct symbol s2 
)

Definition at line 41 of file expr.c.

References s1, and s2.

Referenced by expr_join_and(), expr_join_or(), and expr_trans_compare().

struct expr* expr_alloc_one ( enum expr_type  type,
struct expr ce 
)

Definition at line 22 of file expr.c.

Referenced by expr_eliminate_dups2(), expr_trans_compare(), expr_transform(), and menu_finalize().

struct expr* expr_alloc_or ( struct expr e1,
struct expr e2 
)

Definition at line 58 of file expr.c.

References e1, e2, E_OR, and expr_alloc_two().

Referenced by menu_finalize().

Here is the call graph for this function:

struct expr* expr_alloc_symbol ( struct symbol sym  ) 

Definition at line 13 of file expr.c.

References E_SYMBOL.

Referenced by __expr_eliminate_eq(), expr_eliminate_dups1(), expr_eliminate_dups2(), expr_extract_eq(), expr_join_and(), expr_join_or(), expr_trans_compare(), expr_transform(), menu_add_symbol(), menu_check_dep(), menu_finalize(), and sym_add_default().

struct expr* expr_alloc_two ( enum expr_type  type,
struct expr e1,
struct expr e2 
)

Definition at line 31 of file expr.c.

References e1, and e2.

Referenced by expr_alloc_and(), expr_alloc_or(), expr_extract_eq(), and expr_trans_compare().

tristate expr_calc_value ( struct expr e  ) 

Definition at line 928 of file expr.c.

References E_AND, E_EQUAL, E_NOT, E_OR, E_SYMBOL, E_UNEQUAL, expr_data::expr, expr_calc_value(), no, expr::right, expr_data::sym, sym_calc_value(), sym_get_string_value(), expr::type, and yes.

Referenced by expr_calc_value(), menu_is_visible(), sym_calc_choice(), sym_calc_value(), sym_calc_visibility(), sym_get_default_prop(), and sym_get_range_prop().

Here is the call graph for this function:

int expr_compare_type ( enum expr_type  t1,
enum expr_type  t2 
)

Definition at line 969 of file expr.c.

References E_AND, E_CHOICE, E_EQUAL, E_NOT, E_OR, and E_UNEQUAL.

Referenced by expr_print().

int expr_contains_symbol ( struct expr dep,
struct symbol sym 
)

Definition at line 763 of file expr.c.

References E_AND, E_EQUAL, E_NOT, E_OR, E_SYMBOL, E_UNEQUAL, expr_data::expr, expr_contains_symbol(), expr::right, expr_data::sym, and expr::type.

Referenced by expr_contains_symbol(), and menu_finalize().

Here is the call graph for this function:

struct expr* expr_copy ( struct expr org  ) 

Definition at line 65 of file expr.c.

References E_AND, E_CHOICE, E_EQUAL, E_NOT, E_OR, E_SYMBOL, E_UNEQUAL, expr_data::expr, expr_copy(), expr::right, expr_data::sym, and expr::type.

Referenced by expr_copy(), expr_eliminate_dups2(), expr_eq(), expr_join_and(), expr_join_or(), expr_trans_compare(), and menu_finalize().

Here is the call graph for this function:

bool expr_depends_symbol ( struct expr dep,
struct symbol sym 
)

Definition at line 787 of file expr.c.

References E_AND, E_EQUAL, E_SYMBOL, E_UNEQUAL, expr_data::expr, expr_depends_symbol(), expr::right, expr_data::sym, symbol_mod, symbol_no, symbol_yes, and expr::type.

Referenced by expr_depends_symbol(), and menu_finalize().

Here is the call graph for this function:

struct expr* expr_eliminate_dups ( struct expr e  ) 

Definition at line 602 of file expr.c.

References E_AND, E_OR, expr_eliminate_dups1(), expr_eliminate_dups2(), expr_eliminate_yn(), trans_count, and expr::type.

Referenced by menu_finalize().

Here is the call graph for this function:

static void expr_eliminate_dups1 ( enum expr_type  type,
struct expr **  ep1,
struct expr **  ep2 
) [static]

Definition at line 494 of file expr.c.

References e1, e2, E_AND, E_OR, expr_alloc_symbol(), expr_free(), expr_join_and(), expr_join_or(), symbol_no, symbol_yes, and trans_count.

Referenced by expr_eliminate_dups().

Here is the call graph for this function:

static void expr_eliminate_dups2 ( enum expr_type  type,
struct expr **  ep1,
struct expr **  ep2 
) [static]

Definition at line 546 of file expr.c.

References e1, e2, E_AND, E_NOT, E_OR, expr_alloc_one(), expr_alloc_symbol(), expr_copy(), expr_extract_eq_and(), expr_extract_eq_or(), expr_free(), expr_is_no(), expr_is_yes(), expr_transform(), symbol_no, symbol_yes, and trans_count.

Referenced by expr_eliminate_dups().

Here is the call graph for this function:

void expr_eliminate_eq ( struct expr **  ep1,
struct expr **  ep2 
)

Definition at line 166 of file expr.c.

References __expr_eliminate_eq(), e1, e2, E_AND, E_OR, and expr_eliminate_yn().

Referenced by expr_eq(), and menu_finalize().

Here is the call graph for this function:

struct expr* expr_eliminate_yn ( struct expr e  ) 

Definition at line 231 of file expr.c.

References E_AND, E_OR, E_SYMBOL, expr_data::expr, expr_eliminate_yn(), expr_free(), expr::right, symbol_no, symbol_yes, and expr::type.

Referenced by expr_eliminate_dups(), expr_eliminate_eq(), expr_eliminate_yn(), expr_extract_eq_and(), and expr_extract_eq_or().

Here is the call graph for this function:

int expr_eq ( struct expr e1,
struct expr e2 
)

Definition at line 191 of file expr.c.

References e1, e2, E_AND, E_CHOICE, E_EQUAL, E_NONE, E_NOT, E_OR, E_RANGE, E_SYMBOL, E_UNEQUAL, expr_copy(), expr_eliminate_eq(), expr_eq(), expr_free(), print_expr(), and trans_count.

Referenced by __expr_eliminate_eq(), expr_eq(), expr_extract_eq(), expr_join_and(), and expr_join_or().

Here is the call graph for this function:

void expr_extract_eq ( enum expr_type  type,
struct expr **  ep,
struct expr **  ep1,
struct expr **  ep2 
)

Definition at line 838 of file expr.c.

References e1, e2, E_AND, E_OR, expr_alloc_symbol(), expr_alloc_two(), expr_eq(), expr_extract_eq(), expr_free(), symbol_no, and symbol_yes.

Referenced by expr_extract_eq(), expr_extract_eq_and(), and expr_extract_eq_or().

Here is the call graph for this function:

struct expr* expr_extract_eq_and ( struct expr **  ep1,
struct expr **  ep2 
)

Definition at line 816 of file expr.c.

References E_AND, expr_eliminate_yn(), and expr_extract_eq().

Referenced by expr_eliminate_dups2().

Here is the call graph for this function:

struct expr* expr_extract_eq_or ( struct expr **  ep1,
struct expr **  ep2 
)

Definition at line 827 of file expr.c.

References E_OR, expr_eliminate_yn(), and expr_extract_eq().

Referenced by expr_eliminate_dups2().

Here is the call graph for this function:

void expr_fprint ( struct expr e,
FILE *  out 
)

Definition at line 1072 of file expr.c.

References E_NONE, expr_print(), and expr_print_file_helper().

Referenced by print_expr(), print_symbol(), and zconfdump().

Here is the call graph for this function:

void expr_free ( struct expr e  ) 

Definition at line 102 of file expr.c.

References E_AND, E_EQUAL, E_NOT, E_OR, E_SYMBOL, E_UNEQUAL, expr_data::expr, expr_free(), expr::right, and expr::type.

Referenced by __expr_eliminate_eq(), expr_eliminate_dups1(), expr_eliminate_dups2(), expr_eliminate_yn(), expr_eq(), expr_extract_eq(), expr_free(), and menu_finalize().

Here is the call graph for this function:

struct expr* expr_join_and ( struct expr e1,
struct expr e2 
)

Definition at line 408 of file expr.c.

References e1, e2, E_EQUAL, E_NOT, E_SYMBOL, E_UNEQUAL, expr_alloc_comp(), expr_alloc_symbol(), expr_copy(), expr_eq(), symbol::flags, print_expr(), S_BOOLEAN, S_TRISTATE, SYMBOL_CONST, symbol_mod, symbol_no, symbol_yes, symbol::type, and expr::type.

Referenced by expr_eliminate_dups1().

Here is the call graph for this function:

struct expr* expr_join_or ( struct expr e1,
struct expr e2 
)

Definition at line 346 of file expr.c.

References e1, e2, E_EQUAL, E_NOT, E_SYMBOL, E_UNEQUAL, expr_alloc_comp(), expr_alloc_symbol(), expr_copy(), expr_eq(), print_expr(), S_BOOLEAN, S_TRISTATE, symbol_mod, symbol_no, symbol_yes, symbol::type, and expr::type.

Referenced by expr_eliminate_dups1().

Here is the call graph for this function:

void expr_print ( struct expr e,
void(*)(void *, const char *)  fn,
void *  data,
int  prevtoken 
)

Definition at line 1001 of file expr.c.

References buf, E_AND, E_CHOICE, E_EQUAL, E_NOT, E_OR, E_RANGE, E_SYMBOL, E_UNEQUAL, expr_data::expr, expr_compare_type(), symbol::name, expr::right, expr_data::sym, and expr::type.

Referenced by expr_fprint().

Here is the call graph for this function:

static void expr_print_file_helper ( void *  data,
const char *  str 
) [static]

Definition at line 1067 of file expr.c.

Referenced by expr_fprint().

struct expr* expr_trans_bool ( struct expr e  ) 

Definition at line 317 of file expr.c.

References E_AND, E_NOT, E_OR, E_SYMBOL, E_UNEQUAL, expr_data::expr, expr_trans_bool(), expr::right, S_TRISTATE, expr_data::sym, symbol_no, and expr::type.

Referenced by expr_trans_bool(), and menu_finalize().

Here is the call graph for this function:

struct expr* expr_trans_compare ( struct expr e,
enum expr_type  type,
struct symbol sym 
)

Definition at line 867 of file expr.c.

References e1, e2, E_AND, E_CHOICE, E_EQUAL, E_NONE, E_NOT, E_OR, E_RANGE, E_SYMBOL, E_UNEQUAL, expr_data::expr, expr_alloc_comp(), expr_alloc_one(), expr_alloc_symbol(), expr_alloc_two(), expr_copy(), expr_trans_compare(), expr::right, symbol_mod, symbol_no, symbol_yes, and expr::type.

Referenced by expr_trans_compare(), and menu_finalize().

Here is the call graph for this function:

struct expr* expr_transform ( struct expr e  ) 

Definition at line 626 of file expr.c.

References E_AND, E_CHOICE, E_EQUAL, E_NOT, E_OR, E_SYMBOL, E_UNEQUAL, expr_data::expr, expr_alloc_one(), expr_alloc_symbol(), expr_transform(), expr::right, S_BOOLEAN, expr_data::sym, symbol_mod, symbol_no, symbol_yes, and expr::type.

Referenced by expr_eliminate_dups2(), expr_transform(), and menu_finalize().

Here is the call graph for this function:

void print_expr ( int  mask,
struct expr e,
int  prevtoken 
)

Definition at line 1077 of file expr.c.

References cdebug, and expr_fprint().

Referenced by expr_eq(), expr_join_and(), and expr_join_or().

Here is the call graph for this function:


Variable Documentation

int trans_count [static]

Definition at line 128 of file expr.c.

Referenced by __expr_eliminate_eq(), expr_eliminate_dups(), expr_eliminate_dups1(), expr_eliminate_dups2(), and expr_eq().


Generated on Tue Feb 2 17:46:18 2010 for RTAI API by  doxygen 1.4.7