diff --git a/src/acpi/aml/dataobj.rs b/src/acpi/aml/dataobj.rs index 7bb50d3cc97c55e1b4befc913fe16d412044646a..fa9710dac00178a9670f2802ff0bbf3d8c8d6687 100644 --- a/src/acpi/aml/dataobj.rs +++ b/src/acpi/aml/dataobj.rs @@ -1,6 +1,5 @@ use collections::vec::Vec; use collections::string::String; -use collections::btree_map::BTreeMap; use super::AmlError; use super::parser::{ AmlParseType, ParseResult, AmlExecutionContext, ExecutionState }; diff --git a/src/acpi/aml/mod.rs b/src/acpi/aml/mod.rs index 7e37d087377ca1f54be6018be6a534465cb4415c..d1610317d4be9297b7174f8fec404036c729e693 100644 --- a/src/acpi/aml/mod.rs +++ b/src/acpi/aml/mod.rs @@ -1,11 +1,7 @@ //! # AML //! Code to parse and execute AML tables -use alloc::boxed::Box; use collections::string::String; -use collections::vec::Vec; -use collections::btree_map::BTreeMap; -use core::fmt::Debug; use core::str::FromStr; use super::sdt::Sdt; @@ -24,7 +20,7 @@ mod type1opcode; mod type2opcode; mod parser; -use self::parser::{ ParseResult, AmlExecutionContext }; +use self::parser::AmlExecutionContext; use self::termlist::parse_term_list; pub use self::namespace::AmlValue; diff --git a/src/acpi/aml/namedobj.rs b/src/acpi/aml/namedobj.rs index c7d263602c4b6b7a1f53d4808fb228c081121573..e48330227e851c473bc67a7cb0d2c7ea8140e096 100644 --- a/src/acpi/aml/namedobj.rs +++ b/src/acpi/aml/namedobj.rs @@ -1,15 +1,11 @@ use alloc::boxed::Box; use collections::string::String; -use collections::vec::Vec; -use core::str::FromStr; - -use collections::btree_map::BTreeMap; use super::AmlError; use super::parser::{ AmlParseType, ParseResult, AmlParseTypeGeneric, AmlExecutionContext, ExecutionState }; use super::namespace::{ AmlValue, ObjectReference, FieldSelector, Method, get_namespace_string, Accessor }; use super::namestring::{parse_name_string, parse_name_seg}; -use super::termlist::{parse_term_arg, parse_term_list, parse_object_list}; +use super::termlist::{parse_term_arg, parse_object_list}; use super::pkglength::parse_pkg_length; use super::type2opcode::parse_def_buffer; @@ -159,9 +155,8 @@ fn parse_def_bank_field(data: &[u8], bank_selector: Box::new(bank_value.val) }; - let field_list = parse_field_list( - &data[3 + pkg_length_len + region_name.len + bank_name.len + bank_value.len .. - 2 + pkg_length], ctx, selector, &mut flags)?; + parse_field_list(&data[3 + pkg_length_len + region_name.len + bank_name.len + bank_value.len .. + 2 + pkg_length], ctx, selector, &mut flags)?; Ok(AmlParseType { val: AmlValue::None, @@ -191,7 +186,7 @@ fn parse_def_create_bit_field(data: &[u8], source_buf: Box::new(source_buf.val), index: Box::new(bit_index.val), length: Box::new(AmlValue::IntegerConstant(1)) - }); + })?; Ok(AmlParseType { val: AmlValue::None, @@ -221,7 +216,7 @@ fn parse_def_create_byte_field(data: &[u8], source_buf: Box::new(source_buf.val), index: Box::new(bit_index.val), length: Box::new(AmlValue::IntegerConstant(8)) - }); + })?; Ok(AmlParseType { val: AmlValue::None, @@ -251,7 +246,7 @@ fn parse_def_create_word_field(data: &[u8], source_buf: Box::new(source_buf.val), index: Box::new(bit_index.val), length: Box::new(AmlValue::IntegerConstant(16)) - }); + })?; Ok(AmlParseType { val: AmlValue::None, @@ -311,7 +306,7 @@ fn parse_def_create_qword_field(data: &[u8], source_buf: Box::new(source_buf.val), index: Box::new(bit_index.val), length: Box::new(AmlValue::IntegerConstant(64)) - }); + })?; Ok(AmlParseType { val: AmlValue::None, @@ -342,7 +337,7 @@ fn parse_def_create_field(data: &[u8], source_buf: Box::new(source_buf.val), index: Box::new(bit_index.val), length: Box::new(num_bits.val) - }); + })?; Ok(AmlParseType { val: AmlValue::None, @@ -379,7 +374,7 @@ fn parse_def_data_region(data: &[u8], write: |x, y| () }, accessed_by: None - }); + })?; Ok(AmlParseType { val: AmlValue::None, @@ -402,7 +397,7 @@ fn parse_def_event(data: &[u8], let name = parse_name_string(&data[2..], ctx)?; let local_scope_string = get_namespace_string(ctx.scope.clone(), name.val); - ctx.add_to_namespace(local_scope_string, AmlValue::Event(0)); + ctx.add_to_namespace(local_scope_string, AmlValue::Event(0))?; Ok(AmlParseType { val: AmlValue::None, @@ -431,7 +426,7 @@ fn parse_def_device(data: &[u8], parse_object_list(&data[2 + pkg_length_len + name.len .. 2 + pkg_length], &mut local_ctx)?; - ctx.add_to_namespace(local_scope_string, AmlValue::Device(local_ctx.namespace_delta.clone())); + ctx.add_to_namespace(local_scope_string, AmlValue::Device(local_ctx.namespace_delta.clone()))?; Ok(AmlParseType { val: AmlValue::None, @@ -480,7 +475,7 @@ fn parse_def_op_region(data: &[u8], write: |x, y| () }, accessed_by: None - }); + })?; Ok(AmlParseType { val: AmlValue::None, @@ -525,7 +520,7 @@ fn parse_def_field(data: &[u8], let selector = FieldSelector::Region(name.val.get_as_string()?); - let field_list = parse_field_list(&data[3 + pkg_length_len + name.len .. 2 + pkg_length], ctx, selector, &mut flags)?; + parse_field_list(&data[3 + pkg_length_len + name.len .. 2 + pkg_length], ctx, selector, &mut flags)?; Ok(AmlParseType { val: AmlValue::None, @@ -574,8 +569,8 @@ fn parse_def_index_field(data: &[u8], data_selector: data_name.val.get_as_string()? }; - let field_list = parse_field_list( - &data[3 + pkg_length_len + idx_name.len + data_name.len .. 2 + pkg_length], ctx, selector, &mut flags)?; + parse_field_list(&data[3 + pkg_length_len + idx_name.len + data_name.len .. 2 + pkg_length], + ctx, selector, &mut flags)?; Ok(AmlParseType { val: AmlValue::None, @@ -642,7 +637,7 @@ fn parse_field_element(data: &[u8], flags: flags.clone(), offset: offset.clone(), length: field.val.length - }); + })?; *offset += field.val.length; field.len @@ -681,7 +676,7 @@ fn parse_named_field(data: &[u8], Ok(AmlParseTypeGeneric { val: NamedField { name, length }, - len: 4 + length_len + len: name_seg_len + length_len }) } @@ -796,7 +791,7 @@ fn parse_def_method(data: &[u8], serialized, sync_level, term_list: term_list.to_vec() - })); + }))?; Ok(AmlParseType { val: AmlValue::None, @@ -821,7 +816,7 @@ fn parse_def_mutex(data: &[u8], let sync_level = flags & 0x0F; let local_scope_string = get_namespace_string(ctx.scope.clone(), name.val); - ctx.add_to_namespace(local_scope_string, AmlValue::Mutex((sync_level, None))); + ctx.add_to_namespace(local_scope_string, AmlValue::Mutex((sync_level, None)))?; Ok(AmlParseType { val: AmlValue::None, @@ -858,7 +853,7 @@ fn parse_def_power_res(data: &[u8], system_level, resource_order, obj_list: local_ctx.namespace_delta.clone() - }); + })?; Ok(AmlParseType { val: AmlValue::None, @@ -897,7 +892,7 @@ fn parse_def_processor(data: &[u8], proc_id: proc_id, p_blk: if p_blk_len > 0 { Some(p_blk_addr) } else { None }, obj_list: local_ctx.namespace_delta.clone() - }); + })?; Ok(AmlParseType { val: AmlValue::None, @@ -925,7 +920,7 @@ fn parse_def_thermal_zone(data: &[u8], let mut local_ctx = AmlExecutionContext::new(local_scope_string.clone()); parse_object_list(&data[2 + pkg_len_len + name.len .. 2 + pkg_len], &mut local_ctx)?; - ctx.add_to_namespace(local_scope_string, AmlValue::ThermalZone(local_ctx.namespace_delta.clone())); + ctx.add_to_namespace(local_scope_string, AmlValue::ThermalZone(local_ctx.namespace_delta.clone()))?; Ok(AmlParseType { val: AmlValue::None, diff --git a/src/acpi/aml/namespace.rs b/src/acpi/aml/namespace.rs index 0862e723e4839be8b02c95a210d889cb5642f304..8e9e61b5871ff99fb29191348ee3c97df5aa175e 100644 --- a/src/acpi/aml/namespace.rs +++ b/src/acpi/aml/namespace.rs @@ -1,9 +1,7 @@ use alloc::boxed::Box; use collections::string::String; use collections::vec::Vec; -use collections::btree_map::BTreeMap; -use core::str::FromStr; use core::fmt::{Debug, Formatter, Error}; use super::termlist::parse_term_list; diff --git a/src/acpi/aml/namespacemodifier.rs b/src/acpi/aml/namespacemodifier.rs index 7d081958a8bf4b0b28a2f16c39028694bca92caf..059a93c72837e360c0047ad6b4de27e70ce1482d 100644 --- a/src/acpi/aml/namespacemodifier.rs +++ b/src/acpi/aml/namespacemodifier.rs @@ -1,11 +1,6 @@ -use alloc::boxed::Box; -use collections::string::String; -use collections::vec::Vec; -use collections::btree_map::BTreeMap; - use super::AmlError; -use super::parser::{AmlParseType, ParseResult, AmlParseTypeGeneric, AmlExecutionContext, ExecutionState}; -use super::namespace::{AmlValue, ObjectReference, FieldSelector, get_namespace_string}; +use super::parser::{AmlParseType, ParseResult, AmlExecutionContext, ExecutionState}; +use super::namespace::{AmlValue, ObjectReference, get_namespace_string}; use super::pkglength::parse_pkg_length; use super::namestring::parse_name_string; use super::termlist::parse_term_list; diff --git a/src/acpi/aml/namestring.rs b/src/acpi/aml/namestring.rs index 389e650111f19b5bdbba0f777c0fb9778c923700..8464b6ccf8fbf932c6ea5cf8607637ec4e0f47a9 100644 --- a/src/acpi/aml/namestring.rs +++ b/src/acpi/aml/namestring.rs @@ -1,10 +1,9 @@ use collections::vec::Vec; use collections::string::String; -use collections::btree_map::BTreeMap; use super::AmlError; -use super::parser::{AmlParseType, ParseResult, AmlParseTypeGeneric, AmlExecutionContext, ExecutionState}; -use super::namespace::{AmlValue, ObjectReference, FieldSelector, get_namespace_string}; +use super::parser::{AmlParseType, ParseResult, AmlExecutionContext, ExecutionState}; +use super::namespace::AmlValue; use super::dataobj::{parse_arg_obj, parse_local_obj}; use super::type2opcode::parse_type6_opcode; diff --git a/src/acpi/aml/parser.rs b/src/acpi/aml/parser.rs index a762ebab46408250d79543832e2ed456c81ab8f2..758dd174b4c0ee0566b5b70e1c72d686c90d307c 100644 --- a/src/acpi/aml/parser.rs +++ b/src/acpi/aml/parser.rs @@ -113,7 +113,7 @@ impl AmlExecutionContext { match name { AmlValue::None => (), AmlValue::ObjectReference(r) => match r { - ObjectReference::ArgObj(i) => (), + ObjectReference::ArgObj(_) => (), ObjectReference::LocalObj(i) => self.local_vars[i as usize] = value, _ => () }, diff --git a/src/acpi/aml/termlist.rs b/src/acpi/aml/termlist.rs index 9152f56d44a66ad39a7f671b7c10e580940d72e1..700fa0052a7c71e6623c79a9716d817d52cde3b9 100644 --- a/src/acpi/aml/termlist.rs +++ b/src/acpi/aml/termlist.rs @@ -1,11 +1,8 @@ -use alloc::boxed::Box; -use collections::string::String; use collections::vec::Vec; -use collections::btree_map::BTreeMap; use super::AmlError; -use super::parser::{ AmlParseType, ParseResult, AmlParseTypeGeneric, AmlExecutionContext, ExecutionState }; -use super::namespace::{AmlValue, ObjectReference, FieldSelector, get_namespace_string}; +use super::parser::{ AmlParseType, ParseResult, AmlExecutionContext, ExecutionState }; +use super::namespace::{AmlValue, get_namespace_string}; use super::namespacemodifier::parse_namespace_modifier; use super::namedobj::parse_named_obj; use super::dataobj::{parse_data_obj, parse_arg_obj, parse_local_obj}; diff --git a/src/acpi/aml/type1opcode.rs b/src/acpi/aml/type1opcode.rs index ee9d8cba4eee4466e07f5a54240b81e82f631713..3493935e960de8d55c7ea5553da9d94b768f934b 100644 --- a/src/acpi/aml/type1opcode.rs +++ b/src/acpi/aml/type1opcode.rs @@ -1,11 +1,6 @@ -use alloc::boxed::Box; -use collections::string::String; -use collections::vec::Vec; -use collections::btree_map::BTreeMap; - use super::AmlError; use super::parser::{AmlParseType, ParseResult, AmlExecutionContext, ExecutionState}; -use super::namespace::{AmlValue, ObjectReference}; +use super::namespace::AmlValue; use super::pkglength::parse_pkg_length; use super::termlist::{parse_term_arg, parse_term_list}; use super::namestring::{parse_name_string, parse_super_name}; @@ -248,7 +243,7 @@ fn parse_def_reset(data: &[u8], parser_opcode_extended!(data, 0x26); let object = parse_super_name(&data[2..], ctx)?; - let event = ctx.get(object.val.clone()).get_as_event()?; + ctx.get(object.val.clone()).get_as_event()?; ctx.modify(object.val.clone(), AmlValue::Event(0)); diff --git a/src/acpi/aml/type2opcode.rs b/src/acpi/aml/type2opcode.rs index 49ded057a65b4a5a97e37b38d31ae1da0f3fb300..00924de83b2514058a18a4e8688dd32cd6d7a090 100644 --- a/src/acpi/aml/type2opcode.rs +++ b/src/acpi/aml/type2opcode.rs @@ -1,7 +1,6 @@ use alloc::boxed::Box; use collections::string::String; use collections::vec::Vec; -use collections::btree_map::BTreeMap; use super::AmlError; use super::parser::{AmlParseType, ParseResult, AmlExecutionContext, ExecutionState}; @@ -153,7 +152,7 @@ pub fn parse_def_package(data: &[u8], if elements.len() > numelements { elements = elements[0 .. numelements].to_vec(); } else if numelements > elements.len() { - for i in 0..numelements - elements.len() { + for _ in 0..numelements - elements.len() { elements.push(AmlValue::Uninitialized); } } @@ -187,7 +186,7 @@ pub fn parse_def_var_package(data: &[u8], if elements.len() > numelements { elements = elements[0 .. numelements].to_vec(); } else if numelements > elements.len() { - for i in 0..numelements - elements.len() { + for _ in 0..numelements - elements.len() { elements.push(AmlValue::Uninitialized); } } @@ -365,12 +364,6 @@ fn parse_def_acquire(data: &[u8], } } } - - Ok(AmlParseType { - val: AmlValue::Uninitialized, - len: 4 + obj.len - }) - // This should never run } fn parse_def_increment(data: &[u8], @@ -1056,11 +1049,6 @@ fn parse_def_wait(data: &[u8], } } } - - Ok(AmlParseType { - val: AmlValue::Uninitialized, - len: 2 + obj.len + timeout_obj.len - }) } fn parse_def_cond_ref_of(data: &[u8], @@ -1353,11 +1341,11 @@ fn parse_def_match(data: &[u8], match second_operation { MatchOpcode::MTR => (), - MatchOpcode::MEQ => if val != i { continue }, - MatchOpcode::MLE => if val > i { continue }, - MatchOpcode::MLT => if val >= i { continue }, - MatchOpcode::MGE => if val < i { continue }, - MatchOpcode::MGT => if val <= i { continue } + MatchOpcode::MEQ => if val != j { continue }, + MatchOpcode::MLE => if val > j { continue }, + MatchOpcode::MLT => if val >= j { continue }, + MatchOpcode::MGE => if val < j { continue }, + MatchOpcode::MGT => if val <= j { continue } } return Ok(AmlParseType { @@ -1384,11 +1372,11 @@ fn parse_def_match(data: &[u8], match second_operation { MatchOpcode::MTR => (), - MatchOpcode::MEQ => if val != i { continue }, - MatchOpcode::MLE => if val > i { continue }, - MatchOpcode::MLT => if val >= i { continue }, - MatchOpcode::MGE => if val < i { continue }, - MatchOpcode::MGT => if val <= i { continue } + MatchOpcode::MEQ => if val != j { continue }, + MatchOpcode::MLE => if val > j { continue }, + MatchOpcode::MLT => if val >= j { continue }, + MatchOpcode::MGE => if val < j { continue }, + MatchOpcode::MGT => if val <= j { continue } } return Ok(AmlParseType { @@ -1416,11 +1404,11 @@ fn parse_def_match(data: &[u8], match second_operation { MatchOpcode::MTR => (), - MatchOpcode::MEQ => if val != i { continue }, - MatchOpcode::MLE => if val > i { continue }, - MatchOpcode::MLT => if val >= i { continue }, - MatchOpcode::MGE => if val < i { continue }, - MatchOpcode::MGT => if val <= i { continue } + MatchOpcode::MEQ => if val != j { continue }, + MatchOpcode::MLE => if val > j { continue }, + MatchOpcode::MLT => if val >= j { continue }, + MatchOpcode::MGE => if val < j { continue }, + MatchOpcode::MGT => if val <= j { continue } } return Ok(AmlParseType { diff --git a/src/acpi/mod.rs b/src/acpi/mod.rs index 39e2799627a6b24cf31f6cf9621965032ee68c13..6adae4c1a7b0dd971cd2674aad2adc52b40c12bf 100644 --- a/src/acpi/mod.rs +++ b/src/acpi/mod.rs @@ -5,11 +5,10 @@ use core::intrinsics::{atomic_load, atomic_store}; use core::sync::atomic::Ordering; use collections::btree_map::BTreeMap; use collections::string::String; -use alloc::boxed::Box; use syscall::io::{Io, Pio}; -use spin::{Mutex, RwLock}; +use spin::RwLock; use device::local_apic::LOCAL_APIC; use interrupt; diff --git a/src/device/hpet.rs b/src/device/hpet.rs index 9307fc5129a4a7b6eb3cec66930acc8df8134a95..3490dee5b1697ededa3bc7fdbb3c4783b7ef06ba 100644 --- a/src/device/hpet.rs +++ b/src/device/hpet.rs @@ -1,8 +1,3 @@ -use core::intrinsics::{volatile_load, volatile_store}; - -use memory::Frame; -use paging::{entry, ActivePageTable, PhysicalAddress, Page, VirtualAddress}; - use acpi::hpet::Hpet; static LEG_RT_CNF: u64 = 2; @@ -14,8 +9,8 @@ static TN_INT_ENB_CNF: u64 = 0x04; static CAPABILITY_OFFSET: usize = 0x00; static GENERAL_CONFIG_OFFSET: usize = 0x10; -static GENERAL_INTERRUPT_OFFSET: usize = 0x20; -static MAIN_COUNTER_OFFSET: usize = 0xF0; +// static GENERAL_INTERRUPT_OFFSET: usize = 0x20; +// static MAIN_COUNTER_OFFSET: usize = 0xF0; static T0_CONFIG_CAPABILITY_OFFSET: usize = 0x100; static T0_COMPARATOR_OFFSET: usize = 0x108; diff --git a/src/device/mod.rs b/src/device/mod.rs index 18700d0ab2894a3e56dc0a4041f94cb7356627a1..b7b9ceac67d648dc5b5e7bf3667ba6c02dda5e6d 100644 --- a/src/device/mod.rs +++ b/src/device/mod.rs @@ -1,6 +1,5 @@ use paging::ActivePageTable; use acpi::ACPI_TABLE; -use syscall::io::{Pio, Io}; pub mod cpu; pub mod local_apic; diff --git a/src/start.rs b/src/start.rs index d7b3663c0b2c2599ade8cd20f7e387e5cf6a2865..faac4b42540e64aeab158027fd0c943d9a302e07 100644 --- a/src/start.rs +++ b/src/start.rs @@ -15,8 +15,6 @@ use memory; use paging::{self, entry, Page, VirtualAddress}; use paging::mapper::MapperFlushAll; -use stop; - /// Test of zero values in BSS. static BSS_TEST_ZERO: usize = 0; /// Test of non-zero values in data.