e1 30 scripts/kconfig/expr.c struct expr *expr_alloc_two(enum expr_type type, struct expr *e1, struct expr *e2) e1 34 scripts/kconfig/expr.c e->left.expr = e1; e1 48 scripts/kconfig/expr.c struct expr *expr_alloc_and(struct expr *e1, struct expr *e2) e1 50 scripts/kconfig/expr.c if (!e1) e1 52 scripts/kconfig/expr.c return e2 ? expr_alloc_two(E_AND, e1, e2) : e1; e1 55 scripts/kconfig/expr.c struct expr *expr_alloc_or(struct expr *e1, struct expr *e2) e1 57 scripts/kconfig/expr.c if (!e1) e1 59 scripts/kconfig/expr.c return e2 ? expr_alloc_two(E_OR, e1, e2) : e1; e1 132 scripts/kconfig/expr.c if (e1->type == type) { e1 133 scripts/kconfig/expr.c __expr_eliminate_eq(type, &e1->left.expr, &e2); e1 134 scripts/kconfig/expr.c __expr_eliminate_eq(type, &e1->right.expr, &e2); e1 138 scripts/kconfig/expr.c __expr_eliminate_eq(type, &e1, &e2->left.expr); e1 139 scripts/kconfig/expr.c __expr_eliminate_eq(type, &e1, &e2->right.expr); e1 142 scripts/kconfig/expr.c if (e1->type == E_SYMBOL && e2->type == E_SYMBOL && e1 143 scripts/kconfig/expr.c e1->left.sym == e2->left.sym && e1 144 scripts/kconfig/expr.c (e1->left.sym == &symbol_yes || e1->left.sym == &symbol_no)) e1 146 scripts/kconfig/expr.c if (!expr_eq(e1, e2)) e1 149 scripts/kconfig/expr.c expr_free(e1); expr_free(e2); e1 152 scripts/kconfig/expr.c e1 = expr_alloc_symbol(&symbol_no); e1 156 scripts/kconfig/expr.c e1 = expr_alloc_symbol(&symbol_yes); e1 166 scripts/kconfig/expr.c if (!e1 || !e2) e1 168 scripts/kconfig/expr.c switch (e1->type) { e1 171 scripts/kconfig/expr.c __expr_eliminate_eq(e1->type, ep1, ep2); e1 175 scripts/kconfig/expr.c if (e1->type != e2->type) switch (e2->type) { e1 182 scripts/kconfig/expr.c e1 = expr_eliminate_yn(e1); e1 189 scripts/kconfig/expr.c int expr_eq(struct expr *e1, struct expr *e2) e1 193 scripts/kconfig/expr.c if (e1->type != e2->type) e1 195 scripts/kconfig/expr.c switch (e1->type) { e1 198 scripts/kconfig/expr.c return e1->left.sym == e2->left.sym && e1->right.sym == e2->right.sym; e1 200 scripts/kconfig/expr.c return e1->left.sym == e2->left.sym; e1 202 scripts/kconfig/expr.c return expr_eq(e1->left.expr, e2->left.expr); e1 205 scripts/kconfig/expr.c e1 = expr_copy(e1); e1 208 scripts/kconfig/expr.c expr_eliminate_eq(&e1, &e2); e1 209 scripts/kconfig/expr.c res = (e1->type == E_SYMBOL && e2->type == E_SYMBOL && e1 210 scripts/kconfig/expr.c e1->left.sym == e2->left.sym); e1 211 scripts/kconfig/expr.c expr_free(e1); e1 222 scripts/kconfig/expr.c expr_fprint(e1, stdout); e1 346 scripts/kconfig/expr.c static struct expr *expr_join_or(struct expr *e1, struct expr *e2) e1 351 scripts/kconfig/expr.c if (expr_eq(e1, e2)) e1 352 scripts/kconfig/expr.c return expr_copy(e1); e1 353 scripts/kconfig/expr.c if (e1->type != E_EQUAL && e1->type != E_UNEQUAL && e1->type != E_SYMBOL && e1->type != E_NOT) e1 357 scripts/kconfig/expr.c if (e1->type == E_NOT) { e1 358 scripts/kconfig/expr.c tmp = e1->left.expr; e1 363 scripts/kconfig/expr.c sym1 = e1->left.sym; e1 375 scripts/kconfig/expr.c if (e1->type == E_EQUAL && e2->type == E_EQUAL && e1 376 scripts/kconfig/expr.c ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || e1 377 scripts/kconfig/expr.c (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) { e1 381 scripts/kconfig/expr.c if (e1->type == E_EQUAL && e2->type == E_EQUAL && e1 382 scripts/kconfig/expr.c ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || e1 383 scripts/kconfig/expr.c (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) { e1 387 scripts/kconfig/expr.c if (e1->type == E_EQUAL && e2->type == E_EQUAL && e1 388 scripts/kconfig/expr.c ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || e1 389 scripts/kconfig/expr.c (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) { e1 395 scripts/kconfig/expr.c if ((e1->type == E_NOT && e1->left.expr->type == E_SYMBOL && e2->type == E_SYMBOL) || e1 396 scripts/kconfig/expr.c (e2->type == E_NOT && e2->left.expr->type == E_SYMBOL && e1->type == E_SYMBOL)) e1 402 scripts/kconfig/expr.c expr_fprint(e1, stdout); e1 410 scripts/kconfig/expr.c static struct expr *expr_join_and(struct expr *e1, struct expr *e2) e1 415 scripts/kconfig/expr.c if (expr_eq(e1, e2)) e1 416 scripts/kconfig/expr.c return expr_copy(e1); e1 417 scripts/kconfig/expr.c if (e1->type != E_EQUAL && e1->type != E_UNEQUAL && e1->type != E_SYMBOL && e1->type != E_NOT) e1 421 scripts/kconfig/expr.c if (e1->type == E_NOT) { e1 422 scripts/kconfig/expr.c tmp = e1->left.expr; e1 427 scripts/kconfig/expr.c sym1 = e1->left.sym; e1 439 scripts/kconfig/expr.c if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) || e1 440 scripts/kconfig/expr.c (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes)) e1 444 scripts/kconfig/expr.c if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_no) || e1 445 scripts/kconfig/expr.c (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_no)) e1 449 scripts/kconfig/expr.c if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_mod) || e1 450 scripts/kconfig/expr.c (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_mod)) e1 455 scripts/kconfig/expr.c if (e1->type == E_EQUAL && e2->type == E_UNEQUAL) { e1 457 scripts/kconfig/expr.c sym2 = e1->right.sym; e1 462 scripts/kconfig/expr.c if (e1->type == E_UNEQUAL && e2->type == E_EQUAL) { e1 465 scripts/kconfig/expr.c if ((e1->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) e1 466 scripts/kconfig/expr.c return sym2 != e1->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) e1 469 scripts/kconfig/expr.c if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && e1 470 scripts/kconfig/expr.c ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || e1 471 scripts/kconfig/expr.c (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) e1 475 scripts/kconfig/expr.c if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && e1 476 scripts/kconfig/expr.c ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || e1 477 scripts/kconfig/expr.c (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) e1 481 scripts/kconfig/expr.c if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && e1 482 scripts/kconfig/expr.c ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || e1 483 scripts/kconfig/expr.c (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) e1 487 scripts/kconfig/expr.c if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) || e1 488 scripts/kconfig/expr.c (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_mod) || e1 489 scripts/kconfig/expr.c (e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_yes) || e1 490 scripts/kconfig/expr.c (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_yes)) e1 496 scripts/kconfig/expr.c expr_fprint(e1, stdout); e1 510 scripts/kconfig/expr.c if (e1->type == type) { e1 511 scripts/kconfig/expr.c expr_eliminate_dups1(type, &e1->left.expr, &e2); e1 512 scripts/kconfig/expr.c expr_eliminate_dups1(type, &e1->right.expr, &e2); e1 516 scripts/kconfig/expr.c expr_eliminate_dups1(type, &e1, &e2->left.expr); e1 517 scripts/kconfig/expr.c expr_eliminate_dups1(type, &e1, &e2->right.expr); e1 520 scripts/kconfig/expr.c if (e1 == e2) e1 523 scripts/kconfig/expr.c switch (e1->type) { e1 525 scripts/kconfig/expr.c expr_eliminate_dups1(e1->type, &e1, &e1); e1 532 scripts/kconfig/expr.c tmp = expr_join_or(e1, e2); e1 534 scripts/kconfig/expr.c expr_free(e1); expr_free(e2); e1 535 scripts/kconfig/expr.c e1 = expr_alloc_symbol(&symbol_no); e1 541 scripts/kconfig/expr.c tmp = expr_join_and(e1, e2); e1 543 scripts/kconfig/expr.c expr_free(e1); expr_free(e2); e1 544 scripts/kconfig/expr.c e1 = expr_alloc_symbol(&symbol_yes); e1 562 scripts/kconfig/expr.c if (e1->type == type) { e1 563 scripts/kconfig/expr.c expr_eliminate_dups2(type, &e1->left.expr, &e2); e1 564 scripts/kconfig/expr.c expr_eliminate_dups2(type, &e1->right.expr, &e2); e1 568 scripts/kconfig/expr.c expr_eliminate_dups2(type, &e1, &e2->left.expr); e1 569 scripts/kconfig/expr.c expr_eliminate_dups2(type, &e1, &e2->right.expr); e1 571 scripts/kconfig/expr.c if (e1 == e2) e1 574 scripts/kconfig/expr.c switch (e1->type) { e1 576 scripts/kconfig/expr.c expr_eliminate_dups2(e1->type, &e1, &e1); e1 578 scripts/kconfig/expr.c tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1))); e1 582 scripts/kconfig/expr.c expr_free(e1); e1 583 scripts/kconfig/expr.c e1 = expr_alloc_symbol(&symbol_no); e1 591 scripts/kconfig/expr.c expr_eliminate_dups2(e1->type, &e1, &e1); e1 593 scripts/kconfig/expr.c tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1))); e1 597 scripts/kconfig/expr.c expr_free(e1); e1 598 scripts/kconfig/expr.c e1 = expr_alloc_symbol(&symbol_yes); e1 852 scripts/kconfig/expr.c if (e1->type == type) { e1 853 scripts/kconfig/expr.c expr_extract_eq(type, ep, &e1->left.expr, &e2); e1 854 scripts/kconfig/expr.c expr_extract_eq(type, ep, &e1->right.expr, &e2); e1 862 scripts/kconfig/expr.c if (expr_eq(e1, e2)) { e1 863 scripts/kconfig/expr.c *ep = *ep ? expr_alloc_two(type, *ep, e1) : e1; e1 866 scripts/kconfig/expr.c e1 = expr_alloc_symbol(&symbol_yes); e1 869 scripts/kconfig/expr.c e1 = expr_alloc_symbol(&symbol_no); e1 879 scripts/kconfig/expr.c struct expr *e1, *e2; e1 889 scripts/kconfig/expr.c e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym); e1 892 scripts/kconfig/expr.c e = expr_alloc_two(E_AND, e1, e2); e1 894 scripts/kconfig/expr.c e = expr_alloc_two(E_OR, e1, e2); e1 899 scripts/kconfig/expr.c e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym); e1 902 scripts/kconfig/expr.c e = expr_alloc_two(E_OR, e1, e2); e1 904 scripts/kconfig/expr.c e = expr_alloc_two(E_AND, e1, e2); e1 1028 scripts/kconfig/expr.c struct expr *expr_simplify_unmet_dep(struct expr *e1, struct expr *e2) e1 1032 scripts/kconfig/expr.c switch (e1->type) { e1 1035 scripts/kconfig/expr.c expr_simplify_unmet_dep(e1->left.expr, e2), e1 1036 scripts/kconfig/expr.c expr_simplify_unmet_dep(e1->right.expr, e2)); e1 1039 scripts/kconfig/expr.c e = expr_alloc_and(expr_copy(e1), expr_copy(e2)); e1 1041 scripts/kconfig/expr.c ret = (!expr_eq(e, e1)) ? e1 : NULL; e1 1046 scripts/kconfig/expr.c ret = e1; e1 202 scripts/kconfig/expr.h struct expr *expr_alloc_two(enum expr_type type, struct expr *e1, struct expr *e2); e1 204 scripts/kconfig/expr.h struct expr *expr_alloc_and(struct expr *e1, struct expr *e2); e1 205 scripts/kconfig/expr.h struct expr *expr_alloc_or(struct expr *e1, struct expr *e2); e1 208 scripts/kconfig/expr.h int expr_eq(struct expr *e1, struct expr *e2); e1 221 scripts/kconfig/expr.h struct expr *expr_simplify_unmet_dep(struct expr *e1, struct expr *e2);