| // Copyright 2017 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #pragma once |
| |
| #include <acpica/acpi.h> |
| |
| static inline zx_status_t acpi_to_zx_status(ACPI_STATUS acpi_status) { |
| switch (acpi_status) { |
| case AE_ERROR: |
| case AE_NO_ACPI_TABLES: |
| return ZX_ERR_INTERNAL; |
| case AE_NO_NAMESPACE: |
| return ZX_ERR_NOT_FOUND; |
| case AE_NO_MEMORY: |
| return ZX_ERR_NO_MEMORY; |
| case AE_NOT_EXIST: |
| return ZX_ERR_NOT_FOUND; |
| case AE_ALREADY_EXISTS: |
| return ZX_ERR_ALREADY_EXISTS; |
| case AE_TYPE: |
| return ZX_ERR_WRONG_TYPE; |
| case AE_NULL_OBJECT: |
| case AE_NULL_ENTRY: |
| return ZX_ERR_NOT_FOUND; |
| case AE_BUFFER_OVERFLOW: |
| return ZX_ERR_BUFFER_TOO_SMALL; |
| case AE_STACK_OVERFLOW: |
| case AE_STACK_UNDERFLOW: |
| return ZX_ERR_INTERNAL; |
| case AE_NOT_IMPLEMENTED: |
| case AE_SUPPORT: |
| return ZX_ERR_NOT_SUPPORTED; |
| case AE_LIMIT: |
| return ZX_ERR_INTERNAL; |
| case AE_TIME: |
| return ZX_ERR_TIMED_OUT; |
| case AE_ACQUIRE_DEADLOCK: |
| case AE_RELEASE_DEADLOCK: |
| case AE_NOT_ACQUIRED: |
| case AE_ALREADY_ACQUIRED: |
| return ZX_ERR_INTERNAL; |
| case AE_NO_HARDWARE_RESPONSE: |
| return ZX_ERR_TIMED_OUT; |
| case AE_NO_GLOBAL_LOCK: |
| return ZX_ERR_INTERNAL; |
| case AE_ABORT_METHOD: |
| return ZX_ERR_INTERNAL; |
| case AE_SAME_HANDLER: |
| return ZX_ERR_ALREADY_EXISTS; |
| case AE_OWNER_ID_LIMIT: |
| return ZX_ERR_NO_RESOURCES; |
| case AE_NOT_CONFIGURED: |
| return ZX_ERR_NOT_FOUND; |
| case AE_ACCESS: |
| return ZX_ERR_ACCESS_DENIED; |
| case AE_IO_ERROR: |
| return ZX_ERR_IO; |
| default: |
| return ZX_ERR_INTERNAL; |
| } |
| } |