forked from Bananymous/banan-os
				
			Kernel/AML: Allow calling method through named objects
This commit is contained in:
		
							parent
							
								
									d729d7f570
								
							
						
					
					
						commit
						75884ca6b8
					
				|  | @ -222,10 +222,16 @@ namespace Kernel::ACPI | ||||||
| 				AML_ERROR("NameString {} not found in namespace", name_string.value()); | 				AML_ERROR("NameString {} not found in namespace", name_string.value()); | ||||||
| 				return ParseResult::Failure; | 				return ParseResult::Failure; | ||||||
| 			} | 			} | ||||||
| 			if (aml_object->type != AML::Node::Type::Method) | 
 | ||||||
|  | 			auto underlying = aml_object->to_underlying(); | ||||||
|  | 			if (aml_object->type != AML::Node::Type::Method && underlying->type != AML::Node::Type::Method) | ||||||
| 				return ParseResult(aml_object); | 				return ParseResult(aml_object); | ||||||
| 
 | 
 | ||||||
| 			auto* method = static_cast<AML::Method*>(aml_object.ptr()); | 			auto* method = static_cast<AML::Method*>( | ||||||
|  | 				aml_object->type == AML::Node::Type::Method | ||||||
|  | 					? aml_object.ptr() | ||||||
|  | 					: underlying.ptr() | ||||||
|  | 			); | ||||||
| 
 | 
 | ||||||
| 			BAN::Array<BAN::RefPtr<AML::Node>, 7> args; | 			BAN::Array<BAN::RefPtr<AML::Node>, 7> args; | ||||||
| 			for (uint8_t i = 0; i < method->arg_count; i++) | 			for (uint8_t i = 0; i < method->arg_count; i++) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue