ACPICA: Add BIOS error interface for predefined name validation support
BIOS error message for errors found in predefined names. Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Acked-by: Len Brown <len.brown@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Родитель
f6f57f605e
Коммит
e1405ca5eb
|
@ -374,10 +374,11 @@
|
|||
* the plist contains a set of parens to allow variable-length lists.
|
||||
* These macros are used for both the debug and non-debug versions of the code.
|
||||
*/
|
||||
#define ACPI_ERROR_NAMESPACE(s, e) acpi_ut_namespace_error (AE_INFO, s, e);
|
||||
#define ACPI_ERROR_METHOD(s, n, p, e) acpi_ut_method_error (AE_INFO, s, n, p, e);
|
||||
#define ACPI_WARN_PREDEFINED(plist) acpi_ut_predefined_warning plist
|
||||
#define ACPI_INFO_PREDEFINED(plist) acpi_ut_predefined_info plist
|
||||
#define ACPI_ERROR_NAMESPACE(s, e) acpi_ut_namespace_error (AE_INFO, s, e);
|
||||
#define ACPI_ERROR_METHOD(s, n, p, e) acpi_ut_method_error (AE_INFO, s, n, p, e);
|
||||
#define ACPI_WARN_PREDEFINED(plist) acpi_ut_predefined_warning plist
|
||||
#define ACPI_INFO_PREDEFINED(plist) acpi_ut_predefined_info plist
|
||||
#define ACPI_BIOS_ERROR_PREDEFINED(plist) acpi_ut_predefined_bios_error plist
|
||||
|
||||
#else
|
||||
|
||||
|
@ -387,6 +388,7 @@
|
|||
#define ACPI_ERROR_METHOD(s, n, p, e)
|
||||
#define ACPI_WARN_PREDEFINED(plist)
|
||||
#define ACPI_INFO_PREDEFINED(plist)
|
||||
#define ACPI_BIOS_ERROR_PREDEFINED(plist)
|
||||
|
||||
#endif /* ACPI_NO_ERROR_MESSAGES */
|
||||
|
||||
|
|
|
@ -670,6 +670,12 @@ acpi_ut_predefined_info(const char *module_name,
|
|||
u32 line_number,
|
||||
char *pathname, u8 node_flags, const char *format, ...);
|
||||
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_ut_predefined_bios_error(const char *module_name,
|
||||
u32 line_number,
|
||||
char *pathname,
|
||||
u8 node_flags, const char *format, ...);
|
||||
|
||||
void
|
||||
acpi_ut_namespace_error(const char *module_name,
|
||||
u32 line_number,
|
||||
|
|
|
@ -82,8 +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: "
|
||||
#define ACPI_MSG_BIOS_ERROR "ACPI BIOS Error (bug): "
|
||||
#define ACPI_MSG_BIOS_WARNING "ACPI BIOS Warning (bug): "
|
||||
/*
|
||||
* Common message suffix
|
||||
*/
|
||||
|
@ -325,7 +325,7 @@ acpi_ut_predefined_warning(const char *module_name,
|
|||
return;
|
||||
}
|
||||
|
||||
acpi_os_printf(ACPI_MSG_WARNING "For %s: ", pathname);
|
||||
acpi_os_printf(ACPI_MSG_WARNING "%s: ", pathname);
|
||||
|
||||
va_start(arg_list, format);
|
||||
acpi_os_vprintf(format, arg_list);
|
||||
|
@ -367,7 +367,50 @@ acpi_ut_predefined_info(const char *module_name,
|
|||
return;
|
||||
}
|
||||
|
||||
acpi_os_printf(ACPI_MSG_INFO "For %s: ", pathname);
|
||||
acpi_os_printf(ACPI_MSG_INFO "%s: ", pathname);
|
||||
|
||||
va_start(arg_list, format);
|
||||
acpi_os_vprintf(format, arg_list);
|
||||
ACPI_MSG_SUFFIX;
|
||||
va_end(arg_list);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ut_predefined_bios_error
|
||||
*
|
||||
* PARAMETERS: module_name - Caller's module name (for error output)
|
||||
* line_number - Caller's line number (for error output)
|
||||
* pathname - Full pathname to the node
|
||||
* node_flags - From Namespace node for the method/object
|
||||
* format - Printf format string + additional args
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: BIOS error message for predefined names. Messages
|
||||
* are only emitted the first time a problem with a particular
|
||||
* method/object is detected. This prevents a flood of
|
||||
* messages for methods that are repeatedly evaluated.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_ut_predefined_bios_error(const char *module_name,
|
||||
u32 line_number,
|
||||
char *pathname,
|
||||
u8 node_flags, const char *format, ...)
|
||||
{
|
||||
va_list arg_list;
|
||||
|
||||
/*
|
||||
* Warning messages for this method/object will be disabled after the
|
||||
* first time a validation fails or an object is successfully repaired.
|
||||
*/
|
||||
if (node_flags & ANOBJ_EVALUATED) {
|
||||
return;
|
||||
}
|
||||
|
||||
acpi_os_printf(ACPI_MSG_BIOS_ERROR "%s: ", pathname);
|
||||
|
||||
va_start(arg_list, format);
|
||||
acpi_os_vprintf(format, arg_list);
|
||||
|
|
Загрузка…
Ссылка в новой задаче