Lines Matching refs:expression
356 struct ifsd_expression *expression; in adjust_external_expressions() local
361 TAILQ_FOREACH(expression, &external->expressions, entries) { in adjust_external_expressions()
363 expression, eval); in adjust_external_expressions()
364 expression->truth = !external->prevstatus; in adjust_external_expressions()
471 struct ifsd_expression *expression; in scan_ifstate_single() local
482 TAILQ_FOREACH(expression, in scan_ifstate_single()
484 expression->truth = truth; in scan_ifstate_single()
486 expression, eval); in scan_ifstate_single()
526 struct ifsd_expression *expression; in adjust_expressions() local
529 while ((expression = TAILQ_FIRST(expressions)) != NULL) { in adjust_expressions()
530 TAILQ_REMOVE(expressions, expression, eval); in adjust_expressions()
531 if (expression->depth == depth) { in adjust_expressions()
534 switch (expression->type) { in adjust_expressions()
536 expression->truth = expression->left->truth && in adjust_expressions()
537 expression->right->truth; in adjust_expressions()
540 expression->truth = expression->left->truth || in adjust_expressions()
541 expression->right->truth; in adjust_expressions()
544 expression->truth = !expression->right->truth; in adjust_expressions()
549 if (expression->parent != NULL) { in adjust_expressions()
553 if (expression->parent == te) in adjust_expressions()
557 expression->parent, eval); in adjust_expressions()
560 TAILQ_INSERT_TAIL(&nexpressions, expression, eval); in adjust_expressions()
619 if ((action->act.c.expression != NULL && in do_action()
620 action->act.c.expression->truth) || in do_action()
621 action->act.c.expression == NULL) { in do_action()
706 if (action->act.c.expression != NULL) in remove_action()
707 remove_expression(action->act.c.expression, state); in remove_action()
719 remove_expression(struct ifsd_expression *expression, in remove_expression() argument
722 switch (expression->type) { in remove_expression()
724 TAILQ_REMOVE(&expression->u.ifstate->expressions, expression, in remove_expression()
726 if (--expression->u.ifstate->refcount == 0) { in remove_expression()
728 expression->u.ifstate, entries); in remove_expression()
729 free(expression->u.ifstate); in remove_expression()
733 TAILQ_REMOVE(&expression->u.external->expressions, expression, in remove_expression()
735 if (--expression->u.external->refcount == 0) { in remove_expression()
737 expression->u.external, entries); in remove_expression()
738 free(expression->u.external->command); in remove_expression()
739 event_del(&expression->u.external->ev); in remove_expression()
740 free(expression->u.external); in remove_expression()
744 if (expression->left != NULL) in remove_expression()
745 remove_expression(expression->left, state); in remove_expression()
746 if (expression->right != NULL) in remove_expression()
747 remove_expression(expression->right, state); in remove_expression()
750 free(expression); in remove_expression()