1 /*
2 * Arm SCP/MCP Software
3 * Copyright (c) 2019-2021, Arm Limited and Contributors. All rights reserved.
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 *
7 * Description:
8 * Framework status code helpers.
9 */
10
11 #include <fwk_macros.h>
12 #include <fwk_status.h>
13
14 static const char *const error_string[19] = {
15 [-FWK_E_PARAM] = "E_PARAM",
16 [-FWK_E_ALIGN] = "E_ALIGN",
17 [-FWK_E_SIZE] = "E_SIZE",
18 [-FWK_E_HANDLER] = "E_HANDLER",
19 [-FWK_E_ACCESS] = "E_ACCESS",
20 [-FWK_E_RANGE] = "E_RANGE",
21 [-FWK_E_TIMEOUT] = "E_TIMEOUT",
22 [-FWK_E_NOMEM] = "E_NOMEM",
23 [-FWK_E_PWRSTATE] = "E_PWRSTATE",
24 [-FWK_E_SUPPORT] = "E_SUPPORT",
25 [-FWK_E_DEVICE] = "E_DEVICE",
26 [-FWK_E_BUSY] = "E_BUSY",
27 [-FWK_E_OS] = "E_OS",
28 [-FWK_E_DATA] = "E_DATA",
29 [-FWK_E_STATE] = "E_STATE",
30 [-FWK_E_INIT] = "E_INIT",
31 [-FWK_E_OVERWRITTEN] = "E_OVERWRITTEN",
32 [-FWK_E_PANIC] = "E_PANIC",
33 };
34
35 static const char *const status_string[2] = {
36 [FWK_SUCCESS] = "SUCCESS",
37 [FWK_PENDING] = "PENDING",
38 };
39
fwk_status_str(int status)40 const char *fwk_status_str(int status)
41 {
42 static const char unknown[] = "unknown";
43
44 unsigned int error_idx = (unsigned int)(-status);
45
46 if ((status < 0) && (error_idx < FWK_ARRAY_SIZE(error_string))) {
47 return error_string[error_idx];
48 } else if ((status >= 0) && (status < (int)FWK_ARRAY_SIZE(status_string))) {
49 return status_string[status];
50 }
51
52 return unknown;
53 }
54