diff --git a/src/acpi/aml/dataobj.rs b/src/acpi/aml/dataobj.rs index fa9710d..ba6e0f0 100644 --- a/src/acpi/aml/dataobj.rs +++ b/src/acpi/aml/dataobj.rs @@ -48,7 +48,7 @@ pub fn parse_data_ref_obj(data: &[u8], match parse_super_name(data, ctx) { Ok(res) => match res.val { AmlValue::String(s) => Ok(AmlParseType { - val: AmlValue::ObjectReference(ObjectReference::NamedObj(s)), + val: AmlValue::ObjectReference(ObjectReference::Object(s)), len: res.len }), _ => Ok(res) diff --git a/src/acpi/aml/namedobj.rs b/src/acpi/aml/namedobj.rs index c5431ca..ecd761e 100644 --- a/src/acpi/aml/namedobj.rs +++ b/src/acpi/aml/namedobj.rs @@ -758,7 +758,7 @@ fn parse_connect_field(data: &[u8], } else { let name = parse_name_string(&data[1..], ctx)?; Ok(AmlParseType { - val: AmlValue::ObjectReference(ObjectReference::NamedObj(name.val.get_as_string()?)), + val: AmlValue::Alias(name.val.get_as_string()?), len: name.len + 1 }) } diff --git a/src/acpi/aml/namespace.rs b/src/acpi/aml/namespace.rs index f364347..3dcdb25 100644 --- a/src/acpi/aml/namespace.rs +++ b/src/acpi/aml/namespace.rs @@ -28,8 +28,7 @@ pub enum FieldSelector { pub enum ObjectReference { ArgObj(u8), LocalObj(u8), - NamedObj(String), - Object(Box), + Object(String), Index(Box, Box) } @@ -98,6 +97,7 @@ impl Clone for Accessor { pub enum AmlValue { None, Uninitialized, + Alias(String), Buffer(Vec), BufferField(BufferField), DDBHandle(Vec), diff --git a/src/acpi/aml/namespacemodifier.rs b/src/acpi/aml/namespacemodifier.rs index 57d1b1a..a223f5c 100644 --- a/src/acpi/aml/namespacemodifier.rs +++ b/src/acpi/aml/namespacemodifier.rs @@ -44,7 +44,7 @@ fn parse_alias_op(data: &[u8], let local_scope_string = get_namespace_string(ctx.scope.clone(), source_name.val)?; let local_alias_string = get_namespace_string(ctx.scope.clone(), alias_name.val)?; - ctx.add_to_namespace(local_scope_string, AmlValue::ObjectReference(ObjectReference::NamedObj(local_alias_string)))?; + ctx.add_to_namespace(local_scope_string, AmlValue::Alias(local_alias_string))?; Ok(AmlParseType { val: AmlValue::None, diff --git a/src/acpi/aml/type1opcode.rs b/src/acpi/aml/type1opcode.rs index d5c0f52..9d74a5f 100644 --- a/src/acpi/aml/type1opcode.rs +++ b/src/acpi/aml/type1opcode.rs @@ -151,7 +151,7 @@ fn parse_def_load(data: &[u8], let name = parse_name_string(&data[2..], ctx)?; let ddb_handle_object = parse_super_name(&data[2 + name.len..], ctx)?; - let tbl = ctx.get(AmlValue::ObjectReference(ObjectReference::NamedObj(name.val.get_as_string()?))).get_as_buffer()?; + let tbl = ctx.get(name.val).get_as_buffer()?; let sdt = unsafe { &*(tbl.as_ptr() as *const Sdt) }; if is_aml_table(sdt) { diff --git a/src/acpi/aml/type2opcode.rs b/src/acpi/aml/type2opcode.rs index 665f1b8..c0b1bc8 100644 --- a/src/acpi/aml/type2opcode.rs +++ b/src/acpi/aml/type2opcode.rs @@ -217,7 +217,7 @@ fn parse_package_elements_list(data: &[u8], } else { let d = parse_name_string(&data[current_offset..], ctx)?; AmlParseType { - val: AmlValue::ObjectReference(ObjectReference::NamedObj(d.val.get_as_string()?)), + val: AmlValue::ObjectReference(ObjectReference::Object(d.val.get_as_string()?)), len: d.len } };