Lines Matching refs:sym
44 void menu_add_entry(struct symbol *sym) in menu_add_entry() argument
50 menu->sym = sym; in menu_add_entry()
93 if (e->left.sym == &symbol_mod) in menu_check_dep()
109 struct symbol *sym = current_entry->sym; in menu_set_type() local
111 if (sym->type == type) in menu_set_type()
113 if (sym->type == S_UNKNOWN) { in menu_set_type()
114 sym->type = type; in menu_set_type()
118 sym->name ? sym->name : "<choice>", in menu_set_type()
119 sym_type_name(sym->type), sym_type_name(type)); in menu_set_type()
124 struct property *prop = prop_alloc(type, current_entry->sym); in menu_add_prop()
155 void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep) in menu_add_symbol() argument
157 menu_add_prop(type, NULL, expr_alloc_symbol(sym), dep); in menu_add_symbol()
167 prop->expr = expr_alloc_symbol(current_entry->sym); in menu_add_option()
171 sym_defconfig_list = current_entry->sym; in menu_add_option()
172 else if (sym_defconfig_list != current_entry->sym) in menu_add_option()
181 static int menu_range_valid_sym(struct symbol *sym, struct symbol *sym2) in menu_range_valid_sym() argument
184 (sym2->type == S_UNKNOWN && sym_string_valid(sym, sym2->name)); in menu_range_valid_sym()
187 void sym_check_prop(struct symbol *sym) in sym_check_prop() argument
191 for (prop = sym->prop; prop; prop = prop->next) { in sym_check_prop()
194 if ((sym->type == S_STRING || sym->type == S_INT || sym->type == S_HEX) && in sym_check_prop()
198 " must be a single symbol", sym->name); in sym_check_prop()
202 if (sym->type != S_BOOLEAN && sym->type != S_TRISTATE) in sym_check_prop()
205 "not boolean or tristate", sym->name); in sym_check_prop()
215 if (sym->type != S_INT && sym->type != S_HEX) in sym_check_prop()
218 if (!menu_range_valid_sym(sym, prop->expr->left.sym) || in sym_check_prop()
219 !menu_range_valid_sym(sym, prop->expr->right.sym)) in sym_check_prop()
231 struct symbol *sym; in menu_finalize() local
235 sym = parent->sym; in menu_finalize()
237 if (sym && sym_is_choice(sym)) { in menu_finalize()
238 if (sym->type == S_UNKNOWN) { in menu_finalize()
242 if (menu->sym && menu->sym->type != S_UNKNOWN) { in menu_finalize()
243 menu_set_type(menu->sym->type); in menu_finalize()
251 if (menu->sym && menu->sym->type == S_UNKNOWN) in menu_finalize()
252 menu_set_type(sym->type); in menu_finalize()
254 parentdep = expr_alloc_symbol(sym); in menu_finalize()
265 if (menu->sym) in menu_finalize()
266 prop = menu->sym->prop; in menu_finalize()
275 if (menu->sym && menu->sym->type != S_TRISTATE) in menu_finalize()
281 expr_alloc_and(expr_alloc_symbol(menu->sym), expr_copy(dep))); in menu_finalize()
287 } else if (sym) { in menu_finalize()
294 if (!expr_contains_symbol(dep, sym)) in menu_finalize()
296 if (expr_depends_symbol(dep, sym)) in menu_finalize()
320 if (sym && sym_is_choice(sym) && in menu_finalize()
321 menu->sym && !sym_is_choice_value(menu->sym)) { in menu_finalize()
323 menu->sym->flags |= SYMBOL_CHOICEVAL; in menu_finalize()
326 for (prop = menu->sym->prop; prop; prop = prop->next) { in menu_finalize()
333 prop->menu->parent->sym != sym) in menu_finalize()
342 if (sym->type == S_TRISTATE && menu->sym->type != S_TRISTATE) { in menu_finalize()
343 basedep = expr_alloc_comp(E_EQUAL, sym, &symbol_yes); in menu_finalize()
345 for (prop = menu->sym->prop; prop; prop = prop->next) { in menu_finalize()
352 menu_add_symbol(P_CHOICE, sym, NULL); in menu_finalize()
353 prop = sym_get_choice_prop(sym); in menu_finalize()
357 (*ep)->right.sym = menu->sym; in menu_finalize()
371 if (sym && !(sym->flags & SYMBOL_WARNED)) { in menu_finalize()
372 if (sym->type == S_UNKNOWN) in menu_finalize()
375 if (sym_is_choice(sym) && !parent->prompt) in menu_finalize()
379 sym_check_prop(sym); in menu_finalize()
380 sym->flags |= SYMBOL_WARNED; in menu_finalize()
383 if (sym && !sym_is_optional(sym) && parent->prompt) { in menu_finalize()
384 sym->rev_dep.expr = expr_alloc_or(sym->rev_dep.expr, in menu_finalize()
393 struct symbol *sym; in menu_is_visible() local
398 sym = menu->sym; in menu_is_visible()
399 if (sym) { in menu_is_visible()
400 sym_calc_value(sym); in menu_is_visible()
407 if (!sym || sym_get_tristate_value(menu->sym) == no) in menu_is_visible()
420 else if (menu->sym) in menu_get_prompt()
421 return menu->sym->name; in menu_get_prompt()