mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Len Brown <lenb@kernel.org>
To: linux-acpi@vger.kernel.org, linux-pm@lists.linux-foundation.org
Cc: linux-kernel@vger.kernel.org, Bob Moore <robert.moore@intel.com>,
	Lin Ming <ming.m.lin@intel.com>, Len Brown <len.brown@intel.com>
Subject: [PATCH 37/52] ACPICA: Split exception code utilities to a new file, utexcep.c
Date: Tue, 24 Jul 2012 23:41:33 -0400	[thread overview]
Message-ID: <bc7db1453902ec53cdbcb6a9807db0c527be990f.1343187617.git.len.brown@intel.com> (raw)
In-Reply-To: <1343187708-19532-1-git-send-email-lenb@kernel.org>
In-Reply-To: <6af1c4fc5227af65092ebc848989693562bfa3e8.1343187617.git.len.brown@intel.com>

From: Bob Moore <robert.moore@intel.com>

Simplifies sharing of these functions.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
---
 drivers/acpi/acpica/Makefile   |   1 +
 drivers/acpi/acpica/acglobal.h |   8 ---
 drivers/acpi/acpica/utdecode.c |  35 ----------
 drivers/acpi/acpica/utexcep.c  | 153 +++++++++++++++++++++++++++++++++++++++++
 drivers/acpi/acpica/utmisc.c   |  69 -------------------
 include/acpi/acexcep.h         |   5 +-
 6 files changed, 157 insertions(+), 114 deletions(-)
 create mode 100644 drivers/acpi/acpica/utexcep.c

diff --git a/drivers/acpi/acpica/Makefile b/drivers/acpi/acpica/Makefile
index 793b8cc..fa9a7d5 100644
--- a/drivers/acpi/acpica/Makefile
+++ b/drivers/acpi/acpica/Makefile
@@ -140,6 +140,7 @@ acpi-y +=		\
 	utaddress.o	\
 	utalloc.o	\
 	utcopy.o	\
+	utexcep.o	\
 	utdebug.o	\
 	utdecode.o	\
 	utdelete.o	\
diff --git a/drivers/acpi/acpica/acglobal.h b/drivers/acpi/acpica/acglobal.h
index 92fab6a..ce79100 100644
--- a/drivers/acpi/acpica/acglobal.h
+++ b/drivers/acpi/acpica/acglobal.h
@@ -326,14 +326,6 @@ extern const char *acpi_gbl_region_types[ACPI_NUM_PREDEFINED_REGIONS];
 
 #endif
 
-/* Exception codes */
-
-extern char const *acpi_gbl_exception_names_env[];
-extern char const *acpi_gbl_exception_names_pgm[];
-extern char const *acpi_gbl_exception_names_tbl[];
-extern char const *acpi_gbl_exception_names_aml[];
-extern char const *acpi_gbl_exception_names_ctrl[];
-
 /*****************************************************************************
  *
  * Namespace globals
diff --git a/drivers/acpi/acpica/utdecode.c b/drivers/acpi/acpica/utdecode.c
index 6848499..c8c130c 100644
--- a/drivers/acpi/acpica/utdecode.c
+++ b/drivers/acpi/acpica/utdecode.c
@@ -49,41 +49,6 @@
 #define _COMPONENT          ACPI_UTILITIES
 ACPI_MODULE_NAME("utdecode")
 
-/*******************************************************************************
- *
- * FUNCTION:    acpi_format_exception
- *
- * PARAMETERS:  Status       - The acpi_status code to be formatted
- *
- * RETURN:      A string containing the exception text. A valid pointer is
- *              always returned.
- *
- * DESCRIPTION: This function translates an ACPI exception into an ASCII string
- *              It is here instead of utxface.c so it is always present.
- *
- ******************************************************************************/
-const char *acpi_format_exception(acpi_status status)
-{
-	const char *exception = NULL;
-
-	ACPI_FUNCTION_ENTRY();
-
-	exception = acpi_ut_validate_exception(status);
-	if (!exception) {
-
-		/* Exception code was not recognized */
-
-		ACPI_ERROR((AE_INFO,
-			    "Unknown exception code: 0x%8.8X", status));
-
-		exception = "UNKNOWN_STATUS_CODE";
-	}
-
-	return (ACPI_CAST_PTR(const char, exception));
-}
-
-ACPI_EXPORT_SYMBOL(acpi_format_exception)
-
 /*
  * Properties of the ACPI Object Types, both internal and external.
  * The table is indexed by values of acpi_object_type
diff --git a/drivers/acpi/acpica/utexcep.c b/drivers/acpi/acpica/utexcep.c
new file mode 100644
index 0000000..23b9894
--- /dev/null
+++ b/drivers/acpi/acpica/utexcep.c
@@ -0,0 +1,153 @@
+/*******************************************************************************
+ *
+ * Module Name: utexcep - Exception code support
+ *
+ ******************************************************************************/
+
+/*
+ * Copyright (C) 2000 - 2012, Intel Corp.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions, and the following disclaimer,
+ *    without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ *    substantially similar to the "NO WARRANTY" disclaimer below
+ *    ("Disclaimer") and any redistribution must be conditioned upon
+ *    including a substantially similar Disclaimer requirement for further
+ *    binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ *    of any contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ * NO WARRANTY
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGES.
+ */
+
+#define ACPI_DEFINE_EXCEPTION_TABLE
+#include <linux/export.h>
+#include <acpi/acpi.h>
+#include "accommon.h"
+
+#define _COMPONENT          ACPI_UTILITIES
+ACPI_MODULE_NAME("utexcep")
+
+/*******************************************************************************
+ *
+ * FUNCTION:    acpi_format_exception
+ *
+ * PARAMETERS:  status              - The acpi_status code to be formatted
+ *
+ * RETURN:      A string containing the exception text. A valid pointer is
+ *              always returned.
+ *
+ * DESCRIPTION: This function translates an ACPI exception into an ASCII
+ *              string. Returns "unknown status" string for invalid codes.
+ *
+ ******************************************************************************/
+const char *acpi_format_exception(acpi_status status)
+{
+	const char *exception = NULL;
+
+	ACPI_FUNCTION_ENTRY();
+
+	exception = acpi_ut_validate_exception(status);
+	if (!exception) {
+
+		/* Exception code was not recognized */
+
+		ACPI_ERROR((AE_INFO,
+			    "Unknown exception code: 0x%8.8X", status));
+
+		exception = "UNKNOWN_STATUS_CODE";
+	}
+
+	return (ACPI_CAST_PTR(const char, exception));
+}
+
+ACPI_EXPORT_SYMBOL(acpi_format_exception)
+
+/*******************************************************************************
+ *
+ * FUNCTION:    acpi_ut_validate_exception
+ *
+ * PARAMETERS:  status              - The acpi_status code to be formatted
+ *
+ * RETURN:      A string containing the exception text. NULL if exception is
+ *              not valid.
+ *
+ * DESCRIPTION: This function validates and translates an ACPI exception into
+ *              an ASCII string.
+ *
+ ******************************************************************************/
+const char *acpi_ut_validate_exception(acpi_status status)
+{
+	u32 sub_status;
+	const char *exception = NULL;
+
+	ACPI_FUNCTION_ENTRY();
+
+	/*
+	 * Status is composed of two parts, a "type" and an actual code
+	 */
+	sub_status = (status & ~AE_CODE_MASK);
+
+	switch (status & AE_CODE_MASK) {
+	case AE_CODE_ENVIRONMENTAL:
+
+		if (sub_status <= AE_CODE_ENV_MAX) {
+			exception = acpi_gbl_exception_names_env[sub_status];
+		}
+		break;
+
+	case AE_CODE_PROGRAMMER:
+
+		if (sub_status <= AE_CODE_PGM_MAX) {
+			exception = acpi_gbl_exception_names_pgm[sub_status];
+		}
+		break;
+
+	case AE_CODE_ACPI_TABLES:
+
+		if (sub_status <= AE_CODE_TBL_MAX) {
+			exception = acpi_gbl_exception_names_tbl[sub_status];
+		}
+		break;
+
+	case AE_CODE_AML:
+
+		if (sub_status <= AE_CODE_AML_MAX) {
+			exception = acpi_gbl_exception_names_aml[sub_status];
+		}
+		break;
+
+	case AE_CODE_CONTROL:
+
+		if (sub_status <= AE_CODE_CTRL_MAX) {
+			exception = acpi_gbl_exception_names_ctrl[sub_status];
+		}
+		break;
+
+	default:
+		break;
+	}
+
+	return (ACPI_CAST_PTR(const char, exception));
+}
diff --git a/drivers/acpi/acpica/utmisc.c b/drivers/acpi/acpica/utmisc.c
index 577a44e..e30c060 100644
--- a/drivers/acpi/acpica/utmisc.c
+++ b/drivers/acpi/acpica/utmisc.c
@@ -82,75 +82,6 @@ void ut_convert_backslashes(char *pathname)
 
 /*******************************************************************************
  *
- * FUNCTION:    acpi_ut_validate_exception
- *
- * PARAMETERS:  Status       - The acpi_status code to be formatted
- *
- * RETURN:      A string containing the exception text. NULL if exception is
- *              not valid.
- *
- * DESCRIPTION: This function validates and translates an ACPI exception into
- *              an ASCII string.
- *
- ******************************************************************************/
-
-const char *acpi_ut_validate_exception(acpi_status status)
-{
-	u32 sub_status;
-	const char *exception = NULL;
-
-	ACPI_FUNCTION_ENTRY();
-
-	/*
-	 * Status is composed of two parts, a "type" and an actual code
-	 */
-	sub_status = (status & ~AE_CODE_MASK);
-
-	switch (status & AE_CODE_MASK) {
-	case AE_CODE_ENVIRONMENTAL:
-
-		if (sub_status <= AE_CODE_ENV_MAX) {
-			exception = acpi_gbl_exception_names_env[sub_status];
-		}
-		break;
-
-	case AE_CODE_PROGRAMMER:
-
-		if (sub_status <= AE_CODE_PGM_MAX) {
-			exception = acpi_gbl_exception_names_pgm[sub_status];
-		}
-		break;
-
-	case AE_CODE_ACPI_TABLES:
-
-		if (sub_status <= AE_CODE_TBL_MAX) {
-			exception = acpi_gbl_exception_names_tbl[sub_status];
-		}
-		break;
-
-	case AE_CODE_AML:
-
-		if (sub_status <= AE_CODE_AML_MAX) {
-			exception = acpi_gbl_exception_names_aml[sub_status];
-		}
-		break;
-
-	case AE_CODE_CONTROL:
-
-		if (sub_status <= AE_CODE_CTRL_MAX) {
-			exception = acpi_gbl_exception_names_ctrl[sub_status];
-		}
-		break;
-
-	default:
-		break;
-	}
-
-	return (ACPI_CAST_PTR(const char, exception));
-}
-
-/*******************************************************************************
- *
  * FUNCTION:    acpi_ut_is_pci_root_bridge
  *
  * PARAMETERS:  Id              - The HID/CID in string format
diff --git a/include/acpi/acexcep.h b/include/acpi/acexcep.h
index 92d6e1d..0b5dcb6 100644
--- a/include/acpi/acexcep.h
+++ b/include/acpi/acexcep.h
@@ -52,6 +52,7 @@
 #define AE_CODE_ACPI_TABLES             0x2000
 #define AE_CODE_AML                     0x3000
 #define AE_CODE_CONTROL                 0x4000
+#define AE_CODE_MAX                     0x4000
 #define AE_CODE_MASK                    0xF000
 
 #define ACPI_SUCCESS(a)                 (!(a))
@@ -181,7 +182,7 @@
 
 /* Exception strings for acpi_format_exception */
 
-#ifdef DEFINE_ACPI_GLOBALS
+#ifdef ACPI_DEFINE_EXCEPTION_TABLE
 
 /*
  * String versions of the exception codes above
@@ -295,6 +296,6 @@ char const *acpi_gbl_exception_names_ctrl[] = {
 	"AE_CTRL_PARSE_PENDING"
 };
 
-#endif				/* ACPI GLOBALS */
+#endif				/* EXCEPTION_TABLE */
 
 #endif				/* __ACEXCEP_H__ */
-- 
1.7.12.rc0


  parent reply	other threads:[~2012-07-25  3:43 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-25  3:40 ACPI & Power Management Patches for Linux-3.6-merge - part 1 Len Brown
2012-07-25  3:40 ` [PATCH 01/52] ACPICA: AML Parser: Fix two possible memory leaks in error path Len Brown
2012-07-25  3:40   ` [PATCH 02/52] ACPICA: Object dump routines: Use common function for string output Len Brown
2012-07-25  3:40   ` [PATCH 03/52] ACPICA: Lint fixes for acpi_write, no functional changes Len Brown
2012-07-25  3:41   ` [PATCH 04/52] ACPICA: Add support for multiple notify handlers Len Brown
2012-07-25  3:41   ` [PATCH 05/52] ACPICA: Update to version 20120420 Len Brown
2012-07-25  3:41   ` [PATCH 06/52] ACPICA: Disassembler: Add support for Operation Region externals Len Brown
2012-07-25  3:41   ` [PATCH 07/52] ACPICA: ACPI 5/iASL: Add support for PCC keyword Len Brown
2012-07-25  3:41   ` [PATCH 08/52] ACPICA: iASL: Improved pathname support Len Brown
2012-07-25  3:41   ` [PATCH 09/52] ACPICA: Remove argument of acpi_os_wait_events_complete Len Brown
2012-07-25  3:41   ` [PATCH 10/52] ACPICA: Add FADT error message for GAS BitWidth overflow Len Brown
2012-07-25  3:41   ` [PATCH 11/52] ACPICA: Update to version 20120518 Len Brown
2012-07-25  3:41   ` [PATCH 12/52] cpuidle: remove unused hrtimer_peek_ahead_timers() call Len Brown
2012-07-25  3:41   ` [PATCH 13/52] cpuidle: add checks to avoid NULL pointer dereference Len Brown
2012-07-25  3:41   ` [PATCH 14/52] ACPI Battery: Added capacity Len Brown
2012-07-25  3:41   ` [PATCH 15/52] cpuidle: refactor out cpuidle_enter_state Len Brown
2012-07-25  3:41   ` [PATCH 16/52] cpuidle: fix error handling in __cpuidle_register_device Len Brown
2012-07-25  3:41   ` [PATCH 17/52] cpuidle: add support for states that affect multiple cpus Len Brown
2012-07-25  3:41   ` [PATCH 18/52] cpuidle: coupled: add parallel barrier function Len Brown
2012-07-25  3:41   ` [PATCH 19/52] drivers/thermal/spear_thermal.c: add Device Tree probing capability Len Brown
2012-07-25  3:41   ` [PATCH 20/52] ACPI: Add an interface to evaluate _OST Len Brown
2012-07-25  3:41   ` [PATCH 21/52] ACPI: Add _OST support for sysfs eject Len Brown
2012-07-25  3:41   ` [PATCH 22/52] ACPI: Add _OST support for ACPI CPU hotplug Len Brown
2012-07-25  3:41   ` [PATCH 23/52] ACPI: Add _OST support for ACPI memory hotplug Len Brown
2012-07-25  3:41   ` [PATCH 24/52] ACPI: Add _OST support for ACPI container hotplug Len Brown
2012-07-25  3:41   ` [PATCH 25/52] ACPI: Set hotplug _OST support bit to _OSC Len Brown
2012-07-25  3:41   ` [PATCH 26/52] ACPI, PM, Specify lowest allowed state for device sleep state Len Brown
2012-07-25  3:41   ` [PATCH 27/52] intel_idle: initial IVB support Len Brown
2012-07-25  3:41   ` [PATCH 28/52] ACPI: remove acpi_pad MAINTAINERS entry Len Brown
2012-07-25  3:41   ` [PATCH 29/52] ACPI: acpi_pad: rename "power_saving" thread to "acpi_pad" thread Len Brown
2012-07-25  3:41   ` [PATCH 31/52] ACPICA: Disassembler: Emit descriptions for ACPI predefined names Len Brown
2012-07-25  3:41   ` [PATCH 32/52] ACPICA: Utilities: conditionally compile backslash removal function Len Brown
2012-07-25  3:41   ` [PATCH 33/52] ACPICA: Update comments; no functional change Len Brown
2012-07-25  3:41   ` [PATCH 34/52] ACPICA: Add support for implicit notify on multiple devices Len Brown
2012-07-25  3:41   ` [PATCH 35/52] ACPICA: Update to version 20120620 Len Brown
2012-07-25  3:41   ` [PATCH 36/52] ACPI: acpi_pad: tune round_robin_time Len Brown
2012-07-25  3:41   ` Len Brown [this message]
2012-07-25  3:41   ` [PATCH 38/52] ACPICA: Add new interfaces for BIOS(firmware) errors and warnings Len Brown
2012-07-25  3:41   ` [PATCH 39/52] ACPICA: Table manager: deploy new firmware error/warning interfaces Len Brown
2012-07-25  3:41   ` [PATCH 40/52] ACPICA: Fix some comment fields Len Brown
2012-07-25  3:41   ` [PATCH 41/52] ACPICA: Add PCC address space to space ID decode function Len Brown
2012-07-25  3:41   ` [PATCH 42/52] ACPICA: Split file: tbxface.c -> tbxfload.c Len Brown
2012-07-25  3:41   ` [PATCH 43/52] ACPICA: Add new ACPI table load/unload external interfaces Len Brown
2012-07-25  3:41   ` [PATCH 44/52] ACPICA: Update header files copyrights to 2012 Len Brown
2012-07-25  3:41   ` [PATCH 45/52] ACPICA: AcpiSrc: Fix some translation issues for Linux conversion Len Brown
2012-07-25  3:41   ` [PATCH 46/52] ACPICA: Update to version 20120711 Len Brown
2012-07-25  3:41   ` [PATCH 47/52] tools/power: turbostat v2 - re-write for efficiency Len Brown
2012-07-25  3:41   ` [PATCH 48/52] tools/power: turbostat: fix large c1% issue Len Brown
2012-07-25 13:03     ` Konrad Rzeszutek Wilk
2012-07-25  3:41   ` [PATCH 49/52] ACPI/AC: prevent OOPS on some boxes due to missing check power_supply_register() return value check Len Brown
2012-07-25  3:41   ` [PATCH 50/52] Thermal: Make Thermal trip points writeable Len Brown
2012-07-25 11:13     ` Rafael J. Wysocki
2012-07-25 11:15       ` [linux-pm] " R, Durgadoss
2012-07-25  3:41   ` [PATCH 51/52] Thermal: Add Hysteresis attributes Len Brown
2012-07-25  3:41   ` [PATCH 52/52] Thermal: Documentation update Len Brown
2012-07-25  6:47 ` [linux-pm] ACPI & Power Management Patches for Linux-3.6-merge - part 1 Amit Kachhap

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bc7db1453902ec53cdbcb6a9807db0c527be990f.1343187617.git.len.brown@intel.com \
    --to=lenb@kernel.org \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=ming.m.lin@intel.com \
    --cc=robert.moore@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®