From cd67aabd5aa1a16f1468c1f97eaf776425deb60a Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Sun, 18 Jun 2017 20:05:19 -0600 Subject: [PATCH] Switch collections::boxed for alloc::boxed --- src/acpi/aml/mod.rs | 6 ++--- src/acpi/aml/namedobj.rs | 40 +++++++++++++++---------------- src/acpi/aml/namespace.rs | 22 ++++++++--------- src/acpi/aml/namespacemodifier.rs | 12 +++++----- src/acpi/aml/termlist.rs | 6 ++--- src/acpi/aml/type1opcode.rs | 12 +++++----- src/acpi/aml/type2opcode.rs | 40 +++++++++++++++---------------- 7 files changed, 69 insertions(+), 69 deletions(-) diff --git a/src/acpi/aml/mod.rs b/src/acpi/aml/mod.rs index 3d35395..296317d 100644 --- a/src/acpi/aml/mod.rs +++ b/src/acpi/aml/mod.rs @@ -1,9 +1,9 @@ //! # AML //! Code to parse and execute AML tables -use collections::vec::Vec; +use alloc::boxed::Box; use collections::string::String; -use collections::boxed::Box; +use collections::vec::Vec; use core::fmt::Debug; use core::str::FromStr; @@ -58,7 +58,7 @@ pub fn get_namespace_string(current: String, modifier: String) -> String { pub fn parse_aml_table(sdt: &'static Sdt) -> Result { let data = sdt.data(); - + let term_list = match parse_term_list(data) { Ok(res) => res, Err(AmlInternalError::AmlParseError(s)) => return Err(AmlError::AmlParseError(s)), diff --git a/src/acpi/aml/namedobj.rs b/src/acpi/aml/namedobj.rs index 67c2e32..26cca7b 100644 --- a/src/acpi/aml/namedobj.rs +++ b/src/acpi/aml/namedobj.rs @@ -1,6 +1,6 @@ -use collections::vec::Vec; +use alloc::boxed::Box; use collections::string::String; -use collections::boxed::Box; +use collections::vec::Vec; use super::{AmlInternalError, AmlExecutable, AmlValue, AmlNamespace, AmlNamespaceContents, get_namespace_string}; use super::namestring::{parse_name_string, parse_name_seg}; @@ -129,7 +129,7 @@ impl AmlExecutable for NamedObj { Some(r) => r, _ => return None }; - + namespace.push_to(local_scope_string, AmlNamespaceContents::OpRegion { region: *region, offset: resolved_offset, @@ -138,7 +138,7 @@ impl AmlExecutable for NamedObj { }, NamedObj::DefField { ref name, ref flags, ref field_list } => { let mut offset: usize = 0; - + for f in field_list { match *f { FieldElement::ReservedField { length } => offset += length, @@ -165,7 +165,7 @@ impl AmlExecutable for NamedObj { }, _ => () } - + None } } @@ -313,7 +313,7 @@ fn parse_def_bank_field(data: &[u8]) -> Result<(NamedObj, usize), AmlInternalErr _ => return Err(AmlInternalError::AmlParseError("BankField - invalid update rule")) } }; - + let field_list = match parse_field_list( &data[3 + pkg_length_len + region_name_len + bank_name_len + bank_value_len .. 2 + pkg_length]) { @@ -322,7 +322,7 @@ fn parse_def_bank_field(data: &[u8]) -> Result<(NamedObj, usize), AmlInternalErr return Ok((NamedObj::DeferredLoad(data[0 .. 2 + pkg_length].to_vec()), 2 + pkg_length)), Err(e) => return Err(e) }; - + Ok((NamedObj::DefBankField {region_name, bank_name, bank_value, flags, field_list}, 2 + pkg_length)) } @@ -439,7 +439,7 @@ fn parse_def_device(data: &[u8]) -> Result<(NamedObj, usize), AmlInternalError> fn parse_def_op_region(data: &[u8]) -> Result<(NamedObj, usize), AmlInternalError> { parser_opcode_extended!(data, 0x80); - + let (name, name_len) = parse_name_string(&data[2..])?; let region = match data[2 + name_len] { 0x00 => RegionSpace::SystemMemory, @@ -455,7 +455,7 @@ fn parse_def_op_region(data: &[u8]) -> Result<(NamedObj, usize), AmlInternalErro 0x80 ... 0xFF => RegionSpace::UserDefined(data[2 + name_len]), _ => return Err(AmlInternalError::AmlParseError("OpRegion - invalid region")) }; - + let (offset, offset_len) = parse_term_arg(&data[3 + name_len..])?; let (len, len_len) = parse_term_arg(&data[3 + name_len + offset_len..])?; @@ -464,7 +464,7 @@ fn parse_def_op_region(data: &[u8]) -> Result<(NamedObj, usize), AmlInternalErro fn parse_def_field(data: &[u8]) -> Result<(NamedObj, usize), AmlInternalError> { parser_opcode_extended!(data, 0x81); - + let (pkg_length, pkg_length_len) = parse_pkg_length(&data[2..])?; let (name, name_len) = match parse_name_string(&data[2 + pkg_length_len .. 2 + pkg_length]) { Ok(p) => p, @@ -492,7 +492,7 @@ fn parse_def_field(data: &[u8]) -> Result<(NamedObj, usize), AmlInternalError> { _ => return Err(AmlInternalError::AmlParseError("Field - Invalid update rule")) } }; - + let field_list = match parse_field_list(&data[3 + pkg_length_len + name_len .. 2 + pkg_length]) { Ok(p) => p, Err(AmlInternalError::AmlDeferredLoad) => @@ -522,7 +522,7 @@ fn parse_def_index_field(data: &[u8]) -> Result<(NamedObj, usize), AmlInternalEr return Ok((NamedObj::DeferredLoad(data[0 .. 2 + pkg_length].to_vec()), 2 + pkg_length)), Err(e) => return Err(e) }; - + let flags_raw = data[2 + pkg_length_len + idx_name_len + data_name_len]; let flags = FieldFlags { access_type: match flags_raw & 0x0F { @@ -542,7 +542,7 @@ fn parse_def_index_field(data: &[u8]) -> Result<(NamedObj, usize), AmlInternalEr _ => return Err(AmlInternalError::AmlParseError("IndexField - Invalid update rule")) } }; - + let field_list = match parse_field_list( &data[3 + pkg_length_len + idx_name_len + data_name_len .. 2 + pkg_length]) { Ok(p) => p, @@ -565,7 +565,7 @@ fn parse_field_list(data: &[u8]) -> Result, AmlInternalError> return Err(AmlInternalError::AmlParseError("FieldList - no valid field")), Err(e) => return Err(e) }; - + terms.push(res); current_offset += len; } @@ -598,14 +598,14 @@ fn parse_named_field(data: &[u8]) -> Result<(FieldElement, usize), AmlInternalEr fn parse_reserved_field(data: &[u8]) -> Result<(FieldElement, usize), AmlInternalError> { parser_opcode!(data, 0x00); - + let (length, length_len) = parse_pkg_length(&data[1..])?; Ok((FieldElement::ReservedField {length}, 1 + length_len)) } fn parse_access_field(data: &[u8]) -> Result<(FieldElement, usize), AmlInternalError> { parser_opcode!(data, 0x01, 0x03); - + let flags_raw = data[1]; let access_type = match flags_raw & 0x0F { 0 => AccessType::AnyAcc, @@ -647,7 +647,7 @@ fn parse_access_field(data: &[u8]) -> Result<(FieldElement, usize), AmlInternalE fn parse_connect_field(data: &[u8]) -> Result<(FieldElement, usize), AmlInternalError> { parser_opcode!(data, 0x02); - + match parse_def_buffer(&data[1..]) { Ok((buf, buf_len)) => return Ok((FieldElement::ConnectFieldBufferData(buf), buf_len + 1)), Err(AmlInternalError::AmlInvalidOpCode) => (), @@ -718,7 +718,7 @@ fn parse_def_power_res(data: &[u8]) -> Result<(NamedObj, usize), AmlInternalErro return Ok((NamedObj::DeferredLoad(data[0 .. 2 + pkg_len].to_vec()), 2 + pkg_len)), Err(e) => return Err(e) }; - + let system_level = data[2 + pkg_len_len + name_len]; let resource_order: u16 = (data[3 + pkg_len_len + name_len] as u16) + ((data[4 + pkg_len_len + name_len] as u16) << 8); @@ -743,7 +743,7 @@ fn parse_def_processor(data: &[u8]) -> Result<(NamedObj, usize), AmlInternalErro return Ok((NamedObj::DeferredLoad(data[0 .. 2 + pkg_len].to_vec()), 2 + pkg_len)), Err(e) => return Err(e) }; - + let proc_id = data[2 + pkg_len_len + name_len]; let p_blk_addr: u32 = (data[3 + pkg_len_len + name_len] as u32) + ((data[4 + pkg_len_len + name_len] as u32) << 8) + @@ -771,7 +771,7 @@ fn parse_def_thermal_zone(data: &[u8]) -> Result<(NamedObj, usize), AmlInternalE return Ok((NamedObj::DeferredLoad(data[0 .. 2 + pkg_len].to_vec()), 2 + pkg_len)), Err(e) => return Err(e) }; - + let obj_list = match parse_object_list(&data[2 + pkg_len_len + name_len .. 2 + pkg_len]) { Ok(p) => p, Err(AmlInternalError::AmlDeferredLoad) => diff --git a/src/acpi/aml/namespace.rs b/src/acpi/aml/namespace.rs index 8a0c6f9..dc3c1c8 100644 --- a/src/acpi/aml/namespace.rs +++ b/src/acpi/aml/namespace.rs @@ -1,6 +1,6 @@ +use alloc::boxed::Box; use collections::string::String; use collections::vec::Vec; -use collections::boxed::Box; use core::str::FromStr; @@ -82,7 +82,7 @@ impl AmlNamespace { let scope_string = String::from_str(scope_str).unwrap(); self.find(scope_string) } - + pub fn find(&self, scope_string: String) -> Option { if scope_string.len() == 0 { match self.contents { @@ -90,9 +90,9 @@ impl AmlNamespace { _ => return None } } - + let mut scope_string = scope_string.clone(); - + if scope_string.starts_with("\\") { if self.name != "\\" { return None; @@ -104,7 +104,7 @@ impl AmlNamespace { if scope_string.starts_with(".") { scope_string.remove(0); } - + if scope_string.len() == 0 { match self.contents { AmlNamespaceContents::Value(ref v) => return Some(v.clone()), @@ -146,7 +146,7 @@ impl AmlNamespace { None } - + pub fn push(&mut self, val: AmlNamespaceContents) { match self.contents { AmlNamespaceContents::Namespace(ref mut v) => v.push(val), @@ -158,9 +158,9 @@ impl AmlNamespace { if scope_string.len() == 0 { return; } - + let mut scope_string = scope_string.clone(); - + if scope_string.starts_with("\\") { if self.name != "\\" { return; @@ -173,7 +173,7 @@ impl AmlNamespace { if scope_string.starts_with(".") { scope_string.remove(0); } - + if scope_string.len() == 0 { return; } @@ -207,12 +207,12 @@ impl AmlNamespace { current_index += 1; } - + let mut next = AmlNamespace { name: current, contents: contents }; - + namespace.push(AmlNamespaceContents::SubNamespace(Box::new(next))); } _ => () // TODO: Error this diff --git a/src/acpi/aml/namespacemodifier.rs b/src/acpi/aml/namespacemodifier.rs index a49e2bb..217347a 100644 --- a/src/acpi/aml/namespacemodifier.rs +++ b/src/acpi/aml/namespacemodifier.rs @@ -1,6 +1,6 @@ -use collections::vec::Vec; +use alloc::boxed::Box; use collections::string::String; -use collections::boxed::Box; +use collections::vec::Vec; use super::{AmlInternalError, AmlExecutable, AmlValue, AmlNamespace, AmlNamespaceContents, get_namespace_string}; use super::pkglength::parse_pkg_length; @@ -63,10 +63,10 @@ pub fn parse_namespace_modifier(data: &[u8]) -> Result<(NamespaceModifier, usize fn parse_alias_op(data: &[u8]) -> Result<(NamespaceModifier, usize), AmlInternalError> { parser_opcode!(data, 0x06); - + let (source_name, source_name_len) = parse_name_string(&data[1..])?; let (alias_name, alias_name_len) = parse_name_string(&data[1 + source_name_len..])?; - + Ok((NamespaceModifier::Alias {source_name, alias_name}, 1 + source_name_len + alias_name_len)) } @@ -75,13 +75,13 @@ fn parse_name_op(data: &[u8]) -> Result<(NamespaceModifier, usize), AmlInternalE let (name, name_len) = parse_name_string(&data[1..])?; let (data_ref_obj, data_ref_obj_len) = parse_data_ref_obj(&data[1 + name_len..])?; - + Ok((NamespaceModifier::Name {name, data_ref_obj}, 1 + name_len + data_ref_obj_len)) } fn parse_scope_op(data: &[u8]) -> Result<(NamespaceModifier, usize), AmlInternalError> { parser_opcode!(data, 0x10); - + let (pkg_length, pkg_length_len) = parse_pkg_length(&data[1..])?; let (name, name_len) = match parse_name_string(&data[1 + pkg_length_len..]) { Ok(p) => p, diff --git a/src/acpi/aml/termlist.rs b/src/acpi/aml/termlist.rs index 014bddb..b236584 100644 --- a/src/acpi/aml/termlist.rs +++ b/src/acpi/aml/termlist.rs @@ -1,6 +1,6 @@ -use collections::vec::Vec; -use collections::boxed::Box; +use alloc::boxed::Box; use collections::string::String; +use collections::vec::Vec; use super::{AmlInternalError, AmlExecutable, AmlValue, AmlNamespace, get_namespace_string}; use super::namespacemodifier::{parse_namespace_modifier, NamespaceModifier}; @@ -103,7 +103,7 @@ pub fn parse_object_list(data: &[u8]) -> Result, AmlInternalError> { terms.push(res); current_offset += len; } - + Ok(terms) } diff --git a/src/acpi/aml/type1opcode.rs b/src/acpi/aml/type1opcode.rs index c6cc5ca..103e542 100644 --- a/src/acpi/aml/type1opcode.rs +++ b/src/acpi/aml/type1opcode.rs @@ -1,6 +1,6 @@ -use collections::vec::Vec; +use alloc::boxed::Box; use collections::string::String; -use collections::boxed::Box; +use collections::vec::Vec; use super::{AmlInternalError, AmlExecutable, AmlValue, AmlNamespace}; use super::pkglength::parse_pkg_length; @@ -195,18 +195,18 @@ fn parse_def_if_else(data: &[u8]) -> Result<(Type1OpCode, usize), AmlInternalErr Ok((predicate, predicate_len)) => { match parse_term_list(&data[1 + pkg_length_len + predicate_len .. 1 + pkg_length]) { Ok(if_block) => IfBlock::If {predicate, if_block}, - Err(AmlInternalError::AmlDeferredLoad) => + Err(AmlInternalError::AmlDeferredLoad) => IfBlock::DeferredLoad(data[0 .. 1 + pkg_length].to_vec()), Err(e) => return Err(e) } }, - Err(AmlInternalError::AmlDeferredLoad) => + Err(AmlInternalError::AmlDeferredLoad) => IfBlock::DeferredLoad(data[0 .. 1 + pkg_length].to_vec()), Err(e) => return Err(e) }; - + let (else_block, else_block_len) = parse_def_else(&data[1 + pkg_length..])?; - + return Ok((Type1OpCode::DefIfElse {if_block, else_block}, pkg_length + else_block_len + 1)); } diff --git a/src/acpi/aml/type2opcode.rs b/src/acpi/aml/type2opcode.rs index 50d1ff2..744dbef 100644 --- a/src/acpi/aml/type2opcode.rs +++ b/src/acpi/aml/type2opcode.rs @@ -1,6 +1,6 @@ -use collections::vec::Vec; +use alloc::boxed::Box; use collections::string::String; -use collections::boxed::Box; +use collections::vec::Vec; use super::{AmlInternalError, AmlExecutable, AmlValue, AmlNamespace}; use super::pkglength::parse_pkg_length; @@ -277,7 +277,7 @@ impl AmlExecutable for DefPackage { match *self { DefPackage::Package { ref num_elements, ref elements } => { let mut values: Vec = vec!(); - + for element in elements { match *element { PackageElement::DataRefObj(ref d) => { @@ -353,7 +353,7 @@ pub fn parse_type2_opcode(data: &[u8]) -> Result<(Type2OpCode, usize), AmlIntern parser_wrap!(Type2OpCode::DefIndex, parse_def_index), parser_wrap!(Type2OpCode::MethodInvocation, parse_method_invocation) }; - + Err(AmlInternalError::AmlInvalidOpCode) } @@ -365,7 +365,7 @@ pub fn parse_type6_opcode(data: &[u8]) -> Result<(Type6OpCode, usize), AmlIntern parser_wrap!(Type6OpCode::DefIndex, parse_def_index), parser_wrap!(Type6OpCode::MethodInvocation, parse_method_invocation) }; - + Err(AmlInternalError::AmlInvalidOpCode) } @@ -387,7 +387,7 @@ pub fn parse_def_package(data: &[u8]) -> Result<(DefPackage, usize), AmlInternal let (pkg_length, pkg_length_len) = parse_pkg_length(&data[1..])?; let num_elements = data[1 + pkg_length_len]; - + let elements = match parse_package_elements_list(&data[2 + pkg_length_len .. 1 + pkg_length]) { Ok(e) => e, Err(AmlInternalError::AmlDeferredLoad) => @@ -415,18 +415,18 @@ pub fn parse_def_var_package(data: &[u8]) -> Result<(DefVarPackage, usize), AmlI Ok((DefVarPackage::Package {num_elements, elements}, 1 + pkg_length)) } - + fn parse_package_elements_list(data: &[u8]) -> Result, AmlInternalError> { let mut current_offset: usize = 0; let mut elements: Vec = vec!(); - + while current_offset < data.len() { match parse_data_ref_obj(&data[current_offset ..]) { Ok((data_ref_obj, data_ref_obj_len)) => { elements.push(PackageElement::DataRefObj(data_ref_obj)); current_offset += data_ref_obj_len; }, - Err(AmlInternalError::AmlInvalidOpCode) => + Err(AmlInternalError::AmlInvalidOpCode) => match parse_name_string(&data[current_offset ..]) { Ok((name_string, name_string_len)) => { elements.push(PackageElement::NameString(name_string)); @@ -440,10 +440,10 @@ fn parse_package_elements_list(data: &[u8]) -> Result, AmlIn Ok(elements) } - + pub fn parse_def_buffer(data: &[u8]) -> Result<(DefBuffer, usize), AmlInternalError> { parser_opcode!(data, 0x11); - + let (pkg_length, pkg_length_len) = parse_pkg_length(&data[1..])?; let (buffer_size, buffer_size_len) = match parse_term_arg(&data[1 + pkg_length_len..]) { Ok(s) => s, @@ -453,7 +453,7 @@ pub fn parse_def_buffer(data: &[u8]) -> Result<(DefBuffer, usize), AmlInternalEr Err(e) => return Err(e), }; let byte_list = data[1 + pkg_length_len + buffer_size_len .. 1 + pkg_length].to_vec(); - + Ok((DefBuffer::Buffer {buffer_size, byte_list}, pkg_length + 1)) } @@ -473,24 +473,24 @@ fn parse_def_deref_of(data: &[u8]) -> Result<(TermArg, usize), AmlInternalError> fn parse_def_acquire(data: &[u8]) -> Result<(Type2OpCode, usize), AmlInternalError> { parser_opcode_extended!(data, 0x23); - + let (object, object_len) = parse_super_name(&data[2..])?; let timeout = (data[2 + object_len] as u16) + ((data[3 + object_len] as u16) << 8); - + Ok((Type2OpCode::DefAcquire {object, timeout}, object_len + 4)) } fn parse_def_increment(data: &[u8]) -> Result<(Type2OpCode, usize), AmlInternalError> { parser_opcode!(data, 0x75); - + let (obj, obj_len) = parse_super_name(&data[1..])?; Ok((Type2OpCode::DefIncrement(obj), obj_len + 1)) } fn parse_def_index(data: &[u8]) -> Result<(DefIndex, usize), AmlInternalError> { parser_opcode!(data, 0x88); - + let (obj, obj_len) = parse_term_arg(&data[1..])?; let (idx, idx_len) = parse_term_arg(&data[1 + obj_len..])?; let (target, target_len) = parse_target(&data[1 + obj_len + idx_len..])?; @@ -500,7 +500,7 @@ fn parse_def_index(data: &[u8]) -> Result<(DefIndex, usize), AmlInternalError> { fn parse_def_land(data: &[u8]) -> Result<(Type2OpCode, usize), AmlInternalError> { parser_opcode!(data, 0x90); - + let (lhs, lhs_len) = parse_term_arg(&data[1..])?; let (rhs, rhs_len) = parse_term_arg(&data[1 + lhs_len..])?; @@ -509,7 +509,7 @@ fn parse_def_land(data: &[u8]) -> Result<(Type2OpCode, usize), AmlInternalError> fn parse_def_lequal(data: &[u8]) -> Result<(Type2OpCode, usize), AmlInternalError> { parser_opcode!(data, 0x93); - + let (lhs, lhs_len) = parse_term_arg(&data[1..])?; let (rhs, rhs_len) = parse_term_arg(&data[1 + lhs_len..])?; @@ -518,7 +518,7 @@ fn parse_def_lequal(data: &[u8]) -> Result<(Type2OpCode, usize), AmlInternalErro fn parse_def_lgreater(data: &[u8]) -> Result<(Type2OpCode, usize), AmlInternalError> { parser_opcode!(data, 0x94); - + let (lhs, lhs_len) = parse_term_arg(&data[1..])?; let (rhs, rhs_len) = parse_term_arg(&data[1 + lhs_len..])?; @@ -664,7 +664,7 @@ fn parse_def_shift_right(data: &[u8]) -> Result<(Type2OpCode, usize), AmlInterna fn parse_def_add(data: &[u8]) -> Result<(Type2OpCode, usize), AmlInternalError> { parser_opcode!(data, 0x72); - + let (lhs, lhs_len) = parse_term_arg(&data[1..])?; let (rhs, rhs_len) = parse_term_arg(&data[1 + lhs_len..])?; let (target, target_len) = parse_target(&data[1 + lhs_len + rhs_len..])?;