From 8a5ec3a26bcabe80761acd7311ecdf8ba1f3a72a Mon Sep 17 00:00:00 2001 From: Connor Wood Date: Tue, 25 Jul 2017 11:37:49 +0100 Subject: [PATCH] Implemented SizeOf --- src/acpi/aml/type2opcode.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/acpi/aml/type2opcode.rs b/src/acpi/aml/type2opcode.rs index 1d235d4..665f1b8 100644 --- a/src/acpi/aml/type2opcode.rs +++ b/src/acpi/aml/type2opcode.rs @@ -782,13 +782,20 @@ fn parse_def_size_of(data: &[u8], }) } - // TODO: Perform the computation parser_opcode!(data, 0x87); let name = parse_super_name(&data[1..], ctx)?; + let obj = ctx.get(name.val); + + let res = match obj { + AmlValue::Buffer(ref v) => v.len(), + AmlValue::String(ref s) => s.len(), + AmlValue::Package(ref p) => p.len(), + _ => return Err(AmlError::AmlValueError) + }; Ok(AmlParseType { - val: AmlValue::Uninitialized, + val: AmlValue::Integer(res as u64), len: 1 + name.len }) }