ACPICA: Fix an if statement (add parens)
[linux-2.6-microblaze.git] / drivers / acpi / acpica / utexcep.c
1 // SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0
2 /*******************************************************************************
3  *
4  * Module Name: utexcep - Exception code support
5  *
6  ******************************************************************************/
7
8 #define EXPORT_ACPI_INTERFACES
9
10 #define ACPI_DEFINE_EXCEPTION_TABLE
11 #include <acpi/acpi.h>
12 #include "accommon.h"
13
14 #define _COMPONENT          ACPI_UTILITIES
15 ACPI_MODULE_NAME("utexcep")
16
17 /*******************************************************************************
18  *
19  * FUNCTION:    acpi_format_exception
20  *
21  * PARAMETERS:  status              - The acpi_status code to be formatted
22  *
23  * RETURN:      A string containing the exception text. A valid pointer is
24  *              always returned.
25  *
26  * DESCRIPTION: This function translates an ACPI exception into an ASCII
27  *              string. Returns "unknown status" string for invalid codes.
28  *
29  ******************************************************************************/
30 const char *acpi_format_exception(acpi_status status)
31 {
32         const struct acpi_exception_info *exception;
33
34         ACPI_FUNCTION_ENTRY();
35
36         exception = acpi_ut_validate_exception(status);
37         if (!exception) {
38
39                 /* Exception code was not recognized */
40
41                 ACPI_ERROR((AE_INFO,
42                             "Unknown exception code: 0x%8.8X", status));
43
44                 return ("UNKNOWN_STATUS_CODE");
45         }
46
47         return (exception->name);
48 }
49
50 ACPI_EXPORT_SYMBOL(acpi_format_exception)
51
52 /*******************************************************************************
53  *
54  * FUNCTION:    acpi_ut_validate_exception
55  *
56  * PARAMETERS:  status              - The acpi_status code to be formatted
57  *
58  * RETURN:      A string containing the exception text. NULL if exception is
59  *              not valid.
60  *
61  * DESCRIPTION: This function validates and translates an ACPI exception into
62  *              an ASCII string.
63  *
64  ******************************************************************************/
65 const struct acpi_exception_info *acpi_ut_validate_exception(acpi_status status)
66 {
67         u32 sub_status;
68         const struct acpi_exception_info *exception = NULL;
69
70         ACPI_FUNCTION_ENTRY();
71
72         /*
73          * Status is composed of two parts, a "type" and an actual code
74          */
75         sub_status = (status & ~AE_CODE_MASK);
76
77         switch (status & AE_CODE_MASK) {
78         case AE_CODE_ENVIRONMENTAL:
79
80                 if (sub_status <= AE_CODE_ENV_MAX) {
81                         exception = &acpi_gbl_exception_names_env[sub_status];
82                 }
83                 break;
84
85         case AE_CODE_PROGRAMMER:
86
87                 if (sub_status <= AE_CODE_PGM_MAX) {
88                         exception = &acpi_gbl_exception_names_pgm[sub_status];
89                 }
90                 break;
91
92         case AE_CODE_ACPI_TABLES:
93
94                 if (sub_status <= AE_CODE_TBL_MAX) {
95                         exception = &acpi_gbl_exception_names_tbl[sub_status];
96                 }
97                 break;
98
99         case AE_CODE_AML:
100
101                 if (sub_status <= AE_CODE_AML_MAX) {
102                         exception = &acpi_gbl_exception_names_aml[sub_status];
103                 }
104                 break;
105
106         case AE_CODE_CONTROL:
107
108                 if (sub_status <= AE_CODE_CTRL_MAX) {
109                         exception = &acpi_gbl_exception_names_ctrl[sub_status];
110                 }
111                 break;
112
113         default:
114
115                 break;
116         }
117
118         if (!exception || !exception->name) {
119                 return (NULL);
120         }
121
122         return (exception);
123 }