/* Ensure we have a Target that can be stored to */
switch (target_type) { case ACPI_TYPE_BUFFER_FIELD: case ACPI_TYPE_LOCAL_REGION_FIELD: case ACPI_TYPE_LOCAL_BANK_FIELD: case ACPI_TYPE_LOCAL_INDEX_FIELD: /* *ThesecasesallrequireonlyIntegersorvaluesthat *canbeconvertedtoIntegers(StringsorBuffers)
*/ case ACPI_TYPE_INTEGER: case ACPI_TYPE_STRING: case ACPI_TYPE_BUFFER: /* *StoresintoaField/RegionorintoaInteger/Buffer/String *areallessentiallythesame.Thiscasehandlesthe *"interchangeable"typesInteger,String,andBuffer.
*/ if (source_desc->common.type == ACPI_TYPE_LOCAL_REFERENCE) {
/* Resolve a reference object first */
status =
acpi_ex_resolve_to_value(source_desc_ptr,
walk_state); if (ACPI_FAILURE(status)) { break;
}
}
/* For copy_object, no further validation necessary */
if (walk_state->opcode == AML_COPY_OBJECT_OP) { break;
}
/* Conversion successful but still not a valid type */
ACPI_ERROR((AE_INFO, "Cannot assign type [%s] to [%s] (must be type Int/Str/Buf)",
acpi_ut_get_object_type_name(source_desc),
acpi_ut_get_type_name(target_type)));
status = AE_AML_OPERAND_TYPE;
} break;
case ACPI_TYPE_LOCAL_ALIAS: case ACPI_TYPE_LOCAL_METHOD_ALIAS: /* *Allaliasesshouldhavebeenresolvedearlier,duringthe *operandresolutionphase.
*/
ACPI_ERROR((AE_INFO, "Store into an unresolved Alias object"));
status = AE_AML_INTERNAL; break;
case ACPI_TYPE_PACKAGE: default: /* *AllothertypesthanAliasandthevariousFieldscomehere, *includingtheuntypedcase-ACPI_TYPE_ANY.
*/ break;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.