Skip to content

Commit

Permalink
ACPICA: Add new interfaces for BIOS(firmware) errors and warnings
Browse files Browse the repository at this point in the history
These new interfaces will be deployed across ACPICA in order to
point a finger directly at any detected BIOS issues -- such as
issues with ACPI tables, etc.

https://www.acpica.org/bugzilla/show_bug.cgi?id=843

Signed-off-by: Bob Moore <[email protected]>
Signed-off-by: Lin Ming <[email protected]>
Signed-off-by: Len Brown <[email protected]>
  • Loading branch information
acpibob authored and lenb committed Jul 17, 2012
1 parent bc7db14 commit 62cdd14
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 0 deletions.
68 changes: 68 additions & 0 deletions drivers/acpi/acpica/utxferror.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ extern FILE *acpi_gbl_output_file;
#define ACPI_MSG_EXCEPTION "ACPI Exception: "
#define ACPI_MSG_WARNING "ACPI Warning: "
#define ACPI_MSG_INFO "ACPI: "
#define ACPI_MSG_BIOS_ERROR "ACPI BIOS Bug: Error: "
#define ACPI_MSG_BIOS_WARNING "ACPI BIOS Bug: Warning: "
/*
* Common message suffix
*/
Expand Down Expand Up @@ -218,6 +220,72 @@ acpi_info(const char *module_name, u32 line_number, const char *format, ...)

ACPI_EXPORT_SYMBOL(acpi_info)

/*******************************************************************************
*
* FUNCTION: acpi_bios_error
*
* PARAMETERS: module_name - Caller's module name (for error output)
* line_number - Caller's line number (for error output)
* format - Printf format string + additional args
*
* RETURN: None
*
* DESCRIPTION: Print "ACPI Firmware Error" message with module/line/version
* info
*
******************************************************************************/
void ACPI_INTERNAL_VAR_XFACE
acpi_bios_error(const char *module_name,
u32 line_number, const char *format, ...)
{
va_list arg_list;

ACPI_MSG_REDIRECT_BEGIN;
acpi_os_printf(ACPI_MSG_BIOS_ERROR);

va_start(arg_list, format);
acpi_os_vprintf(format, arg_list);
ACPI_MSG_SUFFIX;
va_end(arg_list);

ACPI_MSG_REDIRECT_END;
}

ACPI_EXPORT_SYMBOL(acpi_bios_error)

/*******************************************************************************
*
* FUNCTION: acpi_bios_warning
*
* PARAMETERS: module_name - Caller's module name (for error output)
* line_number - Caller's line number (for error output)
* format - Printf format string + additional args
*
* RETURN: None
*
* DESCRIPTION: Print "ACPI Firmware Warning" message with module/line/version
* info
*
******************************************************************************/
void ACPI_INTERNAL_VAR_XFACE
acpi_bios_warning(const char *module_name,
u32 line_number, const char *format, ...)
{
va_list arg_list;

ACPI_MSG_REDIRECT_BEGIN;
acpi_os_printf(ACPI_MSG_BIOS_WARNING);

va_start(arg_list, format);
acpi_os_vprintf(format, arg_list);
ACPI_MSG_SUFFIX;
va_end(arg_list);

ACPI_MSG_REDIRECT_END;
}

ACPI_EXPORT_SYMBOL(acpi_bios_warning)

/*
* The remainder of this module contains internal error functions that may
* be configured out.
Expand Down
4 changes: 4 additions & 0 deletions include/acpi/acoutput.h
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,8 @@
#define ACPI_WARNING(plist) acpi_warning plist
#define ACPI_EXCEPTION(plist) acpi_exception plist
#define ACPI_ERROR(plist) acpi_error plist
#define ACPI_BIOS_WARNING(plist) acpi_bios_warning plist
#define ACPI_BIOS_ERROR(plist) acpi_bios_error plist
#define ACPI_DEBUG_OBJECT(obj,l,i) acpi_ex_do_debug_object(obj,l,i)

#else
Expand All @@ -223,6 +225,8 @@
#define ACPI_WARNING(plist)
#define ACPI_EXCEPTION(plist)
#define ACPI_ERROR(plist)
#define ACPI_BIOS_WARNING(plist)
#define ACPI_BIOS_ERROR(plist)
#define ACPI_DEBUG_OBJECT(obj,l,i)

#endif /* ACPI_NO_ERROR_MESSAGES */
Expand Down
8 changes: 8 additions & 0 deletions include/acpi/acpixf.h
Original file line number Diff line number Diff line change
Expand Up @@ -529,6 +529,14 @@ void ACPI_INTERNAL_VAR_XFACE
acpi_info(const char *module_name,
u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3);

void ACPI_INTERNAL_VAR_XFACE
acpi_bios_error(const char *module_name,
u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3);

void ACPI_INTERNAL_VAR_XFACE
acpi_bios_warning(const char *module_name,
u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3);

/*
* Debug output
*/
Expand Down

0 comments on commit 62cdd14

Please sign in to comment.