| // Copyright 2021 The IREE Authors | |
| // | |
| // Licensed under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| #include "experimental/rocm/status_util.h" | |
| #include <stddef.h> | |
| #include "experimental/rocm/dynamic_symbols.h" | |
| iree_status_t iree_hal_rocm_result_to_status( | |
| iree_hal_rocm_dynamic_symbols_t *syms, hipError_t result, const char *file, | |
| uint32_t line) { | |
| if (IREE_LIKELY(result == hipSuccess)) { | |
| return iree_ok_status(); | |
| } | |
| const char *error_name = syms->hipGetErrorName(result); | |
| if (result == hipErrorUnknown) { | |
| error_name = "UNKNOWN"; | |
| } | |
| const char *error_string = syms->hipGetErrorString(result); | |
| if (result == hipErrorUnknown) { | |
| error_string = "Unknown error."; | |
| } | |
| return iree_make_status(IREE_STATUS_INTERNAL, | |
| "rocm driver error '%s' (%d): %s", error_name, result, | |
| error_string); | |
| } |