/* * A method call (invocation) -- transfer control */ 
/* A method call (invocation) -- transfer control */  
acpi_ps_next_parse_state (	struct acpi_walk_state          *walk_state,	union acpi_parse_object         *op,	acpi_status                     callback_status){	struct acpi_parse_state         *parser_state = &walk_state->parser_state;	acpi_status                     status = AE_CTRL_PENDING;	ACPI_FUNCTION_TRACE_PTR ("ps_next_parse_state", op);	switch (callback_status) {	case AE_CTRL_TERMINATE:		/*		 * A control method was terminated via a RETURN statement.		 * The walk of this method is complete.		 */		parser_state->aml = parser_state->aml_end;		status = AE_CTRL_TERMINATE;		break;	case AE_CTRL_BREAK:		parser_state->aml = walk_state->aml_last_while;		walk_state->control_state->common.value = FALSE;		status = AE_CTRL_BREAK;		break;	case AE_CTRL_CONTINUE:		parser_state->aml = walk_state->aml_last_while;		status = AE_CTRL_CONTINUE;		break;	case AE_CTRL_PENDING:		parser_state->aml = walk_state->aml_last_while;		break;#if 0	case AE_CTRL_SKIP:		parser_state->aml = parser_state->scope->parse_scope.pkg_end;		status = AE_OK;		break;#endif	case AE_CTRL_TRUE:		/*		 * Predicate of an IF was true, and we are at the matching ELSE.		 * Just close out this package		 */		parser_state->aml = acpi_ps_get_next_package_end (parser_state);		break;	case AE_CTRL_FALSE:		/*		 * Either an IF/WHILE Predicate was false or we encountered a BREAK		 * opcode.  In both cases, we do not execute the rest of the		 * package;  We simply close out the parent (finishing the walk of		 * this branch of the tree) and continue execution at the parent		 * level.		 */		parser_state->aml = parser_state->scope->parse_scope.pkg_end;		/* In the case of a BREAK, just force a predicate (if any) to FALSE */		walk_state->control_state->common.value = FALSE;		status = AE_CTRL_END;		break;	case AE_CTRL_TRANSFER:		/*		 * A method call (invocation) -- transfer control		 */		status = AE_CTRL_TRANSFER;		walk_state->prev_op = op;		walk_state->method_call_op = op;		walk_state->method_call_node = (op->common.value.arg)->common.node;		/* Will return value (if any) be used by the caller? */		walk_state->return_used = acpi_ds_is_result_used (op, walk_state);		break;	default:		status = callback_status;		if ((callback_status & AE_CODE_MASK) == AE_CODE_CONTROL) {			status = AE_OK;		}		break;	}	return_ACPI_STATUS (status);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/44f6c01242da4e162f28d8e1216a8c7a91174605/psparse.c/clean/drivers/acpi/parser/psparse.c