1// Copyright 2018 The Fuchsia Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4// 5 6#pragma once 7 8#include <stdint.h> 9#include <zircon/compiler.h> 10#include <zircon/types.h> 11#include <acpica/acpi.h> 12#include <acpica/actypes.h> 13 14#define ACPI_UUID_SIZE 16u 15 16__BEGIN_CDECLS; 17 18zx_status_t acpi_bbn_call(ACPI_HANDLE dev_obj, uint8_t* out_bbn); 19zx_status_t acpi_crt_call(ACPI_HANDLE dev_obj, uint64_t* out); 20 21// Call the ACPI _OSC method on a device object. 22// 23// Returns values: 24// ZX_ERR_INVALID_ARGS: dwords_in or dwords_out are NULL, dword_cnt is less than 2, 25// or the UUID is incorrectly formatted. 26// ZX_ERR_BUFFER_TOO_SMALL: The dwords provided are not large enough for the result 27// from the method. 28// ZX_ERR_INTERNAL: The method returned an error bit that should be checked in dwords_out[0] 29zx_status_t acpi_osc_call(ACPI_HANDLE dev_obj, 30 const char* uuid_str, 31 uint64_t revision, 32 size_t dword_cnt, 33 uint32_t* dwords_in, 34 uint32_t* dwords_out, 35 bool* bit_masked); 36zx_status_t acpi_psv_call(ACPI_HANDLE dev_obj, uint64_t* out); 37zx_status_t acpi_seg_call(ACPI_HANDLE dev_obj, uint8_t* out_seg); 38zx_status_t acpi_tmp_call(ACPI_HANDLE dev_obj, uint64_t* out); 39 40__END_CDECLS; 41