Implemented SizeOf

This commit is contained in:
Connor Wood
2017-07-25 11:37:49 +01:00
parent 0652bc8099
commit 8a5ec3a26b

View File

@@ -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
})
}