ACPI_IMODE_LOAD_PASS1, flags, walk_state,
                                   &(node));
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_NSERROR(arg->common.value.string, status);
+                       ACPI_ERROR_NAMESPACE(arg->common.value.string, status);
                        return_ACPI_STATUS(status);
                }
        }
                            + (acpi_integer) arg->common.value.size;
 
                        if (position > ACPI_UINT32_MAX) {
-                               ACPI_REPORT_ERROR(("Bit offset within field too large (> 0xFFFFFFFF)\n"));
+                               ACPI_ERROR((AE_INFO,
+                                           "Bit offset within field too large (> 0xFFFFFFFF)"));
                                return_ACPI_STATUS(AE_SUPPORT);
                        }
 
                                                ACPI_NS_DONT_OPEN_SCOPE,
                                                walk_state, &info->field_node);
                        if (ACPI_FAILURE(status)) {
-                               ACPI_REPORT_NSERROR((char *)&arg->named.name,
-                                                   status);
+                               ACPI_ERROR_NAMESPACE((char *)&arg->named.name,
+                                                    status);
                                if (status != AE_ALREADY_EXISTS) {
                                        return_ACPI_STATUS(status);
                                }
                            + (acpi_integer) arg->common.value.size;
 
                        if (position > ACPI_UINT32_MAX) {
-                               ACPI_REPORT_ERROR(("Field [%4.4s] bit offset too large (> 0xFFFFFFFF)\n", ACPI_CAST_PTR(char, &info->field_node->name)));
+                               ACPI_ERROR((AE_INFO,
+                                           "Field [%4.4s] bit offset too large (> 0xFFFFFFFF)",
+                                           ACPI_CAST_PTR(char,
+                                                         &info->field_node->
+                                                         name)));
                                return_ACPI_STATUS(AE_SUPPORT);
                        }
 
 
                default:
 
-                       ACPI_REPORT_ERROR(("Invalid opcode in field list: %X\n",
-                                          arg->common.aml_opcode));
+                       ACPI_ERROR((AE_INFO,
+                                   "Invalid opcode in field list: %X",
+                                   arg->common.aml_opcode));
                        return_ACPI_STATUS(AE_AML_BAD_OPCODE);
                }
 
                                   ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
                                   walk_state, ®ion_node);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_NSERROR(arg->common.value.name, status);
+                       ACPI_ERROR_NAMESPACE(arg->common.value.name, status);
                        return_ACPI_STATUS(status);
                }
        }
                                                ACPI_NS_ERROR_IF_FOUND,
                                                walk_state, &node);
                        if (ACPI_FAILURE(status)) {
-                               ACPI_REPORT_NSERROR((char *)&arg->named.name,
-                                                   status);
+                               ACPI_ERROR_NAMESPACE((char *)&arg->named.name,
+                                                    status);
                                if (status != AE_ALREADY_EXISTS) {
                                        return_ACPI_STATUS(status);
                                }
                                   ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
                                   walk_state, ®ion_node);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_NSERROR(arg->common.value.name, status);
+                       ACPI_ERROR_NAMESPACE(arg->common.value.name, status);
                        return_ACPI_STATUS(status);
                }
        }
                           ACPI_NS_SEARCH_PARENT, walk_state,
                           &info.register_node);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_NSERROR(arg->common.value.string, status);
+               ACPI_ERROR_NAMESPACE(arg->common.value.string, status);
                return_ACPI_STATUS(status);
        }
 
                           ACPI_NS_SEARCH_PARENT, walk_state,
                           &info.register_node);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_NSERROR(arg->common.value.string, status);
+               ACPI_ERROR_NAMESPACE(arg->common.value.string, status);
                return_ACPI_STATUS(status);
        }
 
                           ACPI_NS_SEARCH_PARENT, walk_state,
                           &info.data_register_node);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_NSERROR(arg->common.value.string, status);
+               ACPI_ERROR_NAMESPACE(arg->common.value.string, status);
                return_ACPI_STATUS(status);
        }
 
 
 
                status = acpi_ds_initialize_region(obj_handle);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Region %p [%4.4s] - Init failure, %s\n", obj_handle, acpi_ut_get_node_name(obj_handle), acpi_format_exception(status)));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "During Region initialization %p [%4.4s]",
+                                       obj_handle,
+                                       acpi_ut_get_node_name(obj_handle)));
                }
 
                info->op_region_count++;
                 */
                status = acpi_ds_parse_method(obj_handle);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("\n+Method %p [%4.4s] - parse failure, %s\n", obj_handle, acpi_ut_get_node_name(obj_handle), acpi_format_exception(status)));
+                       ACPI_ERROR((AE_INFO,
+                                   "Method %p [%4.4s] - parse failure, %s",
+                                   obj_handle,
+                                   acpi_ut_get_node_name(obj_handle),
+                                   acpi_format_exception(status)));
 
                        /* This parse failed, but we will continue parsing more methods */
                }
        status = acpi_walk_namespace(ACPI_TYPE_ANY, start_node, ACPI_UINT32_MAX,
                                     acpi_ds_init_one_object, &info, NULL);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("walk_namespace failed, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "During walk_namespace"));
        }
 
        ACPI_DEBUG_PRINT_RAW((ACPI_DB_INIT,
 
        /* Prevent wraparound of thread count */
 
        if (obj_desc->method.thread_count == ACPI_UINT8_MAX) {
-               ACPI_REPORT_ERROR(("Method reached maximum reentrancy limit (255)\n"));
+               ACPI_ERROR((AE_INFO,
+                           "Method reached maximum reentrancy limit (255)"));
                return_ACPI_STATUS(AE_AML_METHOD_LIMIT);
        }
 
                    acpi_os_signal_semaphore(walk_state->method_desc->method.
                                             semaphore, 1);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not signal method semaphore\n"));
+                       ACPI_ERROR((AE_INFO,
+                                   "Could not signal method semaphore"));
 
                        /* Ignore error and continue cleanup */
                }
 
        case AML_LOCAL_OP:
 
                if (index > ACPI_METHOD_MAX_LOCAL) {
-                       ACPI_REPORT_ERROR(("Local index %d is invalid (max %d)\n", index, ACPI_METHOD_MAX_LOCAL));
+                       ACPI_ERROR((AE_INFO,
+                                   "Local index %d is invalid (max %d)",
+                                   index, ACPI_METHOD_MAX_LOCAL));
                        return_ACPI_STATUS(AE_AML_INVALID_INDEX);
                }
 
        case AML_ARG_OP:
 
                if (index > ACPI_METHOD_MAX_ARG) {
-                       ACPI_REPORT_ERROR(("Arg index %d is invalid (max %d)\n",
-                                          index, ACPI_METHOD_MAX_ARG));
+                       ACPI_ERROR((AE_INFO,
+                                   "Arg index %d is invalid (max %d)",
+                                   index, ACPI_METHOD_MAX_ARG));
                        return_ACPI_STATUS(AE_AML_INVALID_INDEX);
                }
 
                break;
 
        default:
-               ACPI_REPORT_ERROR(("Opcode %d is invalid\n", opcode));
+               ACPI_ERROR((AE_INFO, "Opcode %d is invalid", opcode));
                return_ACPI_STATUS(AE_AML_BAD_OPCODE);
        }
 
        /* Validate the object descriptor */
 
        if (!dest_desc) {
-               ACPI_REPORT_ERROR(("Null object descriptor pointer\n"));
+               ACPI_ERROR((AE_INFO, "Null object descriptor pointer"));
                return_ACPI_STATUS(AE_BAD_PARAMETER);
        }
 
                        switch (opcode) {
                        case AML_ARG_OP:
 
-                               ACPI_REPORT_ERROR(("Uninitialized Arg[%d] at node %p\n", index, node));
+                               ACPI_ERROR((AE_INFO,
+                                           "Uninitialized Arg[%d] at node %p",
+                                           index, node));
 
                                return_ACPI_STATUS(AE_AML_UNINITIALIZED_ARG);
 
                        case AML_LOCAL_OP:
 
-                               ACPI_REPORT_ERROR(("Uninitialized Local[%d] at node %p\n", index, node));
+                               ACPI_ERROR((AE_INFO,
+                                           "Uninitialized Local[%d] at node %p",
+                                           index, node));
 
                                return_ACPI_STATUS(AE_AML_UNINITIALIZED_LOCAL);
 
                        default:
-                               ACPI_REPORT_ERROR(("Not a Arg/Local opcode: %X\n", opcode));
+                               ACPI_ERROR((AE_INFO,
+                                           "Not a Arg/Local opcode: %X",
+                                           opcode));
                                return_ACPI_STATUS(AE_AML_INTERNAL);
                        }
        }
 
 
                                        return_ACPI_STATUS(AE_OK);
                                } else {
-                                       ACPI_REPORT_NSERROR(op->common.value.
-                                                           string, status);
+                                       ACPI_ERROR_NAMESPACE(op->common.value.
+                                                            string, status);
                                }
 
                                return_ACPI_STATUS(status);
        byte_list = arg->named.next;
        if (byte_list) {
                if (byte_list->common.aml_opcode != AML_INT_BYTELIST_OP) {
-                       ACPI_REPORT_ERROR(("Expecting bytelist, got AML opcode %X in op %p\n", byte_list->common.aml_opcode, byte_list));
+                       ACPI_ERROR((AE_INFO,
+                                   "Expecting bytelist, got AML opcode %X in op %p",
+                                   byte_list->common.aml_opcode, byte_list));
 
                        acpi_ut_remove_reference(obj_desc);
                        return (AE_TYPE);
 
                        default:
 
-                               ACPI_REPORT_ERROR(("Unknown constant opcode %X\n", opcode));
+                               ACPI_ERROR((AE_INFO,
+                                           "Unknown constant opcode %X",
+                                           opcode));
                                status = AE_AML_OPERAND_TYPE;
                                break;
                        }
                        break;
 
                default:
-                       ACPI_REPORT_ERROR(("Unknown Integer type %X\n",
-                                          op_info->type));
+                       ACPI_ERROR((AE_INFO, "Unknown Integer type %X",
+                                   op_info->type));
                        status = AE_AML_OPERAND_TYPE;
                        break;
                }
 
        default:
 
-               ACPI_REPORT_ERROR(("Unimplemented data type: %X\n",
-                                  ACPI_GET_OBJECT_TYPE(obj_desc)));
+               ACPI_ERROR((AE_INFO, "Unimplemented data type: %X",
+                           ACPI_GET_OBJECT_TYPE(obj_desc)));
 
                status = AE_AML_OPERAND_TYPE;
                break;
 
 
        node = obj_desc->buffer.node;
        if (!node) {
-               ACPI_REPORT_ERROR(("No pointer back to NS node in buffer obj %p\n", obj_desc));
+               ACPI_ERROR((AE_INFO,
+                           "No pointer back to NS node in buffer obj %p",
+                           obj_desc));
                return_ACPI_STATUS(AE_AML_INTERNAL);
        }
 
 
        node = obj_desc->package.node;
        if (!node) {
-               ACPI_REPORT_ERROR(("No pointer back to NS node in package %p\n",
-                                  obj_desc));
+               ACPI_ERROR((AE_INFO,
+                           "No pointer back to NS node in package %p",
+                           obj_desc));
                return_ACPI_STATUS(AE_AML_INTERNAL);
        }
 
        /* Host object must be a Buffer */
 
        if (ACPI_GET_OBJECT_TYPE(buffer_desc) != ACPI_TYPE_BUFFER) {
-               ACPI_REPORT_ERROR(("Target of Create Field is not a Buffer object - %s\n", acpi_ut_get_object_type_name(buffer_desc)));
+               ACPI_ERROR((AE_INFO,
+                           "Target of Create Field is not a Buffer object - %s",
+                           acpi_ut_get_object_type_name(buffer_desc)));
 
                status = AE_AML_OPERAND_TYPE;
                goto cleanup;
         * after resolution in acpi_ex_resolve_operands().
         */
        if (ACPI_GET_DESCRIPTOR_TYPE(result_desc) != ACPI_DESC_TYPE_NAMED) {
-               ACPI_REPORT_ERROR(("(%s) destination not a NS Node [%s]\n",
-                                  acpi_ps_get_opcode_name(aml_opcode),
-                                  acpi_ut_get_descriptor_name(result_desc)));
+               ACPI_ERROR((AE_INFO,
+                           "(%s) destination not a NS Node [%s]",
+                           acpi_ps_get_opcode_name(aml_opcode),
+                           acpi_ut_get_descriptor_name(result_desc)));
 
                status = AE_AML_OPERAND_TYPE;
                goto cleanup;
                /* Must have a valid (>0) bit count */
 
                if (bit_count == 0) {
-                       ACPI_REPORT_ERROR(("Attempt to create_field of length 0\n"));
+                       ACPI_ERROR((AE_INFO,
+                                   "Attempt to create_field of length zero"));
                        status = AE_AML_OPERAND_VALUE;
                        goto cleanup;
                }
 
        default:
 
-               ACPI_REPORT_ERROR(("Unknown field creation opcode %02x\n",
-                                  aml_opcode));
+               ACPI_ERROR((AE_INFO,
+                           "Unknown field creation opcode %02x", aml_opcode));
                status = AE_AML_BAD_OPCODE;
                goto cleanup;
        }
        /* Entire field must fit within the current length of the buffer */
 
        if ((bit_offset + bit_count) > (8 * (u32) buffer_desc->buffer.length)) {
-               ACPI_REPORT_ERROR(("Field [%4.4s] size %d exceeds Buffer [%4.4s] size %d (bits)\n", acpi_ut_get_node_name(result_desc), bit_offset + bit_count, acpi_ut_get_node_name(buffer_desc->buffer.node), 8 * (u32) buffer_desc->buffer.length));
+               ACPI_ERROR((AE_INFO,
+                           "Field [%4.4s] at %d exceeds Buffer [%4.4s] size %d (bits)",
+                           acpi_ut_get_node_name(result_desc),
+                           bit_offset + bit_count,
+                           acpi_ut_get_node_name(buffer_desc->buffer.node),
+                           8 * (u32) buffer_desc->buffer.length));
                status = AE_AML_BUFFER_LIMIT;
                goto cleanup;
        }
                           "after acpi_ex_resolve_operands");
 
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("(%s) bad operand(s) (%X)\n",
-                                  acpi_ps_get_opcode_name(op->common.
-                                                          aml_opcode),
-                                  status));
+               ACPI_ERROR((AE_INFO, "(%s) bad operand(s) (%X)",
+                           acpi_ps_get_opcode_name(op->common.aml_opcode),
+                           status));
 
                return_ACPI_STATUS(status);
        }
 
        default:
 
-               ACPI_REPORT_ERROR(("Unknown control opcode=%X Op=%p\n",
-                                  op->common.aml_opcode, op));
+               ACPI_ERROR((AE_INFO, "Unknown control opcode=%X Op=%p",
+                           op->common.aml_opcode, op));
 
                status = AE_AML_BAD_OPCODE;
                break;
 
        /* Must have both an Op and a Result Object */
 
        if (!op) {
-               ACPI_REPORT_ERROR(("Null Op\n"));
+               ACPI_ERROR((AE_INFO, "Null Op"));
                return_UINT8(TRUE);
        }
 
        parent_info =
            acpi_ps_get_opcode_info(op->common.parent->common.aml_opcode);
        if (parent_info->class == AML_CLASS_UNKNOWN) {
-               ACPI_REPORT_ERROR(("Unknown parent opcode Op=%p\n", op));
+               ACPI_ERROR((AE_INFO, "Unknown parent opcode Op=%p", op));
                return_UINT8(FALSE);
        }
 
        ACPI_FUNCTION_TRACE_PTR("ds_delete_result_if_not_used", result_obj);
 
        if (!op) {
-               ACPI_REPORT_ERROR(("Null Op\n"));
+               ACPI_ERROR((AE_INFO, "Null Op"));
                return_VOID;
        }
 
                        }
 
                        if (ACPI_FAILURE(status)) {
-                               ACPI_REPORT_NSERROR(name_string, status);
+                               ACPI_ERROR_NAMESPACE(name_string, status);
                        }
                }
 
                                 * Only error is underflow, and this indicates
                                 * a missing or null operand!
                                 */
-                               ACPI_REPORT_ERROR(("Missing or null operand, %s\n", acpi_format_exception(status)));
+                               ACPI_EXCEPTION((AE_INFO, status,
+                                               "Missing or null operand"));
                                return_ACPI_STATUS(status);
                        }
                } else {
         */
        (void)acpi_ds_obj_stack_pop_and_delete(arg_count, walk_state);
 
-       ACPI_REPORT_ERROR(("While creating Arg %d - %s\n",
-                          (arg_count + 1), acpi_format_exception(status)));
+       ACPI_EXCEPTION((AE_INFO, status, "While creating Arg %d",
+                       (arg_count + 1)));
        return_ACPI_STATUS(status);
 }
 
        if (result_obj) {
                status = acpi_ds_result_pop(&obj_desc, walk_state);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not get result from predicate evaluation, %s\n", acpi_format_exception(status)));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "Could not get result from predicate evaluation"));
 
                        return_ACPI_STATUS(status);
                }
        }
 
        if (!obj_desc) {
-               ACPI_REPORT_ERROR(("No predicate obj_desc=%p State=%p\n",
-                                  obj_desc, walk_state));
+               ACPI_ERROR((AE_INFO,
+                           "No predicate obj_desc=%p State=%p",
+                           obj_desc, walk_state));
 
                return_ACPI_STATUS(AE_AML_NO_OPERAND);
        }
        }
 
        if (ACPI_GET_OBJECT_TYPE(local_obj_desc) != ACPI_TYPE_INTEGER) {
-               ACPI_REPORT_ERROR(("Bad predicate (not an integer) obj_desc=%p State=%p Type=%X\n", obj_desc, walk_state, ACPI_GET_OBJECT_TYPE(obj_desc)));
+               ACPI_ERROR((AE_INFO,
+                           "Bad predicate (not an integer) obj_desc=%p State=%p Type=%X",
+                           obj_desc, walk_state,
+                           ACPI_GET_OBJECT_TYPE(obj_desc)));
 
                status = AE_AML_OPERAND_TYPE;
                goto cleanup;
        op_class = walk_state->op_info->class;
 
        if (op_class == AML_CLASS_UNKNOWN) {
-               ACPI_REPORT_ERROR(("Unknown opcode %X\n",
-                                  op->common.aml_opcode));
+               ACPI_ERROR((AE_INFO, "Unknown opcode %X",
+                           op->common.aml_opcode));
                return_ACPI_STATUS(AE_NOT_IMPLEMENTED);
        }
 
                                walk_state->operands[1]->reference.offset)) {
                                status = AE_OK;
                        } else {
-                               ACPI_REPORT_ERROR(("[%s]: Could not resolve operands, %s\n", acpi_ps_get_opcode_name(walk_state->opcode), acpi_format_exception(status)));
+                               ACPI_EXCEPTION((AE_INFO, status,
+                                               "While resolving operands for [%s]",
+                                               acpi_ps_get_opcode_name
+                                               (walk_state->opcode)));
                        }
                }
 
 
                case AML_TYPE_UNDEFINED:
 
-                       ACPI_REPORT_ERROR(("Undefined opcode type Op=%p\n",
-                                          op));
+                       ACPI_ERROR((AE_INFO,
+                                   "Undefined opcode type Op=%p", op));
                        return_ACPI_STATUS(AE_NOT_IMPLEMENTED);
 
                case AML_TYPE_BOGUS:
 
                default:
 
-                       ACPI_REPORT_ERROR(("Unimplemented opcode, class=%X type=%X Opcode=%X Op=%p\n", op_class, op_type, op->common.aml_opcode, op));
+                       ACPI_ERROR((AE_INFO,
+                                   "Unimplemented opcode, class=%X type=%X Opcode=%X Op=%p",
+                                   op_class, op_type, op->common.aml_opcode,
+                                   op));
 
                        status = AE_NOT_IMPLEMENTED;
                        break;
 
                }
 #endif
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_NSERROR(path, status);
+                       ACPI_ERROR_NAMESPACE(path, status);
                        return_ACPI_STATUS(status);
                }
 
 
                        /* All other types are an error */
 
-                       ACPI_REPORT_ERROR(("Invalid type (%s) for target of Scope operator [%4.4s] (Cannot override)\n", acpi_ut_get_type_name(node->type), path));
+                       ACPI_ERROR((AE_INFO,
+                                   "Invalid type (%s) for target of Scope operator [%4.4s] (Cannot override)",
+                                   acpi_ut_get_type_name(node->type), path));
 
                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                }
                                   ACPI_IMODE_LOAD_PASS1, flags, walk_state,
                                   &(node));
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_NSERROR(path, status);
+                       ACPI_ERROR_NAMESPACE(path, status);
                        return_ACPI_STATUS(status);
                }
                break;
                        if (status == AE_NOT_FOUND) {
                                status = AE_OK;
                        } else {
-                               ACPI_REPORT_NSERROR(buffer_ptr, status);
+                               ACPI_ERROR_NAMESPACE(buffer_ptr, status);
                        }
 #else
-                       ACPI_REPORT_NSERROR(buffer_ptr, status);
+                       ACPI_ERROR_NAMESPACE(buffer_ptr, status);
 #endif
                        return_ACPI_STATUS(status);
                }
                         *  Scope (DEB) { ... }
                         */
 
-                       ACPI_REPORT_WARNING(("Type override - [%4.4s] had invalid type (%s) for Scope operator, changed to (Scope)\n", buffer_ptr, acpi_ut_get_type_name(node->type)));
+                       ACPI_WARNING((AE_INFO,
+                                     "Type override - [%4.4s] had invalid type (%s) for Scope operator, changed to (Scope)",
+                                     buffer_ptr,
+                                     acpi_ut_get_type_name(node->type)));
 
                        node->type = ACPI_TYPE_ANY;
                        walk_state->scope_info->common.value = ACPI_TYPE_ANY;
 
                        /* All other types are an error */
 
-                       ACPI_REPORT_ERROR(("Invalid type (%s) for target of Scope operator [%4.4s]\n", acpi_ut_get_type_name(node->type), buffer_ptr));
+                       ACPI_ERROR((AE_INFO,
+                                   "Invalid type (%s) for target of Scope operator [%4.4s]",
+                                   acpi_ut_get_type_name(node->type),
+                                   buffer_ptr));
 
                        return (AE_AML_OPERAND_TYPE);
                }
        }
 
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_NSERROR(buffer_ptr, status);
+               ACPI_ERROR_NAMESPACE(buffer_ptr, status);
                return_ACPI_STATUS(status);
        }
 
                         */
                        op->common.node = new_node;
                } else {
-                       ACPI_REPORT_NSERROR(arg->common.value.string, status);
+                       ACPI_ERROR_NAMESPACE(arg->common.value.string, status);
                }
                break;
 
 
        if (!node) {
                /* Invalid scope   */
 
-               ACPI_REPORT_ERROR(("Null scope parameter\n"));
+               ACPI_ERROR((AE_INFO, "Null scope parameter"));
                return_ACPI_STATUS(AE_BAD_PARAMETER);
        }
 
        /* Make sure object type is valid */
 
        if (!acpi_ut_valid_object_type(type)) {
-               ACPI_REPORT_WARNING(("Invalid object type: 0x%X\n", type));
+               ACPI_WARNING((AE_INFO, "Invalid object type: 0x%X", type));
        }
 
        /* Allocate a new scope object */
 
 
        state = walk_state->results;
        if (!state) {
-               ACPI_REPORT_ERROR(("No result object pushed! State=%p\n",
-                                  walk_state));
+               ACPI_ERROR((AE_INFO, "No result object pushed! State=%p",
+                           walk_state));
                return (AE_NOT_EXIST);
        }
 
        if (index >= ACPI_OBJ_MAX_OPERAND) {
-               ACPI_REPORT_ERROR(("Index out of range: %X State=%p Num=%X\n",
-                                  index, walk_state,
-                                  state->results.num_results));
+               ACPI_ERROR((AE_INFO,
+                           "Index out of range: %X State=%p Num=%X",
+                           index, walk_state, state->results.num_results));
        }
 
        /* Check for a valid result object */
 
        if (!state->results.obj_desc[index]) {
-               ACPI_REPORT_ERROR(("Null operand! State=%p #Ops=%X, Index=%X\n",
-                                  walk_state, state->results.num_results,
-                                  index));
+               ACPI_ERROR((AE_INFO,
+                           "Null operand! State=%p #Ops=%X, Index=%X",
+                           walk_state, state->results.num_results, index));
                return (AE_AML_NO_RETURN_VALUE);
        }
 
        }
 
        if (!state->results.num_results) {
-               ACPI_REPORT_ERROR(("Result stack is empty! State=%p\n",
-                                  walk_state));
+               ACPI_ERROR((AE_INFO, "Result stack is empty! State=%p",
+                           walk_state));
                return (AE_AML_NO_RETURN_VALUE);
        }
 
                }
        }
 
-       ACPI_REPORT_ERROR(("No result objects! State=%p\n", walk_state));
+       ACPI_ERROR((AE_INFO, "No result objects! State=%p", walk_state));
        return (AE_AML_NO_RETURN_VALUE);
 }
 
 
        state = walk_state->results;
        if (!state) {
-               ACPI_REPORT_ERROR(("No result object pushed! State=%p\n",
-                                  walk_state));
+               ACPI_ERROR((AE_INFO,
+                           "No result object pushed! State=%p", walk_state));
                return (AE_NOT_EXIST);
        }
 
        if (!state->results.num_results) {
-               ACPI_REPORT_ERROR(("No result objects! State=%p\n",
-                                  walk_state));
+               ACPI_ERROR((AE_INFO, "No result objects! State=%p",
+                           walk_state));
                return (AE_AML_NO_RETURN_VALUE);
        }
 
        /* Check for a valid result object */
 
        if (!*object) {
-               ACPI_REPORT_ERROR(("Null operand! State=%p #Ops=%X Index=%X\n",
-                                  walk_state, state->results.num_results,
-                                  (u32) index));
+               ACPI_ERROR((AE_INFO,
+                           "Null operand! State=%p #Ops=%X Index=%X",
+                           walk_state, state->results.num_results,
+                           (u32) index));
                return (AE_AML_NO_RETURN_VALUE);
        }
 
 
        state = walk_state->results;
        if (!state) {
-               ACPI_REPORT_ERROR(("No result stack frame during push\n"));
+               ACPI_ERROR((AE_INFO, "No result stack frame during push"));
                return (AE_AML_INTERNAL);
        }
 
        if (state->results.num_results == ACPI_OBJ_NUM_OPERANDS) {
-               ACPI_REPORT_ERROR(("Result stack overflow: Obj=%p State=%p Num=%X\n", object, walk_state, state->results.num_results));
+               ACPI_ERROR((AE_INFO,
+                           "Result stack overflow: Obj=%p State=%p Num=%X",
+                           object, walk_state, state->results.num_results));
                return (AE_STACK_OVERFLOW);
        }
 
        if (!object) {
-               ACPI_REPORT_ERROR(("Null Object! Obj=%p State=%p Num=%X\n",
-                                  object, walk_state,
-                                  state->results.num_results));
+               ACPI_ERROR((AE_INFO,
+                           "Null Object! Obj=%p State=%p Num=%X",
+                           object, walk_state, state->results.num_results));
                return (AE_BAD_PARAMETER);
        }
 
        /* Check for stack overflow */
 
        if (walk_state->num_operands >= ACPI_OBJ_NUM_OPERANDS) {
-               ACPI_REPORT_ERROR(("Object stack overflow! Obj=%p State=%p #Ops=%X\n", object, walk_state, walk_state->num_operands));
+               ACPI_ERROR((AE_INFO,
+                           "Object stack overflow! Obj=%p State=%p #Ops=%X",
+                           object, walk_state, walk_state->num_operands));
                return (AE_STACK_OVERFLOW);
        }
 
                /* Check for stack underflow */
 
                if (walk_state->num_operands == 0) {
-                       ACPI_REPORT_ERROR(("Object stack underflow! Count=%X State=%p #Ops=%X\n", pop_count, walk_state, walk_state->num_operands));
+                       ACPI_ERROR((AE_INFO,
+                                   "Object stack underflow! Count=%X State=%p #Ops=%X",
+                                   pop_count, walk_state,
+                                   walk_state->num_operands));
                        return (AE_STACK_UNDERFLOW);
                }
 
                /* Check for stack underflow */
 
                if (walk_state->num_operands == 0) {
-                       ACPI_REPORT_ERROR(("Object stack underflow! Count=%X State=%p #Ops=%X\n", pop_count, walk_state, walk_state->num_operands));
+                       ACPI_ERROR((AE_INFO,
+                                   "Object stack underflow! Count=%X State=%p #Ops=%X",
+                                   pop_count, walk_state,
+                                   walk_state->num_operands));
                        return (AE_STACK_UNDERFLOW);
                }
 
        }
 
        if (walk_state->data_type != ACPI_DESC_TYPE_WALK) {
-               ACPI_REPORT_ERROR(("%p is not a valid walk state\n",
-                                  walk_state));
+               ACPI_ERROR((AE_INFO, "%p is not a valid walk state",
+                           walk_state));
                return;
        }
 
        if (walk_state->parser_state.scope) {
-               ACPI_REPORT_ERROR(("%p walk still has a scope list\n",
-                                  walk_state));
+               ACPI_ERROR((AE_INFO, "%p walk still has a scope list",
+                           walk_state));
        }
 
        /* Always must free any linked control states */
 
        state = walk_state->results;
        if (!state) {
-               ACPI_REPORT_ERROR(("No result object pushed! State=%p\n",
-                                  walk_state));
+               ACPI_ERROR((AE_INFO, "No result object pushed! State=%p",
+                           walk_state));
                return (AE_NOT_EXIST);
        }
 
        if (index >= ACPI_OBJ_NUM_OPERANDS) {
-               ACPI_REPORT_ERROR(("Index out of range: %X Obj=%p State=%p Num=%X\n", index, object, walk_state, state->results.num_results));
+               ACPI_ERROR((AE_INFO,
+                           "Index out of range: %X Obj=%p State=%p Num=%X",
+                           index, object, walk_state,
+                           state->results.num_results));
                return (AE_BAD_PARAMETER);
        }
 
        if (!object) {
-               ACPI_REPORT_ERROR(("Null Object! Index=%X Obj=%p State=%p Num=%X\n", index, object, walk_state, state->results.num_results));
+               ACPI_ERROR((AE_INFO,
+                           "Null Object! Index=%X Obj=%p State=%p Num=%X",
+                           index, object, walk_state,
+                           state->results.num_results));
                return (AE_BAD_PARAMETER);
        }
 
        /* Check for stack underflow */
 
        if (walk_state->num_operands == 0) {
-               ACPI_REPORT_ERROR(("Missing operand/stack empty! State=%p #Ops=%X\n", walk_state, walk_state->num_operands));
+               ACPI_ERROR((AE_INFO,
+                           "Missing operand/stack empty! State=%p #Ops=%X",
+                           walk_state, walk_state->num_operands));
                *object = NULL;
                return (AE_AML_NO_OPERAND);
        }
        /* Check for a valid operand */
 
        if (!walk_state->operands[walk_state->num_operands]) {
-               ACPI_REPORT_ERROR(("Null operand! State=%p #Ops=%X\n",
-                                  walk_state, walk_state->num_operands));
+               ACPI_ERROR((AE_INFO,
+                           "Null operand! State=%p #Ops=%X",
+                           walk_state, walk_state->num_operands));
                *object = NULL;
                return (AE_AML_NO_OPERAND);
        }
 
        /* Make sure we have ACPI tables */
 
        if (!acpi_gbl_DSDT) {
-               ACPI_REPORT_WARNING(("No ACPI tables present!\n"));
+               ACPI_WARNING((AE_INFO, "No ACPI tables present!"));
                return_ACPI_STATUS(AE_NO_ACPI_TABLES);
        }
 
         */
        status = acpi_ev_fixed_event_initialize();
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Unable to initialize fixed events, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Unable to initialize fixed events"));
                return_ACPI_STATUS(status);
        }
 
        status = acpi_ev_gpe_initialize();
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Unable to initialize general purpose events, %s\n", acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Unable to initialize general purpose events"));
                return_ACPI_STATUS(status);
        }
 
 
        status = acpi_ev_install_sci_handler();
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Unable to install System Control Interrupt Handler, %s\n", acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Unable to install System Control Interrupt handler"));
                return_ACPI_STATUS(status);
        }
 
 
        status = acpi_ev_init_global_lock_handler();
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Unable to initialize Global Lock handler, %s\n", acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Unable to initialize Global Lock handler"));
                return_ACPI_STATUS(status);
        }
 
                                        enable_register_id, 0,
                                        ACPI_MTX_DO_NOT_LOCK);
 
-               ACPI_REPORT_ERROR(("No installed handler for fixed event [%08X]\n", event));
+               ACPI_ERROR((AE_INFO,
+                           "No installed handler for fixed event [%08X]",
+                           event));
 
                return (ACPI_INTERRUPT_NOT_HANDLED);
        }
 
        u8 enabled_status_byte;
        u32 status_reg;
        u32 enable_reg;
-       acpi_native_uint flags;
+       acpi_cpu_flags flags;
        acpi_native_uint i;
        acpi_native_uint j;
 
 
                status = acpi_ns_evaluate_by_handle(&info);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("%s while evaluating method [%4.4s] for GPE[%2X]\n", acpi_format_exception(status), acpi_ut_get_node_name(local_gpe_event_info.dispatch.method_node), gpe_number));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "While evaluating method [%4.4s] for GPE[%2X]",
+                                       acpi_ut_get_node_name
+                                       (local_gpe_event_info.dispatch.
+                                        method_node), gpe_number));
                }
        }
 
            ACPI_GPE_EDGE_TRIGGERED) {
                status = acpi_hw_clear_gpe(gpe_event_info);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("%s, Unable to clear GPE[%2X]\n",
-                                          acpi_format_exception(status),
-                                          gpe_number));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "Unable to clear GPE[%2X]",
+                                       gpe_number));
                        return_UINT32(ACPI_INTERRUPT_NOT_HANDLED);
                }
        }
                    ACPI_GPE_LEVEL_TRIGGERED) {
                        status = acpi_hw_clear_gpe(gpe_event_info);
                        if (ACPI_FAILURE(status)) {
-                               ACPI_REPORT_ERROR(("%s, Unable to clear GPE[%2X]\n", acpi_format_exception(status), gpe_number));
+                               ACPI_EXCEPTION((AE_INFO, status,
+                                               "Unable to clear GPE[%2X]",
+                                               gpe_number));
                                return_UINT32(ACPI_INTERRUPT_NOT_HANDLED);
                        }
                }
                 */
                status = acpi_ev_disable_gpe(gpe_event_info);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("%s, Unable to disable GPE[%2X]\n",
-                                          acpi_format_exception(status),
-                                          gpe_number));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "Unable to disable GPE[%2X]",
+                                       gpe_number));
                        return_UINT32(ACPI_INTERRUPT_NOT_HANDLED);
                }
 
                                                     acpi_ev_asynch_execute_gpe_method,
                                                     gpe_event_info);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("%s, Unable to queue handler for GPE[%2X] - event disabled\n", acpi_format_exception(status), gpe_number));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "Unable to queue handler for GPE[%2X] - event disabled",
+                                       gpe_number));
                }
                break;
 
 
                /* No handler or method to run! */
 
-               ACPI_REPORT_ERROR(("No handler or method for GPE[%2X], disabling event\n", gpe_number));
+               ACPI_ERROR((AE_INFO,
+                           "No handler or method for GPE[%2X], disabling event",
+                           gpe_number));
 
                /*
                 * Disable the GPE.  The GPE will remain disabled until the ACPI
                 */
                status = acpi_ev_disable_gpe(gpe_event_info);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("%s, Unable to disable GPE[%2X]\n",
-                                          acpi_format_exception(status),
-                                          gpe_number));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "Unable to disable GPE[%2X]",
+                                       gpe_number));
                        return_UINT32(ACPI_INTERRUPT_NOT_HANDLED);
                }
                break;
 
                acpi_ev_set_gpe_type(gpe_event_info, ACPI_GPE_TYPE_WAKE);
 
-               ACPI_REPORT_INFO(("GPE %p was updated from wake/run to wake-only\n", gpe_event_info));
+               ACPI_INFO((AE_INFO,
+                          "GPE %p was updated from wake/run to wake-only",
+                          gpe_event_info));
 
                /* This was a wake-only GPE */
 
 
        struct acpi_gpe_block_info *gpe_block;
        struct acpi_gpe_xrupt_info *gpe_xrupt_info;
        acpi_status status = AE_OK;
-       acpi_native_uint flags;
+       acpi_cpu_flags flags;
 
        ACPI_FUNCTION_TRACE("ev_walk_gpe_list");
 
        default:
                /* Unknown method type, just ignore it! */
 
-               ACPI_REPORT_ERROR(("Unknown GPE method type: %s (name not of form _Lxx or _Exx)\n", name));
+               ACPI_ERROR((AE_INFO,
+                           "Unknown GPE method type: %s (name not of form _Lxx or _Exx)",
+                           name));
                return_ACPI_STATUS(AE_OK);
        }
 
        if (gpe_number == ACPI_UINT32_MAX) {
                /* Conversion failed; invalid method, just ignore it */
 
-               ACPI_REPORT_ERROR(("Could not extract GPE number from name: %s (name is not of form _Lxx or _Exx)\n", name));
+               ACPI_ERROR((AE_INFO,
+                           "Could not extract GPE number from name: %s (name is not of form _Lxx or _Exx)",
+                           name));
                return_ACPI_STATUS(AE_OK);
        }
 
        struct acpi_gpe_xrupt_info *next_gpe_xrupt;
        struct acpi_gpe_xrupt_info *gpe_xrupt;
        acpi_status status;
-       acpi_native_uint flags;
+       acpi_cpu_flags flags;
 
        ACPI_FUNCTION_TRACE("ev_get_gpe_xrupt_block");
 
                                                           acpi_ev_gpe_xrupt_handler,
                                                           gpe_xrupt);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not install GPE interrupt handler at level 0x%X\n", interrupt_number));
+                       ACPI_ERROR((AE_INFO,
+                                   "Could not install GPE interrupt handler at level 0x%X",
+                                   interrupt_number));
                        return_PTR(NULL);
                }
        }
 acpi_ev_delete_gpe_xrupt(struct acpi_gpe_xrupt_info *gpe_xrupt)
 {
        acpi_status status;
-       acpi_native_uint flags;
+       acpi_cpu_flags flags;
 
        ACPI_FUNCTION_TRACE("ev_delete_gpe_xrupt");
 
        struct acpi_gpe_block_info *next_gpe_block;
        struct acpi_gpe_xrupt_info *gpe_xrupt_block;
        acpi_status status;
-       acpi_native_uint flags;
+       acpi_cpu_flags flags;
 
        ACPI_FUNCTION_TRACE("ev_install_gpe_block");
 
 acpi_status acpi_ev_delete_gpe_block(struct acpi_gpe_block_info *gpe_block)
 {
        acpi_status status;
-       acpi_native_uint flags;
+       acpi_cpu_flags flags;
 
        ACPI_FUNCTION_TRACE("ev_install_gpe_block");
 
                                               sizeof(struct
                                                      acpi_gpe_register_info));
        if (!gpe_register_info) {
-               ACPI_REPORT_ERROR(("Could not allocate the gpe_register_info table\n"));
+               ACPI_ERROR((AE_INFO,
+                           "Could not allocate the gpe_register_info table"));
                return_ACPI_STATUS(AE_NO_MEMORY);
        }
 
                                             ACPI_GPE_REGISTER_WIDTH) *
                                            sizeof(struct acpi_gpe_event_info));
        if (!gpe_event_info) {
-               ACPI_REPORT_ERROR(("Could not allocate the gpe_event_info table\n"));
+               ACPI_ERROR((AE_INFO,
+                           "Could not allocate the gpe_event_info table"));
                status = AE_NO_MEMORY;
                goto error_exit;
        }
 
        status = acpi_hw_enable_runtime_gpe_block(NULL, gpe_block);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not enable GPEs in gpe_block %p\n",
-                                  gpe_block));
+               ACPI_ERROR((AE_INFO, "Could not enable GPEs in gpe_block %p",
+                           gpe_block));
        }
 
        return_ACPI_STATUS(status);
                                                  &acpi_gbl_gpe_fadt_blocks[0]);
 
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not create GPE Block 0, %s\n",
-                                          acpi_format_exception(status)));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "Could not create GPE Block 0"));
                }
        }
 
 
                if ((register_count0) &&
                    (gpe_number_max >= acpi_gbl_FADT->gpe1_base)) {
-                       ACPI_REPORT_ERROR(("GPE0 block (GPE 0 to %d) overlaps the GPE1 block (GPE %d to %d) - Ignoring GPE1\n", gpe_number_max, acpi_gbl_FADT->gpe1_base, acpi_gbl_FADT->gpe1_base + ((register_count1 * ACPI_GPE_REGISTER_WIDTH) - 1)));
+                       ACPI_ERROR((AE_INFO,
+                                   "GPE0 block (GPE 0 to %d) overlaps the GPE1 block (GPE %d to %d) - Ignoring GPE1",
+                                   gpe_number_max, acpi_gbl_FADT->gpe1_base,
+                                   acpi_gbl_FADT->gpe1_base +
+                                   ((register_count1 *
+                                     ACPI_GPE_REGISTER_WIDTH) - 1)));
 
                        /* Ignore GPE1 block by setting the register count to zero */
 
                                                     [1]);
 
                        if (ACPI_FAILURE(status)) {
-                               ACPI_REPORT_ERROR(("Could not create GPE Block 1, %s\n", acpi_format_exception(status)));
+                               ACPI_EXCEPTION((AE_INFO, status,
+                                               "Could not create GPE Block 1"));
                        }
 
                        /*
        /* Check for Max GPE number out-of-range */
 
        if (gpe_number_max > ACPI_GPE_MAX) {
-               ACPI_REPORT_ERROR(("Maximum GPE number from FADT is too large: 0x%X\n", gpe_number_max));
+               ACPI_ERROR((AE_INFO,
+                           "Maximum GPE number from FADT is too large: 0x%X",
+                           gpe_number_max));
                status = AE_BAD_VALUE;
                goto cleanup;
        }
 
                    acpi_os_signal_semaphore(acpi_gbl_global_lock_semaphore,
                                             acpi_gbl_global_lock_thread_count);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not signal Global Lock semaphore\n"));
+                       ACPI_ERROR((AE_INFO,
+                                   "Could not signal Global Lock semaphore"));
                }
        }
 }
                                                     acpi_ev_global_lock_thread,
                                                     context);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not queue Global Lock thread, %s\n", acpi_format_exception(status)));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "Could not queue Global Lock thread"));
 
                        return (ACPI_INTERRUPT_NOT_HANDLED);
                }
         * with an error.
         */
        if (status == AE_NO_HARDWARE_RESPONSE) {
-               ACPI_REPORT_ERROR(("No response from Global Lock hardware, disabling lock\n"));
+               ACPI_ERROR((AE_INFO,
+                           "No response from Global Lock hardware, disabling lock"));
 
                acpi_gbl_global_lock_present = FALSE;
                status = AE_OK;
        ACPI_FUNCTION_TRACE("ev_release_global_lock");
 
        if (!acpi_gbl_global_lock_thread_count) {
-               ACPI_REPORT_WARNING(("Cannot release HW Global Lock, it has not been acquired\n"));
+               ACPI_WARNING((AE_INFO,
+                             "Cannot release HW Global Lock, it has not been acquired"));
                return_ACPI_STATUS(AE_NOT_ACQUIRED);
        }
 
                for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++) {
                        status = acpi_disable_event((u32) i, 0);
                        if (ACPI_FAILURE(status)) {
-                               ACPI_REPORT_ERROR(("Could not disable fixed event %d\n", (u32) i));
+                               ACPI_ERROR((AE_INFO,
+                                           "Could not disable fixed event %d",
+                                           (u32) i));
                        }
                }
 
 
                status = acpi_ev_remove_sci_handler();
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not remove SCI handler\n"));
+                       ACPI_ERROR((AE_INFO, "Could not remove SCI handler"));
                }
        }
 
        if (acpi_gbl_original_mode == ACPI_SYS_MODE_LEGACY) {
                status = acpi_disable();
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_WARNING(("acpi_disable failed\n"));
+                       ACPI_WARNING((AE_INFO, "acpi_disable failed"));
                }
        }
        return_VOID;
 
 
        handler_desc = region_obj->region.handler;
        if (!handler_desc) {
-               ACPI_REPORT_ERROR(("No handler for Region [%4.4s] (%p) [%s]\n",
-                                  acpi_ut_get_node_name(region_obj->region.
-                                                        node), region_obj,
-                                  acpi_ut_get_region_name(region_obj->region.
-                                                          space_id)));
+               ACPI_ERROR((AE_INFO,
+                           "No handler for Region [%4.4s] (%p) [%s]",
+                           acpi_ut_get_node_name(region_obj->region.node),
+                           region_obj,
+                           acpi_ut_get_region_name(region_obj->region.
+                                                   space_id)));
 
                return_ACPI_STATUS(AE_NOT_EXIST);
        }
                if (!region_setup) {
                        /* No initialization routine, exit with error */
 
-                       ACPI_REPORT_ERROR(("No init routine for region(%p) [%s]\n", region_obj, acpi_ut_get_region_name(region_obj->region.space_id)));
+                       ACPI_ERROR((AE_INFO,
+                                   "No init routine for region(%p) [%s]",
+                                   region_obj,
+                                   acpi_ut_get_region_name(region_obj->region.
+                                                           space_id)));
                        return_ACPI_STATUS(AE_NOT_EXIST);
                }
 
                /* Check for failure of the Region Setup */
 
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Region Initialization: %s [%s]\n",
-                                          acpi_format_exception(status),
-                                          acpi_ut_get_region_name(region_obj->
-                                                                  region.
-                                                                  space_id)));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "During region initialization: [%s]",
+                                       acpi_ut_get_region_name(region_obj->
+                                                               region.
+                                                               space_id)));
                        return_ACPI_STATUS(status);
                }
 
                         region_obj2->extra.region_context);
 
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Handler for [%s] returned %s\n",
-                                  acpi_ut_get_region_name(region_obj->region.
-                                                          space_id),
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "Returned by Handler for [%s]",
+                               acpi_ut_get_region_name(region_obj->region.
+                                                       space_id)));
        }
 
        if (!
 
                        status = acpi_ev_execute_reg_method(region_obj, 0);
                        if (ACPI_FAILURE(status)) {
-                               ACPI_REPORT_ERROR(("%s from region _REG, [%s]\n", acpi_format_exception(status), acpi_ut_get_region_name(region_obj->region.space_id)));
+                               ACPI_EXCEPTION((AE_INFO, status,
+                                               "from region _REG, [%s]",
+                                               acpi_ut_get_region_name
+                                               (region_obj->region.space_id)));
                        }
 
                        if (acpi_ns_is_locked) {
                        /* Init routine may fail, Just ignore errors */
 
                        if (ACPI_FAILURE(status)) {
-                               ACPI_REPORT_ERROR(("%s from region init, [%s]\n", acpi_format_exception(status), acpi_ut_get_region_name(region_obj->region.space_id)));
+                               ACPI_EXCEPTION((AE_INFO, status,
+                                               "from region init, [%s]",
+                                               acpi_ut_get_region_name
+                                               (region_obj->region.space_id)));
                        }
 
                        region_obj->region.flags &= ~(AOPOBJ_SETUP_COMPLETE);
 
                                                         */
                                                        status = AE_OK;
                                                } else {
-                                                       ACPI_REPORT_ERROR(("Could not install pci_config handler for Root Bridge %4.4s, %s\n", acpi_ut_get_node_name(pci_root_node), acpi_format_exception(status)));
+                                                       ACPI_EXCEPTION((AE_INFO,
+                                                                       status,
+                                                                       "Could not install pci_config handler for Root Bridge %4.4s",
+                                                                       acpi_ut_get_node_name
+                                                                       (pci_root_node)));
                                                }
                                        }
                                        break;
 
        if (ACPI_SUCCESS(status))
                status = acpi_enable_event(event, 0);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_WARNING(("Could not enable fixed event %X\n",
-                                    event));
+               ACPI_WARNING((AE_INFO, "Could not enable fixed event %X",
+                             event));
 
                /* Remove the handler */
 
        acpi_gbl_fixed_event_handlers[event].context = NULL;
 
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_WARNING(("Could not write to fixed event enable register %X\n", event));
+               ACPI_WARNING((AE_INFO,
+                             "Could not write to fixed event enable register %X",
+                             event));
        } else {
                ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Disabled fixed event %X\n",
                                  event));
        struct acpi_gpe_event_info *gpe_event_info;
        struct acpi_handler_info *handler;
        acpi_status status;
-       acpi_native_uint flags;
+       acpi_cpu_flags flags;
 
        ACPI_FUNCTION_TRACE("acpi_install_gpe_handler");
 
        struct acpi_gpe_event_info *gpe_event_info;
        struct acpi_handler_info *handler;
        acpi_status status;
-       acpi_native_uint flags;
+       acpi_cpu_flags flags;
 
        ACPI_FUNCTION_TRACE("acpi_remove_gpe_handler");
 
 
        /* Make sure we have the FADT */
 
        if (!acpi_gbl_FADT) {
-               ACPI_REPORT_WARNING(("No FADT information present!\n"));
+               ACPI_WARNING((AE_INFO, "No FADT information present!"));
                return_ACPI_STATUS(AE_NO_ACPI_TABLES);
        }
 
 
                status = acpi_hw_set_mode(ACPI_SYS_MODE_ACPI);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not transition to ACPI mode\n"));
+                       ACPI_ERROR((AE_INFO,
+                                   "Could not transition to ACPI mode"));
                        return_ACPI_STATUS(status);
                }
 
        ACPI_FUNCTION_TRACE("acpi_disable");
 
        if (!acpi_gbl_FADT) {
-               ACPI_REPORT_WARNING(("No FADT information present!\n"));
+               ACPI_WARNING((AE_INFO, "No FADT information present!"));
                return_ACPI_STATUS(AE_NO_ACPI_TABLES);
        }
 
                status = acpi_hw_set_mode(ACPI_SYS_MODE_LEGACY);
 
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not exit ACPI mode to legacy mode"));
+                       ACPI_ERROR((AE_INFO,
+                                   "Could not exit ACPI mode to legacy mode"));
                        return_ACPI_STATUS(status);
                }
 
        }
 
        if (value != 1) {
-               ACPI_REPORT_ERROR(("Could not enable %s event\n",
-                                  acpi_ut_get_event_name(event)));
+               ACPI_ERROR((AE_INFO,
+                           "Could not enable %s event",
+                           acpi_ut_get_event_name(event)));
                return_ACPI_STATUS(AE_NO_HARDWARE_RESPONSE);
        }
 
        }
 
        if (value != 0) {
-               ACPI_REPORT_ERROR(("Could not disable %s events\n",
-                                  acpi_ut_get_event_name(event)));
+               ACPI_ERROR((AE_INFO,
+                           "Could not disable %s events",
+                           acpi_ut_get_event_name(event)));
                return_ACPI_STATUS(AE_NO_HARDWARE_RESPONSE);
        }
 
 
            (!ACPI_STRNCMP(table_ptr->signature,
                           acpi_gbl_table_data[ACPI_TABLE_SSDT].signature,
                           acpi_gbl_table_data[ACPI_TABLE_SSDT].sig_length))) {
-               ACPI_REPORT_ERROR(("Table has invalid signature [%4.4s], must be SSDT or PSDT\n", table_ptr->signature));
+               ACPI_ERROR((AE_INFO,
+                           "Table has invalid signature [%4.4s], must be SSDT or PSDT",
+                           table_ptr->signature));
                status = AE_BAD_SIGNATURE;
                goto cleanup;
        }
 
                        break;
 
                default:
-                       ACPI_REPORT_ERROR(("Bad destination type during conversion: %X\n", destination_type));
+                       ACPI_ERROR((AE_INFO,
+                                   "Bad destination type during conversion: %X",
+                                   destination_type));
                        status = AE_AML_INTERNAL;
                        break;
                }
                break;
 
        default:
-               ACPI_REPORT_ERROR(("Unknown Target type ID 0x%X aml_opcode %X dest_type %s\n", GET_CURRENT_ARG_TYPE(walk_state->op_info->runtime_args), walk_state->opcode, acpi_ut_get_type_name(destination_type)));
+               ACPI_ERROR((AE_INFO,
+                           "Unknown Target type ID 0x%X aml_opcode %X dest_type %s",
+                           GET_CURRENT_ARG_TYPE(walk_state->op_info->
+                                                runtime_args),
+                           walk_state->opcode,
+                           acpi_ut_get_type_name(destination_type)));
                status = AE_AML_INTERNAL;
        }
 
 
         */
        if ((region_space >= ACPI_NUM_PREDEFINED_REGIONS) &&
            (region_space < ACPI_USER_REGION_BEGIN)) {
-               ACPI_REPORT_ERROR(("Invalid address_space type %X\n",
-                                  region_space));
+               ACPI_ERROR((AE_INFO, "Invalid address_space type %X",
+                           region_space));
                return_ACPI_STATUS(AE_AML_INVALID_SPACE_ID);
        }
 
 
                 * Source must be a buffer of sufficient size (ACPI_SMBUS_BUFFER_SIZE).
                 */
                if (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_BUFFER) {
-                       ACPI_REPORT_ERROR(("SMBus write requires Buffer, found type %s\n", acpi_ut_get_object_type_name(source_desc)));
+                       ACPI_ERROR((AE_INFO,
+                                   "SMBus write requires Buffer, found type %s",
+                                   acpi_ut_get_object_type_name(source_desc)));
 
                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                }
 
                if (source_desc->buffer.length < ACPI_SMBUS_BUFFER_SIZE) {
-                       ACPI_REPORT_ERROR(("SMBus write requires Buffer of length %X, found length %X\n", ACPI_SMBUS_BUFFER_SIZE, source_desc->buffer.length));
+                       ACPI_ERROR((AE_INFO,
+                                   "SMBus write requires Buffer of length %X, found length %X",
+                                   ACPI_SMBUS_BUFFER_SIZE,
+                                   source_desc->buffer.length));
 
                        return_ACPI_STATUS(AE_AML_BUFFER_LIMIT);
                }
 
        /* We must have a valid region */
 
        if (ACPI_GET_OBJECT_TYPE(rgn_desc) != ACPI_TYPE_REGION) {
-               ACPI_REPORT_ERROR(("Needed Region, found type %X (%s)\n",
-                                  ACPI_GET_OBJECT_TYPE(rgn_desc),
-                                  acpi_ut_get_object_type_name(rgn_desc)));
+               ACPI_ERROR((AE_INFO, "Needed Region, found type %X (%s)",
+                           ACPI_GET_OBJECT_TYPE(rgn_desc),
+                           acpi_ut_get_object_type_name(rgn_desc)));
 
                return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
        }
                         * than the region itself.  For example, a region of length one
                         * byte, and a field with Dword access specified.
                         */
-                       ACPI_REPORT_ERROR(("Field [%4.4s] access width (%d bytes) too large for region [%4.4s] (length %X)\n", acpi_ut_get_node_name(obj_desc->common_field.node), obj_desc->common_field.access_byte_width, acpi_ut_get_node_name(rgn_desc->region.node), rgn_desc->region.length));
+                       ACPI_ERROR((AE_INFO,
+                                   "Field [%4.4s] access width (%d bytes) too large for region [%4.4s] (length %X)",
+                                   acpi_ut_get_node_name(obj_desc->
+                                                         common_field.node),
+                                   obj_desc->common_field.access_byte_width,
+                                   acpi_ut_get_node_name(rgn_desc->region.
+                                                         node),
+                                   rgn_desc->region.length));
                }
 
                /*
                 * Offset rounded up to next multiple of field width
                 * exceeds region length, indicate an error
                 */
-               ACPI_REPORT_ERROR(("Field [%4.4s] Base+Offset+Width %X+%X+%X is beyond end of region [%4.4s] (length %X)\n", acpi_ut_get_node_name(obj_desc->common_field.node), obj_desc->common_field.base_byte_offset, field_datum_byte_offset, obj_desc->common_field.access_byte_width, acpi_ut_get_node_name(rgn_desc->region.node), rgn_desc->region.length));
+               ACPI_ERROR((AE_INFO,
+                           "Field [%4.4s] Base+Offset+Width %X+%X+%X is beyond end of region [%4.4s] (length %X)",
+                           acpi_ut_get_node_name(obj_desc->common_field.node),
+                           obj_desc->common_field.base_byte_offset,
+                           field_datum_byte_offset,
+                           obj_desc->common_field.access_byte_width,
+                           acpi_ut_get_node_name(rgn_desc->region.node),
+                           rgn_desc->region.length));
 
                return_ACPI_STATUS(AE_AML_REGION_LIMIT);
        }
 
        if (ACPI_FAILURE(status)) {
                if (status == AE_NOT_IMPLEMENTED) {
-                       ACPI_REPORT_ERROR(("Region %s(%X) not implemented\n",
-                                          acpi_ut_get_region_name(rgn_desc->
-                                                                  region.
-                                                                  space_id),
-                                          rgn_desc->region.space_id));
+                       ACPI_ERROR((AE_INFO,
+                                   "Region %s(%X) not implemented",
+                                   acpi_ut_get_region_name(rgn_desc->region.
+                                                           space_id),
+                                   rgn_desc->region.space_id));
                } else if (status == AE_NOT_EXIST) {
-                       ACPI_REPORT_ERROR(("Region %s(%X) has no handler\n",
-                                          acpi_ut_get_region_name(rgn_desc->
-                                                                  region.
-                                                                  space_id),
-                                          rgn_desc->region.space_id));
+                       ACPI_ERROR((AE_INFO,
+                                   "Region %s(%X) has no handler",
+                                   acpi_ut_get_region_name(rgn_desc->region.
+                                                           space_id),
+                                   rgn_desc->region.space_id));
                }
        }
 
 
        default:
 
-               ACPI_REPORT_ERROR(("Wrong object type in field I/O %X\n",
-                                  ACPI_GET_OBJECT_TYPE(obj_desc)));
+               ACPI_ERROR((AE_INFO, "Wrong object type in field I/O %X",
+                           ACPI_GET_OBJECT_TYPE(obj_desc)));
                status = AE_AML_INTERNAL;
                break;
        }
 
                default:
 
-                       ACPI_REPORT_ERROR(("Unknown update_rule value: %X\n",
-                                          (obj_desc->common_field.
-                                           field_flags &
-                                           AML_FIELD_UPDATE_RULE_MASK)));
+                       ACPI_ERROR((AE_INFO,
+                                   "Unknown update_rule value: %X",
+                                   (obj_desc->common_field.
+                                    field_flags &
+                                    AML_FIELD_UPDATE_RULE_MASK)));
                        return_ACPI_STATUS(AE_AML_OPERAND_VALUE);
                }
        }
 
        if (buffer_length <
            ACPI_ROUND_BITS_UP_TO_BYTES(obj_desc->common_field.bit_length)) {
-               ACPI_REPORT_ERROR(("Field size %X (bits) is too large for buffer (%X)\n", obj_desc->common_field.bit_length, buffer_length));
+               ACPI_ERROR((AE_INFO,
+                           "Field size %X (bits) is too large for buffer (%X)",
+                           obj_desc->common_field.bit_length, buffer_length));
 
                return_ACPI_STATUS(AE_BUFFER_OVERFLOW);
        }
 
        if (buffer_length <
            ACPI_ROUND_BITS_UP_TO_BYTES(obj_desc->common_field.bit_length)) {
-               ACPI_REPORT_ERROR(("Field size %X (bits) is too large for buffer (%X)\n", obj_desc->common_field.bit_length, buffer_length));
+               ACPI_ERROR((AE_INFO,
+                           "Field size %X (bits) is too large for buffer (%X)",
+                           obj_desc->common_field.bit_length, buffer_length));
 
                return_ACPI_STATUS(AE_BUFFER_OVERFLOW);
        }
 
 
                default:
 
-                       ACPI_REPORT_ERROR(("Unknown Reference opcode %X\n",
-                                          obj_desc->reference.opcode));
+                       ACPI_ERROR((AE_INFO, "Unknown Reference opcode %X",
+                                   obj_desc->reference.opcode));
                        return_ACPI_STATUS(AE_AML_INTERNAL);
                }
                break;
 
        default:
 
-               ACPI_REPORT_ERROR(("Invalid descriptor type %X\n",
-                                  ACPI_GET_DESCRIPTOR_TYPE(obj_desc)));
+               ACPI_ERROR((AE_INFO, "Invalid descriptor type %X",
+                           ACPI_GET_DESCRIPTOR_TYPE(obj_desc)));
                return_ACPI_STATUS(AE_TYPE);
        }
 
        u8 *end_tag;
        acpi_size length0;
        acpi_size length1;
+       acpi_size new_length;
 
        ACPI_FUNCTION_TRACE("ex_concat_template");
 
        /*
         * Find the end_tag descriptor in each resource template.
-        * Note: returned pointers point TO the end_tag, not past it.
-        *
-        * Compute the length of each resource template
+        * Note1: returned pointers point TO the end_tag, not past it.
+        * Note2: zero-length buffers are allowed; treated like one end_tag
         */
+
+       /* Get the length of the first resource template */
+
        status = acpi_ut_get_resource_end_tag(operand0, &end_tag);
        if (ACPI_FAILURE(status)) {
                return_ACPI_STATUS(status);
 
        length0 = ACPI_PTR_DIFF(end_tag, operand0->buffer.pointer);
 
+       /* Get the length of the second resource template */
+
        status = acpi_ut_get_resource_end_tag(operand1, &end_tag);
        if (ACPI_FAILURE(status)) {
                return_ACPI_STATUS(status);
        }
 
-       /* Include the end_tag in the second template length */
+       length1 = ACPI_PTR_DIFF(end_tag, operand1->buffer.pointer);
+
+       /* Combine both lengths, minimum size will be 2 for end_tag */
 
-       length1 = ACPI_PTR_DIFF(end_tag, operand1->buffer.pointer) +
-           sizeof(struct aml_resource_end_tag);
+       new_length = length0 + length1 + sizeof(struct aml_resource_end_tag);
 
-       /* Create a new buffer object for the result */
+       /* Create a new buffer object for the result (with one end_tag) */
 
-       return_desc = acpi_ut_create_buffer_object(length0 + length1);
+       return_desc = acpi_ut_create_buffer_object(new_length);
        if (!return_desc) {
                return_ACPI_STATUS(AE_NO_MEMORY);
        }
        ACPI_MEMCPY(new_buf, operand0->buffer.pointer, length0);
        ACPI_MEMCPY(new_buf + length0, operand1->buffer.pointer, length1);
 
-       /* Set the end_tag checksum to zero, means "ignore checksum" */
+       /* Insert end_tag and set the checksum to zero, means "ignore checksum" */
 
-       new_buf[return_desc->buffer.length - 1] = 0;
+       new_buf[new_length - 1] = 0;
+       new_buf[new_length - 2] = ACPI_RESOURCE_NAME_END_TAG | 1;
 
        /* Return the completed resource template */
 
                break;
 
        default:
-               ACPI_REPORT_ERROR(("Invalid object type: %X\n",
-                                  ACPI_GET_OBJECT_TYPE(operand0)));
+               ACPI_ERROR((AE_INFO, "Invalid object type: %X",
+                           ACPI_GET_OBJECT_TYPE(operand0)));
                status = AE_AML_INTERNAL;
        }
 
 
                /* Invalid object type, should not happen here */
 
-               ACPI_REPORT_ERROR(("Invalid object type: %X\n",
-                                  ACPI_GET_OBJECT_TYPE(operand0)));
+               ACPI_ERROR((AE_INFO, "Invalid object type: %X",
+                           ACPI_GET_OBJECT_TYPE(operand0)));
                status = AE_AML_INTERNAL;
                goto cleanup;
        }
 
        /* Sanity check -- we must have a valid thread ID */
 
        if (!walk_state->thread) {
-               ACPI_REPORT_ERROR(("Cannot acquire Mutex [%4.4s], null thread info\n", acpi_ut_get_node_name(obj_desc->mutex.node)));
+               ACPI_ERROR((AE_INFO,
+                           "Cannot acquire Mutex [%4.4s], null thread info",
+                           acpi_ut_get_node_name(obj_desc->mutex.node)));
                return_ACPI_STATUS(AE_AML_INTERNAL);
        }
 
         * mutex.  This mechanism provides some deadlock prevention
         */
        if (walk_state->thread->current_sync_level > obj_desc->mutex.sync_level) {
-               ACPI_REPORT_ERROR(("Cannot acquire Mutex [%4.4s], incorrect sync_level\n", acpi_ut_get_node_name(obj_desc->mutex.node)));
+               ACPI_ERROR((AE_INFO,
+                           "Cannot acquire Mutex [%4.4s], incorrect sync_level",
+                           acpi_ut_get_node_name(obj_desc->mutex.node)));
                return_ACPI_STATUS(AE_AML_MUTEX_ORDER);
        }
 
        /* The mutex must have been previously acquired in order to release it */
 
        if (!obj_desc->mutex.owner_thread) {
-               ACPI_REPORT_ERROR(("Cannot release Mutex [%4.4s], not acquired\n", acpi_ut_get_node_name(obj_desc->mutex.node)));
+               ACPI_ERROR((AE_INFO,
+                           "Cannot release Mutex [%4.4s], not acquired",
+                           acpi_ut_get_node_name(obj_desc->mutex.node)));
                return_ACPI_STATUS(AE_AML_MUTEX_NOT_ACQUIRED);
        }
 
        /* Sanity check -- we must have a valid thread ID */
 
        if (!walk_state->thread) {
-               ACPI_REPORT_ERROR(("Cannot release Mutex [%4.4s], null thread info\n", acpi_ut_get_node_name(obj_desc->mutex.node)));
+               ACPI_ERROR((AE_INFO,
+                           "Cannot release Mutex [%4.4s], null thread info",
+                           acpi_ut_get_node_name(obj_desc->mutex.node)));
                return_ACPI_STATUS(AE_AML_INTERNAL);
        }
 
        if ((obj_desc->mutex.owner_thread->thread_id !=
             walk_state->thread->thread_id)
            && (obj_desc->mutex.semaphore != acpi_gbl_global_lock_semaphore)) {
-               ACPI_REPORT_ERROR(("Thread %X cannot release Mutex [%4.4s] acquired by thread %X\n", walk_state->thread->thread_id, acpi_ut_get_node_name(obj_desc->mutex.node), obj_desc->mutex.owner_thread->thread_id));
+               ACPI_ERROR((AE_INFO,
+                           "Thread %X cannot release Mutex [%4.4s] acquired by thread %X",
+                           walk_state->thread->thread_id,
+                           acpi_ut_get_node_name(obj_desc->mutex.node),
+                           obj_desc->mutex.owner_thread->thread_id));
                return_ACPI_STATUS(AE_AML_NOT_OWNER);
        }
 
         * equal to the current sync level
         */
        if (obj_desc->mutex.sync_level > walk_state->thread->current_sync_level) {
-               ACPI_REPORT_ERROR(("Cannot release Mutex [%4.4s], incorrect sync_level\n", acpi_ut_get_node_name(obj_desc->mutex.node)));
+               ACPI_ERROR((AE_INFO,
+                           "Cannot release Mutex [%4.4s], incorrect sync_level",
+                           acpi_ut_get_node_name(obj_desc->mutex.node)));
                return_ACPI_STATUS(AE_AML_MUTEX_ORDER);
        }
 
 
         */
        name_string = ACPI_MEM_ALLOCATE(size_needed);
        if (!name_string) {
-               ACPI_REPORT_ERROR(("Could not allocate size %d\n",
-                                  size_needed));
+               ACPI_ERROR((AE_INFO,
+                           "Could not allocate size %d", size_needed));
                return_PTR(NULL);
        }
 
        char_buf[0] = *aml_address;
 
        if ('0' <= char_buf[0] && char_buf[0] <= '9') {
-               ACPI_REPORT_ERROR(("Invalid leading digit: %c\n", char_buf[0]));
+               ACPI_ERROR((AE_INFO, "Invalid leading digit: %c", char_buf[0]));
                return_ACPI_STATUS(AE_CTRL_PENDING);
        }
 
                 * the required 4
                 */
                status = AE_AML_BAD_NAME;
-               ACPI_REPORT_ERROR(("Bad character %02x in name, at %p\n",
-                                  *aml_address, aml_address));
+               ACPI_ERROR((AE_INFO,
+                           "Bad character %02x in name, at %p",
+                           *aml_address, aml_address));
        }
 
        *in_aml_address = ACPI_CAST_PTR(u8, aml_address);
        if (AE_CTRL_PENDING == status && has_prefix) {
                /* Ran out of segments after processing a prefix */
 
-               ACPI_REPORT_ERROR(("Malformed Name at %p\n", name_string));
+               ACPI_ERROR((AE_INFO, "Malformed Name at %p", name_string));
                status = AE_AML_BAD_NAME;
        }
 
 
 
        default:                /*  Unknown opcode  */
 
-               ACPI_REPORT_ERROR(("Unknown AML opcode %X\n",
-                                  walk_state->opcode));
+               ACPI_ERROR((AE_INFO, "Unknown AML opcode %X",
+                           walk_state->opcode));
                status = AE_AML_BAD_OPCODE;
                break;
        }
 
        default:                /*  Unknown opcode  */
 
-               ACPI_REPORT_ERROR(("Unknown AML opcode %X\n",
-                                  walk_state->opcode));
+               ACPI_ERROR((AE_INFO, "Unknown AML opcode %X",
+                           walk_state->opcode));
                status = AE_AML_BAD_OPCODE;
                break;
        }
 
        default:                /* Unknown opcode */
 
-               ACPI_REPORT_ERROR(("Unknown AML opcode %X\n",
-                                  walk_state->opcode));
+               ACPI_ERROR((AE_INFO, "Unknown AML opcode %X",
+                           walk_state->opcode));
                status = AE_AML_BAD_OPCODE;
                goto cleanup;
        }
                                /* Check the range of the digit */
 
                                if (temp32 > 9) {
-                                       ACPI_REPORT_ERROR(("BCD digit too large (not decimal): 0x%X\n", temp32));
+                                       ACPI_ERROR((AE_INFO,
+                                                   "BCD digit too large (not decimal): 0x%X",
+                                                   temp32));
 
                                        status = AE_AML_NUMERIC_OVERFLOW;
                                        goto cleanup;
                        /* Overflow if there is any data left in Digit */
 
                        if (digit > 0) {
-                               ACPI_REPORT_ERROR(("Integer too large to convert to BCD: %8.8X%8.8X\n", ACPI_FORMAT_UINT64(operand[0]->integer.value)));
+                               ACPI_ERROR((AE_INFO,
+                                           "Integer too large to convert to BCD: %8.8X%8.8X",
+                                           ACPI_FORMAT_UINT64(operand[0]->
+                                                              integer.value)));
                                status = AE_AML_NUMERIC_OVERFLOW;
                                goto cleanup;
                        }
 
                /* These are two obsolete opcodes */
 
-               ACPI_REPORT_ERROR(("%s is obsolete and not implemented\n",
-                                  acpi_ps_get_opcode_name(walk_state->
-                                                          opcode)));
+               ACPI_ERROR((AE_INFO,
+                           "%s is obsolete and not implemented",
+                           acpi_ps_get_opcode_name(walk_state->opcode)));
                status = AE_SUPPORT;
                goto cleanup;
 
        default:                /* Unknown opcode */
 
-               ACPI_REPORT_ERROR(("Unknown AML opcode %X\n",
-                                  walk_state->opcode));
+               ACPI_ERROR((AE_INFO, "Unknown AML opcode %X",
+                           walk_state->opcode));
                status = AE_AML_BAD_OPCODE;
                goto cleanup;
        }
                    acpi_ex_resolve_operands(AML_LNOT_OP, &temp_desc,
                                             walk_state);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("%s: bad operand(s) %s\n",
-                                          acpi_ps_get_opcode_name(walk_state->
-                                                                  opcode),
-                                          acpi_format_exception(status)));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "While resolving operands for [%s]",
+                                       acpi_ps_get_opcode_name(walk_state->
+                                                               opcode)));
 
                        goto cleanup;
                }
                        break;
 
                default:
-                       ACPI_REPORT_ERROR(("Operand is not Buf/Int/Str/Pkg - found type %s\n", acpi_ut_get_type_name(type)));
+                       ACPI_ERROR((AE_INFO,
+                                   "Operand is not Buf/Int/Str/Pkg - found type %s",
+                                   acpi_ut_get_type_name(type)));
                        status = AE_AML_OPERAND_TYPE;
                        goto cleanup;
                }
 
                                default:
 
-                                       ACPI_REPORT_ERROR(("Unknown Index target_type %X in obj %p\n", operand[0]->reference.target_type, operand[0]));
+                                       ACPI_ERROR((AE_INFO,
+                                                   "Unknown Index target_type %X in obj %p",
+                                                   operand[0]->reference.
+                                                   target_type, operand[0]));
                                        status = AE_AML_OPERAND_TYPE;
                                        goto cleanup;
                                }
                                break;
 
                        default:
-                               ACPI_REPORT_ERROR(("Unknown opcode in ref(%p) - %X\n", operand[0], operand[0]->reference.opcode));
+                               ACPI_ERROR((AE_INFO,
+                                           "Unknown opcode in ref(%p) - %X",
+                                           operand[0],
+                                           operand[0]->reference.opcode));
 
                                status = AE_TYPE;
                                goto cleanup;
 
        default:
 
-               ACPI_REPORT_ERROR(("Unknown AML opcode %X\n",
-                                  walk_state->opcode));
+               ACPI_ERROR((AE_INFO, "Unknown AML opcode %X",
+                           walk_state->opcode));
                status = AE_AML_BAD_OPCODE;
                goto cleanup;
        }
 
                /* Are notifies allowed on this object? */
 
                if (!acpi_ev_is_notify_object(node)) {
-                       ACPI_REPORT_ERROR(("Unexpected notify object type [%s]\n", acpi_ut_get_type_name(node->type)));
+                       ACPI_ERROR((AE_INFO,
+                                   "Unexpected notify object type [%s]",
+                                   acpi_ut_get_type_name(node->type)));
 
                        status = AE_AML_OPERAND_TYPE;
                        break;
 
        default:
 
-               ACPI_REPORT_ERROR(("Unknown AML opcode %X\n",
-                                  walk_state->opcode));
+               ACPI_ERROR((AE_INFO, "Unknown AML opcode %X",
+                           walk_state->opcode));
                status = AE_AML_BAD_OPCODE;
        }
 
 
        default:
 
-               ACPI_REPORT_ERROR(("Unknown AML opcode %X\n",
-                                  walk_state->opcode));
+               ACPI_ERROR((AE_INFO, "Unknown AML opcode %X",
+                           walk_state->opcode));
                status = AE_AML_BAD_OPCODE;
                goto cleanup;
        }
                        /* Object to be indexed is a Package */
 
                        if (index >= operand[0]->package.count) {
-                               ACPI_REPORT_ERROR(("Index value (%X%8.8X) beyond package end (%X)\n", ACPI_FORMAT_UINT64(index), operand[0]->package.count));
+                               ACPI_ERROR((AE_INFO,
+                                           "Index value (%X%8.8X) beyond package end (%X)",
+                                           ACPI_FORMAT_UINT64(index),
+                                           operand[0]->package.count));
                                status = AE_AML_PACKAGE_LIMIT;
                                goto cleanup;
                        }
                        /* Object to be indexed is a Buffer/String */
 
                        if (index >= operand[0]->buffer.length) {
-                               ACPI_REPORT_ERROR(("Index value (%X%8.8X) beyond end of buffer (%X)\n", ACPI_FORMAT_UINT64(index), operand[0]->buffer.length));
+                               ACPI_ERROR((AE_INFO,
+                                           "Index value (%X%8.8X) beyond end of buffer (%X)",
+                                           ACPI_FORMAT_UINT64(index),
+                                           operand[0]->buffer.length));
                                status = AE_AML_BUFFER_LIMIT;
                                goto cleanup;
                        }
 
        default:
 
-               ACPI_REPORT_ERROR(("Unknown AML opcode %X\n",
-                                  walk_state->opcode));
+               ACPI_ERROR((AE_INFO, "Unknown AML opcode %X",
+                           walk_state->opcode));
                status = AE_AML_BAD_OPCODE;
                break;
        }
 
        default:
 
-               ACPI_REPORT_ERROR(("Unknown AML opcode %X\n",
-                                  walk_state->opcode));
+               ACPI_ERROR((AE_INFO, "Unknown AML opcode %X",
+                           walk_state->opcode));
                status = AE_AML_BAD_OPCODE;
                goto cleanup;
        }
 
 
        default:
 
-               ACPI_REPORT_ERROR(("Unknown AML opcode %X\n",
-                                  walk_state->opcode));
+               ACPI_ERROR((AE_INFO, "Unknown AML opcode %X",
+                           walk_state->opcode));
                status = AE_AML_BAD_OPCODE;
                goto cleanup;
        }
 
        default:
 
-               ACPI_REPORT_ERROR(("Unknown AML opcode %X\n",
-                                  walk_state->opcode));
+               ACPI_ERROR((AE_INFO, "Unknown AML opcode %X",
+                           walk_state->opcode));
                status = AE_AML_BAD_OPCODE;
                goto cleanup;
        }
 
 
                if ((operand[1]->integer.value > MAX_MATCH_OPERATOR) ||
                    (operand[3]->integer.value > MAX_MATCH_OPERATOR)) {
-                       ACPI_REPORT_ERROR(("Match operator out of range\n"));
+                       ACPI_ERROR((AE_INFO, "Match operator out of range"));
                        status = AE_AML_OPERAND_VALUE;
                        goto cleanup;
                }
 
                index = operand[5]->integer.value;
                if (index >= operand[0]->package.count) {
-                       ACPI_REPORT_ERROR(("Index (%X%8.8X) beyond package end (%X)\n", ACPI_FORMAT_UINT64(index), operand[0]->package.count));
+                       ACPI_ERROR((AE_INFO,
+                                   "Index (%X%8.8X) beyond package end (%X)",
+                                   ACPI_FORMAT_UINT64(index),
+                                   operand[0]->package.count));
                        status = AE_AML_PACKAGE_LIMIT;
                        goto cleanup;
                }
 
        default:
 
-               ACPI_REPORT_ERROR(("Unknown AML opcode %X\n",
-                                  walk_state->opcode));
+               ACPI_ERROR((AE_INFO, "Unknown AML opcode %X",
+                           walk_state->opcode));
                status = AE_AML_BAD_OPCODE;
                goto cleanup;
        }
 
        default:
                /* Invalid field access type */
 
-               ACPI_REPORT_ERROR(("Unknown field access type %X\n", access));
+               ACPI_ERROR((AE_INFO, "Unknown field access type %X", access));
                return_UINT32(0);
        }
 
 
        if (info->field_type != ACPI_TYPE_LOCAL_INDEX_FIELD) {
                if (!info->region_node) {
-                       ACPI_REPORT_ERROR(("Null region_node\n"));
+                       ACPI_ERROR((AE_INFO, "Null region_node"));
                        return_ACPI_STATUS(AE_AML_NO_OPERAND);
                }
 
                type = acpi_ns_get_type(info->region_node);
                if (type != ACPI_TYPE_REGION) {
-                       ACPI_REPORT_ERROR(("Needed Region, found type %X (%s)\n", type, acpi_ut_get_type_name(type)));
+                       ACPI_ERROR((AE_INFO,
+                                   "Needed Region, found type %X (%s)",
+                                   type, acpi_ut_get_type_name(type)));
 
                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                }
 
        case ACPI_TYPE_LOCAL_INDEX_FIELD:
 
+               /* Get the Index and Data registers */
+
                obj_desc->index_field.index_obj =
                    acpi_ns_get_attached_object(info->register_node);
                obj_desc->index_field.data_obj =
                    acpi_ns_get_attached_object(info->data_register_node);
-               obj_desc->index_field.value = (u32)
-                   (info->field_bit_position /
-                    ACPI_MUL_8(obj_desc->field.access_byte_width));
 
                if (!obj_desc->index_field.data_obj
                    || !obj_desc->index_field.index_obj) {
-                       ACPI_REPORT_ERROR(("Null Index Object during field prep\n"));
+                       ACPI_ERROR((AE_INFO,
+                                   "Null Index Object during field prep"));
                        acpi_ut_delete_object_desc(obj_desc);
                        return_ACPI_STATUS(AE_AML_INTERNAL);
                }
                acpi_ut_add_reference(obj_desc->index_field.data_obj);
                acpi_ut_add_reference(obj_desc->index_field.index_obj);
 
+               /*
+                * The value written to the Index register is the byte offset of the
+                * target field
+                * Note: may change code to: ACPI_DIV_8 (Info->field_bit_position)
+                */
+               obj_desc->index_field.value = (u32)
+                   (info->field_bit_position /
+                    ACPI_MUL_8(obj_desc->field.access_byte_width));
+
                ACPI_DEBUG_PRINT((ACPI_DB_BFIELD,
                                  "index_field: bit_off %X, Off %X, Value %X, Gran %X, Index %p, Data %p\n",
                                  obj_desc->index_field.start_field_bit_offset,
 
                break;
 
        default:
-               ACPI_REPORT_ERROR(("Invalid system_memory width %d\n",
-                                  bit_width));
+               ACPI_ERROR((AE_INFO, "Invalid system_memory width %d",
+                           bit_width));
                return_ACPI_STATUS(AE_AML_OPERAND_VALUE);
        }
 
                                            (void **)&mem_info->
                                            mapped_logical_address);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not map memory at %8.8X%8.8X, size %X\n", ACPI_FORMAT_UINT64(address), (u32) window_size));
+                       ACPI_ERROR((AE_INFO,
+                                   "Could not map memory at %8.8X%8.8X, size %X",
+                                   ACPI_FORMAT_UINT64(address),
+                                   (u32) window_size));
                        mem_info->mapped_length = 0;
                        return_ACPI_STATUS(status);
                }
 
        }
 
        if (!source_desc) {
-               ACPI_REPORT_ERROR(("No object attached to node %p\n", node));
+               ACPI_ERROR((AE_INFO, "No object attached to node %p", node));
                return_ACPI_STATUS(AE_AML_NO_OPERAND);
        }
 
        case ACPI_TYPE_PACKAGE:
 
                if (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_PACKAGE) {
-                       ACPI_REPORT_ERROR(("Object not a Package, type %s\n",
-                                          acpi_ut_get_object_type_name
-                                          (source_desc)));
+                       ACPI_ERROR((AE_INFO, "Object not a Package, type %s",
+                                   acpi_ut_get_object_type_name(source_desc)));
                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                }
 
        case ACPI_TYPE_BUFFER:
 
                if (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_BUFFER) {
-                       ACPI_REPORT_ERROR(("Object not a Buffer, type %s\n",
-                                          acpi_ut_get_object_type_name
-                                          (source_desc)));
+                       ACPI_ERROR((AE_INFO, "Object not a Buffer, type %s",
+                                   acpi_ut_get_object_type_name(source_desc)));
                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                }
 
        case ACPI_TYPE_STRING:
 
                if (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_STRING) {
-                       ACPI_REPORT_ERROR(("Object not a String, type %s\n",
-                                          acpi_ut_get_object_type_name
-                                          (source_desc)));
+                       ACPI_ERROR((AE_INFO, "Object not a String, type %s",
+                                   acpi_ut_get_object_type_name(source_desc)));
                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                }
 
        case ACPI_TYPE_INTEGER:
 
                if (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_INTEGER) {
-                       ACPI_REPORT_ERROR(("Object not a Integer, type %s\n",
-                                          acpi_ut_get_object_type_name
-                                          (source_desc)));
+                       ACPI_ERROR((AE_INFO, "Object not a Integer, type %s",
+                                   acpi_ut_get_object_type_name(source_desc)));
                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                }
 
 
        case ACPI_TYPE_ANY:
 
-               ACPI_REPORT_ERROR(("Untyped entry %p, no attached object!\n",
-                                  node));
+               ACPI_ERROR((AE_INFO,
+                           "Untyped entry %p, no attached object!", node));
 
                return_ACPI_STATUS(AE_AML_OPERAND_TYPE);        /* Cannot be AE_TYPE */
 
                default:
                        /* No named references are allowed here */
 
-                       ACPI_REPORT_ERROR(("Unsupported Reference opcode %X (%s)\n", source_desc->reference.opcode, acpi_ps_get_opcode_name(source_desc->reference.opcode)));
+                       ACPI_ERROR((AE_INFO,
+                                   "Unsupported Reference opcode %X (%s)",
+                                   source_desc->reference.opcode,
+                                   acpi_ps_get_opcode_name(source_desc->
+                                                           reference.opcode)));
 
                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                }
 
                /* Default case is for unknown types */
 
-               ACPI_REPORT_ERROR(("Node %p - Unknown object type %X\n",
-                                  node, entry_type));
+               ACPI_ERROR((AE_INFO,
+                           "Node %p - Unknown object type %X",
+                           node, entry_type));
 
                return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
 
 
        ACPI_FUNCTION_TRACE_PTR("ex_resolve_to_value", stack_ptr);
 
        if (!stack_ptr || !*stack_ptr) {
-               ACPI_REPORT_ERROR(("Internal - null pointer\n"));
+               ACPI_ERROR((AE_INFO, "Internal - null pointer"));
                return_ACPI_STATUS(AE_AML_NO_OPERAND);
        }
 
                }
 
                if (!*stack_ptr) {
-                       ACPI_REPORT_ERROR(("Internal - null pointer\n"));
+                       ACPI_ERROR((AE_INFO, "Internal - null pointer"));
                        return_ACPI_STATUS(AE_AML_NO_OPERAND);
                }
        }
                                         * A NULL object descriptor means an unitialized element of
                                         * the package, can't dereference it
                                         */
-                                       ACPI_REPORT_ERROR(("Attempt to deref an Index to NULL pkg element Idx=%p\n", stack_desc));
+                                       ACPI_ERROR((AE_INFO,
+                                                   "Attempt to deref an Index to NULL pkg element Idx=%p",
+                                                   stack_desc));
                                        status = AE_AML_UNINITIALIZED_ELEMENT;
                                }
                                break;
 
                                /* Invalid reference object */
 
-                               ACPI_REPORT_ERROR(("Unknown target_type %X in Index/Reference obj %p\n", stack_desc->reference.target_type, stack_desc));
+                               ACPI_ERROR((AE_INFO,
+                                           "Unknown target_type %X in Index/Reference obj %p",
+                                           stack_desc->reference.target_type,
+                                           stack_desc));
                                status = AE_AML_INTERNAL;
                                break;
                        }
 
                default:
 
-                       ACPI_REPORT_ERROR(("Unknown Reference opcode %X (%s) in %p\n", opcode, acpi_ps_get_opcode_name(opcode), stack_desc));
+                       ACPI_ERROR((AE_INFO,
+                                   "Unknown Reference opcode %X (%s) in %p",
+                                   opcode, acpi_ps_get_opcode_name(opcode),
+                                   stack_desc));
                        status = AE_AML_INTERNAL;
                        break;
                }
 
                        if (ACPI_GET_DESCRIPTOR_TYPE(node) !=
                            ACPI_DESC_TYPE_NAMED) {
-                               ACPI_REPORT_ERROR(("Not a NS node %p [%s]\n",
-                                                  node,
-                                                  acpi_ut_get_descriptor_name
-                                                  (node)));
+                               ACPI_ERROR((AE_INFO, "Not a NS node %p [%s]",
+                                           node,
+                                           acpi_ut_get_descriptor_name(node)));
                                return_ACPI_STATUS(AE_AML_INTERNAL);
                        }
 
 
                        if (ACPI_GET_DESCRIPTOR_TYPE(node) !=
                            ACPI_DESC_TYPE_NAMED) {
-                               ACPI_REPORT_ERROR(("Not a NS node %p [%s]\n",
-                                                  node,
-                                                  acpi_ut_get_descriptor_name
-                                                  (node)));
+                               ACPI_ERROR((AE_INFO, "Not a NS node %p [%s]",
+                                           node,
+                                           acpi_ut_get_descriptor_name(node)));
                                return_ACPI_STATUS(AE_AML_INTERNAL);
                        }
 
 
                default:
 
-                       ACPI_REPORT_ERROR(("Unknown Reference subtype %X\n",
-                                          obj_desc->reference.opcode));
+                       ACPI_ERROR((AE_INFO,
+                                   "Unknown Reference subtype %X",
+                                   obj_desc->reference.opcode));
                        return_ACPI_STATUS(AE_AML_INTERNAL);
                }
        }
 
 #include <acpi/amlcode.h>
 #include <acpi/acparser.h>
 #include <acpi/acinterp.h>
+#include <acpi/acnamesp.h>
 
 #define _COMPONENT          ACPI_EXECUTER
 ACPI_MODULE_NAME("exresop")
        }
 
        if (type_needed != this_type) {
-               ACPI_REPORT_ERROR(("Needed type [%s], found [%s] %p\n",
-                                  acpi_ut_get_type_name(type_needed),
-                                  acpi_ut_get_type_name(this_type), object));
+               ACPI_ERROR((AE_INFO,
+                           "Needed type [%s], found [%s] %p",
+                           acpi_ut_get_type_name(type_needed),
+                           acpi_ut_get_type_name(this_type), object));
 
                return (AE_AML_OPERAND_TYPE);
        }
 
        arg_types = op_info->runtime_args;
        if (arg_types == ARGI_INVALID_OPCODE) {
-               ACPI_REPORT_ERROR(("Unknown AML opcode %X\n", opcode));
+               ACPI_ERROR((AE_INFO, "Unknown AML opcode %X", opcode));
 
                return_ACPI_STATUS(AE_AML_INTERNAL);
        }
         */
        while (GET_CURRENT_ARG_TYPE(arg_types)) {
                if (!stack_ptr || !*stack_ptr) {
-                       ACPI_REPORT_ERROR(("Null stack entry at %p\n",
-                                          stack_ptr));
+                       ACPI_ERROR((AE_INFO, "Null stack entry at %p",
+                                   stack_ptr));
 
                        return_ACPI_STATUS(AE_AML_INTERNAL);
                }
 
                        object_type =
                            ((struct acpi_namespace_node *)obj_desc)->type;
+
+                       /*
+                        * Resolve an alias object. The construction of these objects
+                        * guarantees that there is only one level of alias indirection;
+                        * thus, the attached object is always the aliased namespace node
+                        */
+                       if (object_type == ACPI_TYPE_LOCAL_ALIAS) {
+                               obj_desc =
+                                   acpi_ns_get_attached_object((struct
+                                                                acpi_namespace_node
+                                                                *)obj_desc);
+                               *stack_ptr = obj_desc;
+                               object_type =
+                                   ((struct acpi_namespace_node *)obj_desc)->
+                                   type;
+                       }
                        break;
 
                case ACPI_DESC_TYPE_OPERAND:
                        /* Check for bad acpi_object_type */
 
                        if (!acpi_ut_valid_object_type(object_type)) {
-                               ACPI_REPORT_ERROR(("Bad operand object type [%X]\n", object_type));
+                               ACPI_ERROR((AE_INFO,
+                                           "Bad operand object type [%X]",
+                                           object_type));
 
                                return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                        }
                                        break;
 
                                default:
-                                       ACPI_REPORT_ERROR(("Operand is a Reference, Unknown Reference Opcode: %X\n", obj_desc->reference.opcode));
+                                       ACPI_ERROR((AE_INFO,
+                                                   "Operand is a Reference, Unknown Reference Opcode: %X",
+                                                   obj_desc->reference.
+                                                   opcode));
 
                                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                                }
 
                        /* Invalid descriptor */
 
-                       ACPI_REPORT_ERROR(("Invalid descriptor %p [%s]\n",
-                                          obj_desc,
-                                          acpi_ut_get_descriptor_name
-                                          (obj_desc)));
+                       ACPI_ERROR((AE_INFO,
+                                   "Invalid descriptor %p [%s]",
+                                   obj_desc,
+                                   acpi_ut_get_descriptor_name(obj_desc)));
 
                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                }
                            acpi_ex_convert_to_integer(obj_desc, stack_ptr, 16);
                        if (ACPI_FAILURE(status)) {
                                if (status == AE_TYPE) {
-                                       ACPI_REPORT_ERROR(("Needed [Integer/String/Buffer], found [%s] %p\n", acpi_ut_get_object_type_name(obj_desc), obj_desc));
+                                       ACPI_ERROR((AE_INFO,
+                                                   "Needed [Integer/String/Buffer], found [%s] %p",
+                                                   acpi_ut_get_object_type_name
+                                                   (obj_desc), obj_desc));
 
                                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                                }
                        status = acpi_ex_convert_to_buffer(obj_desc, stack_ptr);
                        if (ACPI_FAILURE(status)) {
                                if (status == AE_TYPE) {
-                                       ACPI_REPORT_ERROR(("Needed [Integer/String/Buffer], found [%s] %p\n", acpi_ut_get_object_type_name(obj_desc), obj_desc));
+                                       ACPI_ERROR((AE_INFO,
+                                                   "Needed [Integer/String/Buffer], found [%s] %p",
+                                                   acpi_ut_get_object_type_name
+                                                   (obj_desc), obj_desc));
 
                                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                                }
                                                           ACPI_IMPLICIT_CONVERT_HEX);
                        if (ACPI_FAILURE(status)) {
                                if (status == AE_TYPE) {
-                                       ACPI_REPORT_ERROR(("Needed [Integer/String/Buffer], found [%s] %p\n", acpi_ut_get_object_type_name(obj_desc), obj_desc));
+                                       ACPI_ERROR((AE_INFO,
+                                                   "Needed [Integer/String/Buffer], found [%s] %p",
+                                                   acpi_ut_get_object_type_name
+                                                   (obj_desc), obj_desc));
 
                                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                                }
                                break;
 
                        default:
-                               ACPI_REPORT_ERROR(("Needed [Integer/String/Buffer], found [%s] %p\n", acpi_ut_get_object_type_name(obj_desc), obj_desc));
+                               ACPI_ERROR((AE_INFO,
+                                           "Needed [Integer/String/Buffer], found [%s] %p",
+                                           acpi_ut_get_object_type_name
+                                           (obj_desc), obj_desc));
 
                                return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                        }
                                break;
 
                        default:
-                               ACPI_REPORT_ERROR(("Needed [Integer/String/Buffer], found [%s] %p\n", acpi_ut_get_object_type_name(obj_desc), obj_desc));
+                               ACPI_ERROR((AE_INFO,
+                                           "Needed [Integer/String/Buffer], found [%s] %p",
+                                           acpi_ut_get_object_type_name
+                                           (obj_desc), obj_desc));
 
                                return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                        }
                                break;
 
                        default:
-                               ACPI_REPORT_ERROR(("Needed [Buffer/String/Package/Reference], found [%s] %p\n", acpi_ut_get_object_type_name(obj_desc), obj_desc));
+                               ACPI_ERROR((AE_INFO,
+                                           "Needed [Buffer/String/Package/Reference], found [%s] %p",
+                                           acpi_ut_get_object_type_name
+                                           (obj_desc), obj_desc));
 
                                return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                        }
                                break;
 
                        default:
-                               ACPI_REPORT_ERROR(("Needed [Buffer/String/Package], found [%s] %p\n", acpi_ut_get_object_type_name(obj_desc), obj_desc));
+                               ACPI_ERROR((AE_INFO,
+                                           "Needed [Buffer/String/Package], found [%s] %p",
+                                           acpi_ut_get_object_type_name
+                                           (obj_desc), obj_desc));
 
                                return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                        }
                                break;
 
                        default:
-                               ACPI_REPORT_ERROR(("Needed [Region/region_field], found [%s] %p\n", acpi_ut_get_object_type_name(obj_desc), obj_desc));
+                               ACPI_ERROR((AE_INFO,
+                                           "Needed [Region/region_field], found [%s] %p",
+                                           acpi_ut_get_object_type_name
+                                           (obj_desc), obj_desc));
 
                                return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                        }
                                        break;
                                }
 
-                               ACPI_REPORT_ERROR(("Needed Integer/Buffer/String/Package/Ref/Ddb], found [%s] %p\n", acpi_ut_get_object_type_name(obj_desc), obj_desc));
+                               ACPI_ERROR((AE_INFO,
+                                           "Needed Integer/Buffer/String/Package/Ref/Ddb], found [%s] %p",
+                                           acpi_ut_get_object_type_name
+                                           (obj_desc), obj_desc));
 
                                return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                        }
 
                        /* Unknown type */
 
-                       ACPI_REPORT_ERROR(("Internal - Unknown ARGI (required operand) type %X\n", this_arg_type));
+                       ACPI_ERROR((AE_INFO,
+                                   "Internal - Unknown ARGI (required operand) type %X",
+                                   this_arg_type));
 
                        return_ACPI_STATUS(AE_BAD_PARAMETER);
                }
 
        /* Validate parameters */
 
        if (!source_desc || !dest_desc) {
-               ACPI_REPORT_ERROR(("Null parameter\n"));
+               ACPI_ERROR((AE_INFO, "Null parameter"));
                return_ACPI_STATUS(AE_AML_NO_OPERAND);
        }
 
 
                /* Destination is not a Reference object */
 
-               ACPI_REPORT_ERROR(("Target is not a Reference or Constant object - %s [%p]\n", acpi_ut_get_object_type_name(dest_desc), dest_desc));
+               ACPI_ERROR((AE_INFO,
+                           "Target is not a Reference or Constant object - %s [%p]",
+                           acpi_ut_get_object_type_name(dest_desc),
+                           dest_desc));
 
                ACPI_DUMP_STACK_ENTRY(source_desc);
                ACPI_DUMP_STACK_ENTRY(dest_desc);
 
        default:
 
-               ACPI_REPORT_ERROR(("Unknown Reference opcode %X\n",
-                                  ref_desc->reference.opcode));
+               ACPI_ERROR((AE_INFO, "Unknown Reference opcode %X",
+                           ref_desc->reference.opcode));
                ACPI_DUMP_ENTRY(ref_desc, ACPI_LV_ERROR);
 
                status = AE_AML_INTERNAL;
 
                        /* All other types are invalid */
 
-                       ACPI_REPORT_ERROR(("Source must be Integer/Buffer/String type, not %s\n", acpi_ut_get_object_type_name(source_desc)));
+                       ACPI_ERROR((AE_INFO,
+                                   "Source must be Integer/Buffer/String type, not %s",
+                                   acpi_ut_get_object_type_name(source_desc)));
                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                }
 
                break;
 
        default:
-               ACPI_REPORT_ERROR(("Target is not a Package or buffer_field\n"));
+               ACPI_ERROR((AE_INFO,
+                           "Target is not a Package or buffer_field"));
                status = AE_AML_OPERAND_TYPE;
                break;
        }
 
                      && (source_desc->reference.opcode == AML_LOAD_OP))) {
                        /* Conversion successful but still not a valid type */
 
-                       ACPI_REPORT_ERROR(("Cannot assign type %s to %s (must be type Int/Str/Buf)\n", acpi_ut_get_object_type_name(source_desc), acpi_ut_get_type_name(target_type)));
+                       ACPI_ERROR((AE_INFO,
+                                   "Cannot assign type %s to %s (must be type Int/Str/Buf)",
+                                   acpi_ut_get_object_type_name(source_desc),
+                                   acpi_ut_get_type_name(target_type)));
                        status = AE_AML_OPERAND_TYPE;
                }
                break;
        case ACPI_TYPE_LOCAL_ALIAS:
        case ACPI_TYPE_LOCAL_METHOD_ALIAS:
 
-               /* Aliases are resolved by acpi_ex_prep_operands */
-
-               ACPI_REPORT_ERROR(("Store into Alias - should never happen\n"));
+               /*
+                * All aliases should have been resolved earlier, during the
+                * operand resolution phase.
+                */
+               ACPI_ERROR((AE_INFO, "Store into an unresolved Alias object"));
                status = AE_AML_INTERNAL;
                break;
 
                /*
                 * All other types come here.
                 */
-               ACPI_REPORT_WARNING(("Store into type %s not implemented\n",
-                                    acpi_ut_get_object_type_name(dest_desc)));
+               ACPI_WARNING((AE_INFO, "Store into type %s not implemented",
+                             acpi_ut_get_object_type_name(dest_desc)));
 
                status = AE_NOT_IMPLEMENTED;
                break;
 
                 * (ACPI specifies 100 usec as max, but this gives some slack in
                 * order to support existing BIOSs)
                 */
-               ACPI_REPORT_ERROR(("Time parameter is too large (%d)\n",
-                                  how_long));
+               ACPI_ERROR((AE_INFO, "Time parameter is too large (%d)",
+                           how_long));
                status = AE_AML_OPERAND_VALUE;
        } else {
                acpi_os_stall(how_long);
 
 
        status = acpi_ut_acquire_mutex(ACPI_MTX_EXECUTE);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not acquire interpreter mutex\n"));
+               ACPI_ERROR((AE_INFO, "Could not acquire interpreter mutex"));
        }
 
        return_ACPI_STATUS(status);
 
        status = acpi_ut_release_mutex(ACPI_MTX_EXECUTE);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not release interpreter mutex\n"));
+               ACPI_ERROR((AE_INFO, "Could not release interpreter mutex"));
        }
 
        return_VOID;
                if (ACPI_SUCCESS(status)) {
                        locked = TRUE;
                } else {
-                       ACPI_REPORT_ERROR(("Could not acquire Global Lock, %s\n", acpi_format_exception(status)));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "Could not acquire Global Lock"));
                }
        }
 
                if (ACPI_FAILURE(status)) {
                        /* Report the error, but there isn't much else we can do */
 
-                       ACPI_REPORT_ERROR(("Could not release ACPI Global Lock, %s\n", acpi_format_exception(status)));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "Could not release ACPI Global Lock"));
                }
        }
 
 
        /* We must have the ACPI tables by the time we get here */
 
        if (!acpi_gbl_FADT) {
-               ACPI_REPORT_ERROR(("No FADT is present\n"));
+               ACPI_ERROR((AE_INFO, "No FADT is present"));
                return_ACPI_STATUS(AE_NO_ACPI_TABLES);
        }
 
         * system does not support mode transition.
         */
        if (!acpi_gbl_FADT->smi_cmd) {
-               ACPI_REPORT_ERROR(("No SMI_CMD in FADT, mode transition failed\n"));
+               ACPI_ERROR((AE_INFO,
+                           "No SMI_CMD in FADT, mode transition failed"));
                return_ACPI_STATUS(AE_NO_HARDWARE_RESPONSE);
        }
 
         * transitions are not supported.
         */
        if (!acpi_gbl_FADT->acpi_enable && !acpi_gbl_FADT->acpi_disable) {
-               ACPI_REPORT_ERROR(("No ACPI mode transition supported in this system (enable/disable both zero)\n"));
+               ACPI_ERROR((AE_INFO,
+                           "No ACPI mode transition supported in this system (enable/disable both zero)"));
                return_ACPI_STATUS(AE_OK);
        }
 
        }
 
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not write mode change, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Could not write ACPI mode change"));
                return_ACPI_STATUS(status);
        }
 
                retry--;
        }
 
-       ACPI_REPORT_ERROR(("Hardware never changed modes\n"));
+       ACPI_ERROR((AE_INFO, "Hardware did not change modes"));
        return_ACPI_STATUS(AE_NO_HARDWARE_RESPONSE);
 }
 
 
        /* Must have a return object */
 
        if (!info.return_object) {
-               ACPI_REPORT_ERROR(("No Sleep State object returned from [%s]\n",
-                                  sleep_state_name));
+               ACPI_ERROR((AE_INFO, "No Sleep State object returned from [%s]",
+                           sleep_state_name));
                status = AE_NOT_EXIST;
        }
 
        /* It must be of type Package */
 
        else if (ACPI_GET_OBJECT_TYPE(info.return_object) != ACPI_TYPE_PACKAGE) {
-               ACPI_REPORT_ERROR(("Sleep State return object is not a Package\n"));
+               ACPI_ERROR((AE_INFO,
+                           "Sleep State return object is not a Package"));
                status = AE_AML_OPERAND_TYPE;
        }
 
         * one per sleep type (A/B).
         */
        else if (info.return_object->package.count < 2) {
-               ACPI_REPORT_ERROR(("Sleep State return package does not have at least two elements\n"));
+               ACPI_ERROR((AE_INFO,
+                           "Sleep State return package does not have at least two elements"));
                status = AE_AML_NO_OPERAND;
        }
 
                  != ACPI_TYPE_INTEGER) ||
                 (ACPI_GET_OBJECT_TYPE(info.return_object->package.elements[1])
                  != ACPI_TYPE_INTEGER)) {
-               ACPI_REPORT_ERROR(("Sleep State return package elements are not both Integers (%s, %s)\n", acpi_ut_get_object_type_name(info.return_object->package.elements[0]), acpi_ut_get_object_type_name(info.return_object->package.elements[1])));
+               ACPI_ERROR((AE_INFO,
+                           "Sleep State return package elements are not both Integers (%s, %s)",
+                           acpi_ut_get_object_type_name(info.return_object->
+                                                        package.elements[0]),
+                           acpi_ut_get_object_type_name(info.return_object->
+                                                        package.elements[1])));
                status = AE_AML_OPERAND_TYPE;
        } else {
                /* Valid _Sx_ package size, type, and value */
        }
 
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("%s While evaluating sleep_state [%s], bad Sleep object %p type %s\n", acpi_format_exception(status), sleep_state_name, info.return_object, acpi_ut_get_object_type_name(info.return_object)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "While evaluating sleep_state [%s], bad Sleep object %p type %s",
+                               sleep_state_name, info.return_object,
+                               acpi_ut_get_object_type_name(info.
+                                                            return_object)));
        }
 
        acpi_ut_remove_reference(info.return_object);
        ACPI_FUNCTION_ENTRY();
 
        if (register_id > ACPI_BITREG_MAX) {
-               ACPI_REPORT_ERROR(("Invalid bit_register ID: %X\n",
-                                  register_id));
+               ACPI_ERROR((AE_INFO, "Invalid bit_register ID: %X",
+                           register_id));
                return (NULL);
        }
 
 
        bit_reg_info = acpi_hw_get_bit_register_info(register_id);
        if (!bit_reg_info) {
-               ACPI_REPORT_ERROR(("Bad ACPI HW register_id: %X\n",
-                                  register_id));
+               ACPI_ERROR((AE_INFO, "Bad ACPI HW register_id: %X",
+                           register_id));
                return_ACPI_STATUS(AE_BAD_PARAMETER);
        }
 
                break;
 
        default:
-               ACPI_REPORT_ERROR(("Unknown Register ID: %X\n", register_id));
+               ACPI_ERROR((AE_INFO, "Unknown Register ID: %X", register_id));
                status = AE_BAD_PARAMETER;
                break;
        }
                break;
 
        default:
-               ACPI_REPORT_ERROR(("Unsupported address space: %X\n",
-                                  reg->address_space_id));
+               ACPI_ERROR((AE_INFO,
+                           "Unsupported address space: %X",
+                           reg->address_space_id));
                return (AE_BAD_PARAMETER);
        }
 
                break;
 
        default:
-               ACPI_REPORT_ERROR(("Unsupported address space: %X\n",
-                                  reg->address_space_id));
+               ACPI_ERROR((AE_INFO,
+                           "Unsupported address space: %X",
+                           reg->address_space_id));
                return (AE_BAD_PARAMETER);
        }
 
 
 
        status = acpi_evaluate_object(NULL, METHOD_NAME__SST, &arg_list, NULL);
        if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
-               ACPI_REPORT_ERROR(("Method _SST failed, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "While executing method _SST"));
        }
 
        return_ACPI_STATUS(AE_OK);
 
        if ((acpi_gbl_sleep_type_a > ACPI_SLEEP_TYPE_MAX) ||
            (acpi_gbl_sleep_type_b > ACPI_SLEEP_TYPE_MAX)) {
-               ACPI_REPORT_ERROR(("Sleep values out of range: A=%X B=%X\n",
-                                  acpi_gbl_sleep_type_a,
-                                  acpi_gbl_sleep_type_b));
+               ACPI_ERROR((AE_INFO, "Sleep values out of range: A=%X B=%X",
+                           acpi_gbl_sleep_type_a, acpi_gbl_sleep_type_b));
                return_ACPI_STATUS(AE_AML_OPERAND_VALUE);
        }
 
        arg.integer.value = ACPI_SST_WAKING;
        status = acpi_evaluate_object(NULL, METHOD_NAME__SST, &arg_list, NULL);
        if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
-               ACPI_REPORT_ERROR(("Method _SST failed, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "During Method _SST"));
        }
 
        arg.integer.value = sleep_state;
        status = acpi_evaluate_object(NULL, METHOD_NAME__BFS, &arg_list, NULL);
        if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
-               ACPI_REPORT_ERROR(("Method _BFS failed, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "During Method _BFS"));
        }
 
        status = acpi_evaluate_object(NULL, METHOD_NAME__WAK, &arg_list, NULL);
        if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
-               ACPI_REPORT_ERROR(("Method _WAK failed, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "During Method _WAK"));
        }
        /* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */
 
        arg.integer.value = ACPI_SST_WORKING;
        status = acpi_evaluate_object(NULL, METHOD_NAME__SST, &arg_list, NULL);
        if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
-               ACPI_REPORT_ERROR(("Method _SST failed, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "During Method _SST"));
        }
 
        return_ACPI_STATUS(status);
 
                                        ACPI_NS_NO_UPSEARCH, NULL, &new_node);
 
                if (ACPI_FAILURE(status) || (!new_node)) {      /* Must be on same line for code converter */
-                       ACPI_REPORT_ERROR(("Could not create predefined name %s, %s\n", init_val->name, acpi_format_exception(status)));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "Could not create predefined name %s",
+                                       init_val->name));
                }
 
                /*
                if (init_val->val) {
                        status = acpi_os_predefined_override(init_val, &val);
                        if (ACPI_FAILURE(status)) {
-                               ACPI_REPORT_ERROR(("Could not override predefined %s\n", init_val->name));
+                               ACPI_ERROR((AE_INFO,
+                                           "Could not override predefined %s",
+                                           init_val->name));
                        }
 
                        if (!val) {
 
                        default:
 
-                               ACPI_REPORT_ERROR(("Unsupported initial type value %X\n", init_val->type));
+                               ACPI_ERROR((AE_INFO,
+                                           "Unsupported initial type value %X",
+                                           init_val->type));
                                acpi_ut_remove_reference(obj_desc);
                                obj_desc = NULL;
                                continue;
                prefix_node = scope_info->scope.node;
                if (ACPI_GET_DESCRIPTOR_TYPE(prefix_node) !=
                    ACPI_DESC_TYPE_NAMED) {
-                       ACPI_REPORT_ERROR(("%p is not a namespace node [%s]\n",
-                                          prefix_node,
-                                          acpi_ut_get_descriptor_name
-                                          (prefix_node)));
+                       ACPI_ERROR((AE_INFO, "%p is not a namespace node [%s]",
+                                   prefix_node,
+                                   acpi_ut_get_descriptor_name(prefix_node)));
                        return_ACPI_STATUS(AE_AML_INTERNAL);
                }
 
                                if (!this_node) {
                                        /* Current scope has no parent scope */
 
-                                       ACPI_REPORT_ERROR(("ACPI path has too many parent prefixes (^) - reached beyond root node\n"));
+                                       ACPI_ERROR((AE_INFO,
+                                                   "ACPI path has too many parent prefixes (^) - reached beyond root node"));
                                        return_ACPI_STATUS(AE_NOT_FOUND);
                                }
                        }
                    (this_node->type != type_to_check_for)) {
                        /* Complain about a type mismatch */
 
-                       ACPI_REPORT_WARNING(("ns_lookup: Type mismatch on %4.4s (%s), searching for (%s)\n", ACPI_CAST_PTR(char, &simple_name), acpi_ut_get_type_name(this_node->type), acpi_ut_get_type_name(type_to_check_for)));
+                       ACPI_WARNING((AE_INFO,
+                                     "ns_lookup: Type mismatch on %4.4s (%s), searching for (%s)",
+                                     ACPI_CAST_PTR(char, &simple_name),
+                                     acpi_ut_get_type_name(this_node->type),
+                                     acpi_ut_get_type_name
+                                     (type_to_check_for)));
                }
 
                /*
 
                /* Grandchildren should have all been deleted already */
 
                if (child_node->child) {
-                       ACPI_REPORT_ERROR(("Found a grandchild! P=%p C=%p\n",
-                                          parent_node, child_node));
+                       ACPI_ERROR((AE_INFO, "Found a grandchild! P=%p C=%p",
+                                   parent_node, child_node));
                }
 
                /* Now we can free this child object */
                /* There should be only one reference remaining on this node */
 
                if (child_node->reference_count != 1) {
-                       ACPI_REPORT_WARNING(("Existing references (%d) on node being deleted (%p)\n", child_node->reference_count, child_node));
+                       ACPI_WARNING((AE_INFO,
+                                     "Existing references (%d) on node being deleted (%p)",
+                                     child_node->reference_count, child_node));
                }
 
                /* Now we can delete the node */
 
                /* Check the node type and name */
 
                if (type > ACPI_TYPE_LOCAL_MAX) {
-                       ACPI_REPORT_WARNING(("Invalid ACPI Object Type %08X\n",
-                                            type));
+                       ACPI_WARNING((AE_INFO, "Invalid ACPI Object Type %08X",
+                                     type));
                }
 
                if (!acpi_ut_valid_acpi_name(this_node->name.integer)) {
-                       ACPI_REPORT_WARNING(("Invalid ACPI Name %08X\n",
-                                            this_node->name.integer));
+                       ACPI_WARNING((AE_INFO, "Invalid ACPI Name %08X",
+                                     this_node->name.integer));
                }
 
                acpi_os_printf("%4.4s", acpi_ut_get_node_name(this_node));
 
 
        info->obj_desc = acpi_ns_get_attached_object(info->node);
        if (!info->obj_desc) {
-               ACPI_REPORT_ERROR(("No attached method object\n"));
+               ACPI_ERROR((AE_INFO, "No attached method object"));
 
                (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
                return_ACPI_STATUS(AE_NULL_OBJECT);
 
                                     ACPI_UINT32_MAX, acpi_ns_init_one_object,
                                     &info, NULL);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("walk_namespace failed! %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "During walk_namespace"));
        }
 
        ACPI_DEBUG_PRINT_RAW((ACPI_DB_INIT,
        (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
 
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("walk_namespace failed! %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "During walk_namespace"));
        }
 
        ACPI_DEBUG_PRINT_RAW((ACPI_DB_INIT,
-                             "\n%hd Devices found containing: %hd _STA, %hd _INI methods\n",
+                             "\n%hd Devices found - executed %hd _STA, %hd _INI methods\n",
                              info.device_count, info.num_STA, info.num_INI));
 
        return_ACPI_STATUS(status);
        }
 
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("\nCould not execute arguments for [%4.4s] (%s), %s\n", acpi_ut_get_node_name(node), acpi_ut_get_type_name(type), acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Could not execute arguments for [%4.4s] (%s)",
+                               acpi_ut_get_node_name(node),
+                               acpi_ut_get_type_name(type)));
        }
 
        /*
 #ifdef ACPI_DEBUG_OUTPUT
                char *scope_name = acpi_ns_get_external_pathname(ini_node);
 
-               ACPI_REPORT_WARNING(("%s._INI failed: %s\n",
-                                    scope_name,
-                                    acpi_format_exception(status)));
+               ACPI_WARNING((AE_INFO, "%s._INI failed: %s",
+                             scope_name, acpi_format_exception(status)));
 
                ACPI_MEM_FREE(scope_name);
 #endif
 
        /* Check validity of the AML start and length */
 
        if (!table_desc->aml_start) {
-               ACPI_REPORT_ERROR(("Null AML pointer\n"));
+               ACPI_ERROR((AE_INFO, "Null AML pointer"));
                return_ACPI_STATUS(AE_BAD_PARAMETER);
        }
 
        /* Ignore table if there is no AML contained within */
 
        if (!table_desc->aml_length) {
-               ACPI_REPORT_WARNING(("Zero-length AML block in table [%4.4s]\n",
-                                    table_desc->pointer->signature));
+               ACPI_WARNING((AE_INFO, "Zero-length AML block in table [%4.4s]",
+                             table_desc->pointer->signature));
                return_ACPI_STATUS(AE_OK);
        }
 
        /* There must be at least a DSDT installed */
 
        if (acpi_gbl_DSDT == NULL) {
-               ACPI_REPORT_ERROR(("DSDT is not in memory\n"));
+               ACPI_ERROR((AE_INFO, "DSDT is not in memory"));
                return_ACPI_STATUS(AE_NO_ACPI_TABLES);
        }
 
 
        name_buffer[index] = AML_ROOT_PREFIX;
 
        if (index != 0) {
-               ACPI_REPORT_ERROR(("Could not construct pathname; index=%X, size=%X, Path=%s\n", (u32) index, (u32) size, &name_buffer[size]));
+               ACPI_ERROR((AE_INFO,
+                           "Could not construct pathname; index=%X, size=%X, Path=%s",
+                           (u32) index, (u32) size, &name_buffer[size]));
        }
 
        return;
 
        name_buffer = ACPI_MEM_CALLOCATE(size);
        if (!name_buffer) {
-               ACPI_REPORT_ERROR(("Allocation failure\n"));
+               ACPI_ERROR((AE_INFO, "Allocation failure"));
                return_PTR(NULL);
        }
 
 
        if (!node) {
                /* Invalid handle */
 
-               ACPI_REPORT_ERROR(("Null named_obj handle\n"));
+               ACPI_ERROR((AE_INFO, "Null named_obj handle"));
                return_ACPI_STATUS(AE_BAD_PARAMETER);
        }
 
        if (!object && (ACPI_TYPE_ANY != type)) {
                /* Null object */
 
-               ACPI_REPORT_ERROR(("Null object, but type not ACPI_TYPE_ANY\n"));
+               ACPI_ERROR((AE_INFO,
+                           "Null object, but type not ACPI_TYPE_ANY"));
                return_ACPI_STATUS(AE_BAD_PARAMETER);
        }
 
        if (ACPI_GET_DESCRIPTOR_TYPE(node) != ACPI_DESC_TYPE_NAMED) {
                /* Not a name handle */
 
-               ACPI_REPORT_ERROR(("Invalid handle %p [%s]\n",
-                                  node, acpi_ut_get_descriptor_name(node)));
+               ACPI_ERROR((AE_INFO, "Invalid handle %p [%s]",
+                           node, acpi_ut_get_descriptor_name(node)));
                return_ACPI_STATUS(AE_BAD_PARAMETER);
        }
 
        ACPI_FUNCTION_TRACE_PTR("ns_get_attached_object", node);
 
        if (!node) {
-               ACPI_REPORT_WARNING(("Null Node ptr\n"));
+               ACPI_WARNING((AE_INFO, "Null Node ptr"));
                return_PTR(NULL);
        }
 
 
        /* Parameter validation */
 
        if (!node || !target_name || !return_node) {
-               ACPI_REPORT_ERROR(("Null param: Node %p Name %X return_node %p\n", node, target_name, return_node));
+               ACPI_ERROR((AE_INFO,
+                           "Null param: Node %p Name %X return_node %p",
+                           node, target_name, return_node));
                return_ACPI_STATUS(AE_BAD_PARAMETER);
        }
 
        /* Name must consist of printable characters */
 
        if (!acpi_ut_valid_acpi_name(target_name)) {
-               ACPI_REPORT_ERROR(("Bad character in ACPI Name: %X\n",
-                                  target_name));
+               ACPI_ERROR((AE_INFO, "Bad character in ACPI Name: %X",
+                           target_name));
                return_ACPI_STATUS(AE_BAD_CHARACTER);
        }
 
 
        if (lookup_status == AE_BAD_CHARACTER) {
                /* There is a non-ascii character in the name */
 
-               acpi_os_printf("[0x%4.4X] (NON-ASCII)\n",
+               acpi_os_printf("[0x%4.4X] (NON-ASCII)",
                               *(ACPI_CAST_PTR(u32, internal_name)));
        } else {
                /* Convert path to external format */
                }
        }
 
-       acpi_os_printf("Namespace lookup failure, %s\n",
+       acpi_os_printf(" Namespace lookup failure, %s\n",
                       acpi_format_exception(lookup_status));
 }
 
        ACPI_FUNCTION_TRACE("ns_get_type");
 
        if (!node) {
-               ACPI_REPORT_WARNING(("Null Node parameter\n"));
+               ACPI_WARNING((AE_INFO, "Null Node parameter"));
                return_UINT32(ACPI_TYPE_ANY);
        }
 
        if (!acpi_ut_valid_object_type(type)) {
                /* Type code out of range  */
 
-               ACPI_REPORT_WARNING(("Invalid Object Type %X\n", type));
+               ACPI_WARNING((AE_INFO, "Invalid Object Type %X", type));
                return_UINT32(ACPI_NS_NORMAL);
        }
 
         * with internal_name (invalid format).
         */
        if (required_length > internal_name_length) {
-               ACPI_REPORT_ERROR(("Invalid internal name\n"));
+               ACPI_ERROR((AE_INFO, "Invalid internal name"));
                return_ACPI_STATUS(AE_BAD_PATHNAME);
        }
 
        if (!acpi_ut_valid_object_type(type)) {
                /* type code out of range  */
 
-               ACPI_REPORT_WARNING(("Invalid Object Type %X\n", type));
+               ACPI_WARNING((AE_INFO, "Invalid Object Type %X", type));
                return_UINT32(ACPI_NS_NORMAL);
        }
 
 
        if (return_buffer->length == 0) {
                /* Error because caller specifically asked for a return value */
 
-               ACPI_REPORT_ERROR(("No return value\n"));
+               ACPI_ERROR((AE_INFO, "No return value"));
                return_ACPI_STATUS(AE_NULL_OBJECT);
        }
 
 
        /* Return object type does not match requested type */
 
-       ACPI_REPORT_ERROR(("Incorrect return type [%s] requested [%s]\n",
-                          acpi_ut_get_type_name(((union acpi_object *)
-                                                 return_buffer->pointer)->
-                                                type),
-                          acpi_ut_get_type_name(return_type)));
+       ACPI_ERROR((AE_INFO,
+                   "Incorrect return type [%s] requested [%s]",
+                   acpi_ut_get_type_name(((union acpi_object *)return_buffer->
+                                          pointer)->type),
+                   acpi_ut_get_type_name(return_type)));
 
        if (must_free) {
                /* Caller used ACPI_ALLOCATE_BUFFER, free the return buffer */
                 * qualified names above, this is an error
                 */
                if (!pathname) {
-                       ACPI_REPORT_ERROR(("Both Handle and Pathname are NULL\n"));
+                       ACPI_ERROR((AE_INFO,
+                                   "Both Handle and Pathname are NULL"));
                } else {
-                       ACPI_REPORT_ERROR(("Handle is NULL and Pathname is relative\n"));
+                       ACPI_ERROR((AE_INFO,
+                                   "Handle is NULL and Pathname is relative"));
                }
 
                status = AE_BAD_PARAMETER;
 
 
                status = acpi_ut_execute_CID(node, &cid_list);
                if (ACPI_SUCCESS(status)) {
-                       size += ((acpi_size) cid_list->count - 1) *
-                           sizeof(struct acpi_compatible_id);
+                       size += cid_list->size;
                        info->valid |= ACPI_VALID_CID;
                }
 
 
  * handle is a pointer to the spinlock_t.
  */
 
-acpi_native_uint acpi_os_acquire_lock(acpi_handle handle)
+acpi_cpu_flags acpi_os_acquire_lock(acpi_handle handle)
 {
-       unsigned long flags;
+       acpi_cpu_flags flags;
        spin_lock_irqsave((spinlock_t *) handle, flags);
        return flags;
 }
  * Release a spinlock. See above.
  */
 
-void acpi_os_release_lock(acpi_handle handle, acpi_native_uint flags)
+void acpi_os_release_lock(acpi_handle handle, acpi_cpu_flags flags)
 {
-       spin_unlock_irqrestore((spinlock_t *) handle, (unsigned long) flags);
+       spin_unlock_irqrestore((spinlock_t *) handle, flags);
 }
 
 #ifndef ACPI_USE_LOCAL_CACHE
 
                acpi_ps_append_arg(arg, name_op);
 
                if (!method_desc) {
-                       ACPI_REPORT_ERROR(("Control Method %p has no attached object\n", node));
+                       ACPI_ERROR((AE_INFO,
+                                   "Control Method %p has no attached object",
+                                   node));
                        return_ACPI_STATUS(AE_AML_INTERNAL);
                }
 
        /* Final exception check (may have been changed from code above) */
 
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_NSERROR(path, status);
+               ACPI_ERROR_NAMESPACE(path, status);
 
                if ((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) ==
                    ACPI_PARSE_EXECUTE) {
 
        default:
 
-               ACPI_REPORT_ERROR(("Invalid arg_type %X\n", arg_type));
+               ACPI_ERROR((AE_INFO, "Invalid arg_type %X", arg_type));
                return_VOID;
        }
 
 
        default:
 
-               ACPI_REPORT_ERROR(("Invalid arg_type: %X\n", arg_type));
+               ACPI_ERROR((AE_INFO, "Invalid arg_type: %X", arg_type));
                status = AE_AML_OPERAND_TYPE;
                break;
        }
 
                                    && ((status & AE_CODE_MASK) !=
                                        AE_CODE_CONTROL)) {
                                        if (status == AE_AML_NO_RETURN_VALUE) {
-                                               ACPI_REPORT_ERROR(("Invoked method did not return a value, %s\n", acpi_format_exception(status)));
+                                               ACPI_EXCEPTION((AE_INFO, status,
+                                                               "Invoked method did not return a value"));
 
                                        }
-                                       ACPI_REPORT_ERROR(("get_predicate Failed, %s\n", acpi_format_exception(status)));
+                                       ACPI_EXCEPTION((AE_INFO, status,
+                                                       "get_predicate Failed"));
                                        return_ACPI_STATUS(status);
                                }
 
 
                                /* The opcode is unrecognized.  Just skip unknown opcodes */
 
-                               ACPI_REPORT_ERROR(("Found unknown opcode %X at AML address %p offset %X, ignoring\n", walk_state->opcode, parser_state->aml, walk_state->aml_offset));
+                               ACPI_ERROR((AE_INFO,
+                                           "Found unknown opcode %X at AML address %p offset %X, ignoring",
+                                           walk_state->opcode,
+                                           parser_state->aml,
+                                           walk_state->aml_offset));
 
                                ACPI_DUMP_BUFFER(parser_state->aml, 128);
 
                                    walk_state->descending_callback(walk_state,
                                                                    &op);
                                if (ACPI_FAILURE(status)) {
-                                       ACPI_REPORT_ERROR(("During name lookup/catalog, %s\n", acpi_format_exception(status)));
+                                       ACPI_EXCEPTION((AE_INFO, status,
+                                                       "During name lookup/catalog"));
                                        goto close_this_op;
                                }
 
 
                } else if ((status != AE_OK) && (walk_state->method_desc)) {
                        /* Either the method parse or actual execution failed */
 
-                       ACPI_REPORT_MTERROR("Method parse/execution failed",
-                                           walk_state->method_node, NULL,
-                                           status);
+                       ACPI_ERROR_METHOD("Method parse/execution failed",
+                                         walk_state->method_node, NULL,
+                                         status);
 
                        /* Check for possible multi-thread reentrancy problem */
 
                                        walk_state->method_desc->method.
                                            thread_count--;
                                } else {
-                                       ACPI_REPORT_ERROR(("Invalid zero thread count in method\n"));
+                                       ACPI_ERROR((AE_INFO,
+                                                   "Invalid zero thread count in method"));
                                }
                        }
 
 
        if (op_info->class == AML_CLASS_UNKNOWN) {
                /* Invalid opcode */
 
-               ACPI_REPORT_ERROR(("Invalid AML Opcode: 0x%2.2X\n",
-                                  op->common.aml_opcode));
+               ACPI_ERROR((AE_INFO, "Invalid AML Opcode: 0x%2.2X",
+                           op->common.aml_opcode));
                return;
        }
 
 
 
                for (table_index = 0; table_index < 4 && !name_found;
                     table_index++) {
-                       if ((ACPI_TYPE_STRING ==
-                            ACPI_GET_OBJECT_TYPE(*sub_object_list))
-                           ||
-                           ((ACPI_TYPE_LOCAL_REFERENCE ==
-                             ACPI_GET_OBJECT_TYPE(*sub_object_list))
-                            && ((*sub_object_list)->reference.opcode ==
-                                AML_INT_NAMEPATH_OP))) {
+                       if (*sub_object_list && /* Null object allowed */
+                           ((ACPI_TYPE_STRING ==
+                             ACPI_GET_OBJECT_TYPE(*sub_object_list)) ||
+                            ((ACPI_TYPE_LOCAL_REFERENCE ==
+                              ACPI_GET_OBJECT_TYPE(*sub_object_list)) &&
+                             ((*sub_object_list)->reference.opcode ==
+                              AML_INT_NAMEPATH_OP)))) {
                                name_found = TRUE;
                        } else {
                                /* Look at the next element */
 
                /* Each element of the top-level package must also be a package */
 
                if (ACPI_GET_OBJECT_TYPE(*top_object_list) != ACPI_TYPE_PACKAGE) {
-                       ACPI_REPORT_ERROR(("(PRT[%X]) Need sub-package, found %s\n", index, acpi_ut_get_object_type_name(*top_object_list)));
+                       ACPI_ERROR((AE_INFO,
+                                   "(PRT[%X]) Need sub-package, found %s",
+                                   index,
+                                   acpi_ut_get_object_type_name
+                                   (*top_object_list)));
                        return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
                }
 
                /* Each sub-package must be of length 4 */
 
                if ((*top_object_list)->package.count != 4) {
-                       ACPI_REPORT_ERROR(("(PRT[%X]) Need package of length 4, found length %d\n", index, (*top_object_list)->package.count));
+                       ACPI_ERROR((AE_INFO,
+                                   "(PRT[%X]) Need package of length 4, found length %d",
+                                   index, (*top_object_list)->package.count));
                        return_ACPI_STATUS(AE_AML_PACKAGE_LIMIT);
                }
 
                if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_INTEGER) {
                        user_prt->address = obj_desc->integer.value;
                } else {
-                       ACPI_REPORT_ERROR(("(PRT[%X].Address) Need Integer, found %s\n", index, acpi_ut_get_object_type_name(obj_desc)));
+                       ACPI_ERROR((AE_INFO,
+                                   "(PRT[%X].Address) Need Integer, found %s",
+                                   index,
+                                   acpi_ut_get_object_type_name(obj_desc)));
                        return_ACPI_STATUS(AE_BAD_DATA);
                }
 
                if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_INTEGER) {
                        user_prt->pin = (u32) obj_desc->integer.value;
                } else {
-                       ACPI_REPORT_ERROR(("(PRT[%X].Pin) Need Integer, found %s\n", index, acpi_ut_get_object_type_name(obj_desc)));
+                       ACPI_ERROR((AE_INFO,
+                                   "(PRT[%X].Pin) Need Integer, found %s",
+                                   index,
+                                   acpi_ut_get_object_type_name(obj_desc)));
                        return_ACPI_STATUS(AE_BAD_DATA);
                }
 
-               /* 3) Third subobject: Dereference the PRT.source_name */
-
+               /*
+                * 3) Third subobject: Dereference the PRT.source_name
+                * The name may be unresolved (slack mode), so allow a null object
+                */
                obj_desc = sub_object_list[2];
-               switch (ACPI_GET_OBJECT_TYPE(obj_desc)) {
-               case ACPI_TYPE_LOCAL_REFERENCE:
-
-                       if (obj_desc->reference.opcode != AML_INT_NAMEPATH_OP) {
-                               ACPI_REPORT_ERROR(("(PRT[%X].Source) Need name, found reference op %X\n", index, obj_desc->reference.opcode));
+               if (obj_desc) {
+                       switch (ACPI_GET_OBJECT_TYPE(obj_desc)) {
+                       case ACPI_TYPE_LOCAL_REFERENCE:
+
+                               if (obj_desc->reference.opcode !=
+                                   AML_INT_NAMEPATH_OP) {
+                                       ACPI_ERROR((AE_INFO,
+                                                   "(PRT[%X].Source) Need name, found reference op %X",
+                                                   index,
+                                                   obj_desc->reference.
+                                                   opcode));
+                                       return_ACPI_STATUS(AE_BAD_DATA);
+                               }
+
+                               node = obj_desc->reference.node;
+
+                               /* Use *remaining* length of the buffer as max for pathname */
+
+                               path_buffer.length = output_buffer->length -
+                                   (u32) ((u8 *) user_prt->source -
+                                          (u8 *) output_buffer->pointer);
+                               path_buffer.pointer = user_prt->source;
+
+                               status =
+                                   acpi_ns_handle_to_pathname((acpi_handle)
+                                                              node,
+                                                              &path_buffer);
+
+                               /* +1 to include null terminator */
+
+                               user_prt->length +=
+                                   (u32) ACPI_STRLEN(user_prt->source) + 1;
+                               break;
+
+                       case ACPI_TYPE_STRING:
+
+                               ACPI_STRCPY(user_prt->source,
+                                           obj_desc->string.pointer);
+
+                               /*
+                                * Add to the Length field the length of the string
+                                * (add 1 for terminator)
+                                */
+                               user_prt->length += obj_desc->string.length + 1;
+                               break;
+
+                       case ACPI_TYPE_INTEGER:
+                               /*
+                                * If this is a number, then the Source Name is NULL, since the
+                                * entire buffer was zeroed out, we can leave this alone.
+                                *
+                                * Add to the Length field the length of the u32 NULL
+                                */
+                               user_prt->length += sizeof(u32);
+                               break;
+
+                       default:
+
+                               ACPI_ERROR((AE_INFO,
+                                           "(PRT[%X].Source) Need Ref/String/Integer, found %s",
+                                           index,
+                                           acpi_ut_get_object_type_name
+                                           (obj_desc)));
                                return_ACPI_STATUS(AE_BAD_DATA);
                        }
-
-                       node = obj_desc->reference.node;
-
-                       /* Use *remaining* length of the buffer as max for pathname */
-
-                       path_buffer.length = output_buffer->length -
-                           (u32) ((u8 *) user_prt->source -
-                                  (u8 *) output_buffer->pointer);
-                       path_buffer.pointer = user_prt->source;
-
-                       status =
-                           acpi_ns_handle_to_pathname((acpi_handle) node,
-                                                      &path_buffer);
-
-                       /* +1 to include null terminator */
-
-                       user_prt->length +=
-                           (u32) ACPI_STRLEN(user_prt->source) + 1;
-                       break;
-
-               case ACPI_TYPE_STRING:
-
-                       ACPI_STRCPY(user_prt->source, obj_desc->string.pointer);
-
-                       /*
-                        * Add to the Length field the length of the string
-                        * (add 1 for terminator)
-                        */
-                       user_prt->length += obj_desc->string.length + 1;
-                       break;
-
-               case ACPI_TYPE_INTEGER:
-                       /*
-                        * If this is a number, then the Source Name is NULL, since the
-                        * entire buffer was zeroed out, we can leave this alone.
-                        *
-                        * Add to the Length field the length of the u32 NULL
-                        */
-                       user_prt->length += sizeof(u32);
-                       break;
-
-               default:
-
-                       ACPI_REPORT_ERROR(("(PRT[%X].Source) Need Ref/String/Integer, found %s\n", index, acpi_ut_get_object_type_name(obj_desc)));
-                       return_ACPI_STATUS(AE_BAD_DATA);
                }
 
                /* Now align the current length */
                if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_INTEGER) {
                        user_prt->source_index = (u32) obj_desc->integer.value;
                } else {
-                       ACPI_REPORT_ERROR(("(PRT[%X].source_index) Need Integer, found %s\n", index, acpi_ut_get_object_type_name(obj_desc)));
+                       ACPI_ERROR((AE_INFO,
+                                   "(PRT[%X].source_index) Need Integer, found %s",
+                                   index,
+                                   acpi_ut_get_object_type_name(obj_desc)));
                        return_ACPI_STATUS(AE_BAD_DATA);
                }
 
 
 
 static void acpi_rs_out_string(char *title, char *value)
 {
-       acpi_os_printf("%27s : %s\n", title, value);
+       acpi_os_printf("%27s : %s", title, value);
+       if (!*value) {
+               acpi_os_printf("[NULL NAMESTRING]");
+       }
+       acpi_os_printf("\n");
 }
 
 static void acpi_rs_out_integer8(char *title, u8 value)
 
                                                    acpi_gbl_get_resource_dispatch
                                                    [resource_index]);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not convert AML resource (Type %X) to resource, %s\n", *aml, acpi_format_exception(status)));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "Could not convert AML resource (Type %X)",
+                                       *aml));
                        return_ACPI_STATUS(status);
                }
 
                /* Validate the (internal) Resource Type */
 
                if (resource->type > ACPI_RESOURCE_TYPE_MAX) {
-                       ACPI_REPORT_ERROR(("Invalid descriptor type (%X) in resource list\n", resource->type));
+                       ACPI_ERROR((AE_INFO,
+                                   "Invalid descriptor type (%X) in resource list",
+                                   resource->type));
                        return_ACPI_STATUS(AE_BAD_DATA);
                }
 
                                                         acpi_gbl_set_resource_dispatch
                                                         [resource->type]);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not convert resource (type %X) to AML, %s\n", resource->type, acpi_format_exception(status)));
+                       ACPI_EXCEPTION((AE_INFO, status,
+                                       "Could not convert resource (type %X) to AML",
+                                       resource->type));
                        return_ACPI_STATUS(status);
                }
 
 
        ACPI_FUNCTION_TRACE("rs_get_resource");
 
        if (((acpi_native_uint) resource) & 0x3) {
-               acpi_os_printf
-                   ("**** GET: Misaligned resource pointer: %p Type %2.2X Len %X\n",
-                    resource, resource->type, resource->length);
+               /* Each internal resource struct is expected to be 32-bit aligned */
+
+               ACPI_WARNING((AE_INFO,
+                             "Misaligned resource pointer (get): %p Type %2.2X Len %X",
+                             resource, resource->type, resource->length));
        }
 
        /* Extract the resource Length field (does not include header length) */
                                break;
 
                        default:
-                               acpi_os_printf
-                                   ("*** Invalid conversion sub-opcode\n");
+
+                               ACPI_ERROR((AE_INFO,
+                                           "Invalid conversion sub-opcode"));
                                return_ACPI_STATUS(AE_BAD_PARAMETER);
                        }
                        break;
 
                default:
 
-                       acpi_os_printf("*** Invalid conversion opcode\n");
+                       ACPI_ERROR((AE_INFO, "Invalid conversion opcode"));
                        return_ACPI_STATUS(AE_BAD_PARAMETER);
                }
 
                                break;
 
                        default:
-                               acpi_os_printf
-                                   ("*** Invalid conversion sub-opcode\n");
+
+                               ACPI_ERROR((AE_INFO,
+                                           "Invalid conversion sub-opcode"));
                                return_ACPI_STATUS(AE_BAD_PARAMETER);
                        }
                        break;
 
                default:
 
-                       acpi_os_printf("*** Invalid conversion opcode\n");
+                       ACPI_ERROR((AE_INFO, "Invalid conversion opcode"));
                        return_ACPI_STATUS(AE_BAD_PARAMETER);
                }
 
         * polarity/trigger interrupts are allowed (ACPI spec, section
         * "IRQ Format"), so 0x00 and 0x09 are illegal.
         */
-       ACPI_REPORT_ERROR(("Invalid interrupt polarity/trigger in resource list, %X\n", aml->irq.flags));
+       ACPI_ERROR((AE_INFO,
+                   "Invalid interrupt polarity/trigger in resource list, %X",
+                   aml->irq.flags));
        return_ACPI_STATUS(AE_BAD_DATA);
 }
 
 }
 
 if (resource->data.dma.transfer == 0x03) {
-       ACPI_REPORT_ERROR(("Invalid DMA.Transfer preference (3)\n"));
+       ACPI_ERROR((AE_INFO, "Invalid DMA.Transfer preference (3)"));
        return_ACPI_STATUS(AE_BAD_DATA);
 }
 #endif
 
         * at least as long as the version 1.0 FADT
         */
        if (acpi_gbl_FADT->length < sizeof(struct fadt_descriptor_rev1)) {
-               ACPI_REPORT_ERROR(("FADT is invalid, too short: 0x%X\n",
-                                  acpi_gbl_FADT->length));
+               ACPI_ERROR((AE_INFO, "FADT is invalid, too short: 0x%X",
+                           acpi_gbl_FADT->length));
                return_ACPI_STATUS(AE_INVALID_TABLE_LENGTH);
        }
 
                if (acpi_gbl_FADT->length < sizeof(struct fadt_descriptor_rev2)) {
                        /* Length is too short to be a V2.0 table */
 
-                       ACPI_REPORT_WARNING(("Inconsistent FADT length (0x%X) and revision (0x%X), using FADT V1.0 portion of table\n", acpi_gbl_FADT->length, acpi_gbl_FADT->revision));
+                       ACPI_WARNING((AE_INFO,
+                                     "Inconsistent FADT length (0x%X) and revision (0x%X), using FADT V1.0 portion of table",
+                                     acpi_gbl_FADT->length,
+                                     acpi_gbl_FADT->revision));
 
                        acpi_tb_convert_fadt1(local_fadt,
                                              (void *)acpi_gbl_FADT);
        /* Absolute minimum length is 24, but the ACPI spec says 64 */
 
        if (acpi_gbl_FACS->length < 24) {
-               ACPI_REPORT_ERROR(("Invalid FACS table length: 0x%X\n",
-                                  acpi_gbl_FACS->length));
+               ACPI_ERROR((AE_INFO, "Invalid FACS table length: 0x%X",
+                           acpi_gbl_FACS->length));
                return_ACPI_STATUS(AE_INVALID_TABLE_LENGTH);
        }
 
        if (acpi_gbl_FACS->length < 64) {
-               ACPI_REPORT_WARNING(("FACS is shorter than the ACPI specification allows: 0x%X, using anyway\n", acpi_gbl_FACS->length));
+               ACPI_WARNING((AE_INFO,
+                             "FACS is shorter than the ACPI specification allows: 0x%X, using anyway",
+                             acpi_gbl_FACS->length));
        }
 
        /* Copy fields to the new FACS */
 
 
        status = acpi_tb_get_table_body(address, &header, table_info);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not get ACPI table (size %X), %s\n",
-                                  header.length,
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Could not get ACPI table (size %X)",
+                               header.length));
                return_ACPI_STATUS(status);
        }
 
                                            sizeof(struct acpi_table_header),
                                            (void *)&header);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not map memory at %8.8X%8.8X for length %X\n", ACPI_FORMAT_UINT64(address->pointer.physical), sizeof(struct acpi_table_header)));
                        return_ACPI_STATUS(status);
                }
 
 
        default:
 
-               ACPI_REPORT_ERROR(("Invalid address flags %X\n",
-                                  address->pointer_type));
+               ACPI_ERROR((AE_INFO, "Invalid address flags %X",
+                           address->pointer_type));
                return_ACPI_STATUS(AE_BAD_PARAMETER);
        }
 
        if (ACPI_FAILURE(status)) {
                /* Some severe error from the OSL, but we basically ignore it */
 
-               ACPI_REPORT_ERROR(("Could not override ACPI table, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Could not override ACPI table"));
                return_ACPI_STATUS(status);
        }
 
 
        status = acpi_tb_get_this_table(&address, new_table, table_info);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not copy override ACPI table, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "Could not copy ACPI table"));
                return_ACPI_STATUS(status);
        }
 
        /* Copy the table info */
 
-       ACPI_REPORT_INFO(("Table [%4.4s] replaced by host OS\n",
-                         table_info->pointer->signature));
+       ACPI_INFO((AE_INFO, "Table [%4.4s] replaced by host OS",
+                  table_info->pointer->signature));
 
        return_ACPI_STATUS(AE_OK);
 }
 
                full_table = ACPI_MEM_ALLOCATE(header->length);
                if (!full_table) {
-                       ACPI_REPORT_ERROR(("Could not allocate table memory for [%4.4s] length %X\n", header->signature, header->length));
+                       ACPI_ERROR((AE_INFO,
+                                   "Could not allocate table memory for [%4.4s] length %X",
+                                   header->signature, header->length));
                        return_ACPI_STATUS(AE_NO_MEMORY);
                }
 
                                            (acpi_size) header->length,
                                            (void *)&full_table);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not map memory for table [%4.4s] at %8.8X%8.8X for length %X\n", header->signature, ACPI_FORMAT_UINT64(address->pointer.physical), header->length));
+                       ACPI_ERROR((AE_INFO,
+                                   "Could not map memory for table [%4.4s] at %8.8X%8.8X for length %X",
+                                   header->signature,
+                                   ACPI_FORMAT_UINT64(address->pointer.
+                                                      physical),
+                                   header->length));
                        return (status);
                }
 
 
        default:
 
-               ACPI_REPORT_ERROR(("Invalid address flags %X\n",
-                                  address->pointer_type));
+               ACPI_ERROR((AE_INFO, "Invalid address flags %X",
+                           address->pointer_type));
                return_ACPI_STATUS(AE_BAD_PARAMETER);
        }
 
 
        /* Signature must match request */
 
        if (ACPI_STRNCMP(header.signature, signature, ACPI_NAME_SIZE)) {
-               ACPI_REPORT_ERROR(("Incorrect table signature - wanted [%s] found [%4.4s]\n", signature, header.signature));
+               ACPI_ERROR((AE_INFO,
+                           "Incorrect table signature - wanted [%s] found [%4.4s]",
+                           signature, header.signature));
                return_ACPI_STATUS(AE_BAD_SIGNATURE);
        }
 
                 */
                status = acpi_tb_get_primary_table(&address, &table_info);
                if ((status != AE_OK) && (status != AE_TABLE_NOT_SUPPORTED)) {
-                       ACPI_REPORT_WARNING(("%s, while getting table at %8.8X%8.8X\n", acpi_format_exception(status), ACPI_FORMAT_UINT64(address.pointer.value)));
+                       ACPI_WARNING((AE_INFO,
+                                     "%s, while getting table at %8.8X%8.8X",
+                                     acpi_format_exception(status),
+                                     ACPI_FORMAT_UINT64(address.pointer.
+                                                        value)));
                }
        }
 
        /* We must have a FADT to continue */
 
        if (!acpi_gbl_FADT) {
-               ACPI_REPORT_ERROR(("No FADT present in RSDT/XSDT\n"));
+               ACPI_ERROR((AE_INFO, "No FADT present in RSDT/XSDT"));
                return_ACPI_STATUS(AE_NO_ACPI_TABLES);
        }
 
         */
        status = acpi_tb_convert_table_fadt();
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not convert FADT to internal common format\n"));
+               ACPI_ERROR((AE_INFO,
+                           "Could not convert FADT to internal common format"));
                return_ACPI_STATUS(status);
        }
 
 
        status = acpi_tb_get_secondary_table(&address, FACS_SIG, &table_info);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not get/install the FACS, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Could not get/install the FACS"));
                return_ACPI_STATUS(status);
        }
 
 
        status = acpi_tb_get_secondary_table(&address, DSDT_SIG, &table_info);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not get/install the DSDT\n"));
+               ACPI_ERROR((AE_INFO, "Could not get/install the DSDT"));
                return_ACPI_STATUS(status);
        }
 
 
 
        status = acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not acquire table mutex, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Could not acquire table mutex"));
                return_ACPI_STATUS(status);
        }
 
 
        status = acpi_tb_init_table_descriptor(table_info->type, table_info);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not install table [%4.4s], %s\n",
-                                  table_info->pointer->signature,
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Could not install table [%4.4s]",
+                               table_info->pointer->signature));
        }
 
        ACPI_DEBUG_PRINT((ACPI_DB_INFO, "%s located at %p\n",
 
        if (no_match) {
                /* Invalid RSDT or XSDT signature */
 
-               ACPI_REPORT_ERROR(("Invalid signature where RSDP indicates RSDT/XSDT should be located. RSDP:\n"));
+               ACPI_ERROR((AE_INFO,
+                           "Invalid signature where RSDP indicates RSDT/XSDT should be located. RSDP:"));
 
                ACPI_DUMP_BUFFER(acpi_gbl_RSDP, 20);
 
-               ACPI_REPORT_ERROR(("RSDT/XSDT signature at %X (%p) is invalid\n", acpi_gbl_RSDP->rsdt_physical_address, (void *)(acpi_native_uint) acpi_gbl_RSDP->rsdt_physical_address));
+               ACPI_ERROR((AE_INFO,
+                           "RSDT/XSDT signature at %X (%p) is invalid",
+                           acpi_gbl_RSDP->rsdt_physical_address,
+                           (void *)(acpi_native_uint) acpi_gbl_RSDP->
+                           rsdt_physical_address));
 
                if (acpi_gbl_root_table_type == ACPI_TABLE_TYPE_RSDT) {
-                       ACPI_REPORT_ERROR(("Looking for RSDT\n"))
+                       ACPI_ERROR((AE_INFO, "Looking for RSDT"));
                } else {
-                       ACPI_REPORT_ERROR(("Looking for XSDT\n"))
+                       ACPI_ERROR((AE_INFO, "Looking for XSDT"));
                }
 
                ACPI_DUMP_BUFFER((char *)table_ptr, 48);
        table_info.type = ACPI_TABLE_XSDT;
        status = acpi_tb_get_table(&address, &table_info);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not get the RSDT/XSDT, %s\n",
-                                  acpi_format_exception(status)));
-
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Could not get the RSDT/XSDT"));
                return_ACPI_STATUS(status);
        }
 
 
        /* Verify that this is a valid address */
 
        if (!acpi_os_readable(table_header, sizeof(struct acpi_table_header))) {
-               ACPI_REPORT_ERROR(("Cannot read table header at %p\n",
-                                  table_header));
+               ACPI_ERROR((AE_INFO,
+                           "Cannot read table header at %p", table_header));
 
                return (AE_BAD_ADDRESS);
        }
 
        ACPI_MOVE_32_TO_32(&signature, table_header->signature);
        if (!acpi_ut_valid_acpi_name(signature)) {
-               ACPI_REPORT_ERROR(("Table signature at %p [%p] has invalid characters\n", table_header, &signature));
+               ACPI_ERROR((AE_INFO,
+                           "Table signature at %p [%p] has invalid characters",
+                           table_header, &signature));
 
-               ACPI_REPORT_WARNING(("Invalid table signature found: [%4.4s]\n",
-                                    ACPI_CAST_PTR(char, &signature)));
+               ACPI_WARNING((AE_INFO, "Invalid table signature found: [%4.4s]",
+                             ACPI_CAST_PTR(char, &signature)));
 
                ACPI_DUMP_BUFFER(table_header,
                                 sizeof(struct acpi_table_header));
        /* Validate the table length */
 
        if (table_header->length < sizeof(struct acpi_table_header)) {
-               ACPI_REPORT_ERROR(("Invalid length in table header %p name %4.4s\n", table_header, (char *)&signature));
+               ACPI_ERROR((AE_INFO,
+                           "Invalid length in table header %p name %4.4s",
+                           table_header, (char *)&signature));
 
-               ACPI_REPORT_WARNING(("Invalid table header length (0x%X) found\n", (u32) table_header->length));
+               ACPI_WARNING((AE_INFO,
+                             "Invalid table header length (0x%X) found",
+                             (u32) table_header->length));
 
                ACPI_DUMP_BUFFER(table_header,
                                 sizeof(struct acpi_table_header));
        /* Return the appropriate exception */
 
        if (checksum) {
-               ACPI_REPORT_WARNING(("Invalid checksum in table [%4.4s] (%02X, sum %02X is not zero)\n", table_header->signature, (u32) table_header->checksum, (u32) checksum));
+               ACPI_WARNING((AE_INFO,
+                             "Invalid checksum in table [%4.4s] (%02X, sum %02X is not zero)",
+                             table_header->signature,
+                             (u32) table_header->checksum, (u32) checksum));
 
                status = AE_BAD_CHECKSUM;
        }
                }
        }
 
-       ACPI_REPORT_ERROR(("table_id=%X does not exist\n", table_id));
+       ACPI_ERROR((AE_INFO, "table_id=%X does not exist", table_id));
        return (AE_BAD_PARAMETER);
 }
 #endif
 
        status = acpi_os_get_root_pointer(ACPI_LOGICAL_ADDRESSING,
                                          &rsdp_address);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not get RSDP, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "Could not get the RSDP"));
                goto error_exit;
        }
 
 
        status = acpi_tb_verify_rsdp(&rsdp_address);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("RSDP Failed validation: %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "During RSDP validation"));
                goto error_exit;
        }
 
 
        status = acpi_tb_get_table_rsdt();
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not load RSDT: %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "Could not load RSDT"));
                goto error_exit;
        }
 
 
        status = acpi_tb_get_required_tables();
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not get all required tables (DSDT/FADT/FACS): %s\n", acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Could not get all required tables (DSDT/FADT/FACS)"));
                goto error_exit;
        }
 
 
        status = acpi_ns_load_namespace();
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not load namespace: %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "Could not load namespace"));
                goto error_exit;
        }
 
        return_ACPI_STATUS(AE_OK);
 
       error_exit:
-       ACPI_REPORT_ERROR(("Could not load tables: %s\n",
-                          acpi_format_exception(status)));
-
+       ACPI_EXCEPTION((AE_INFO, status, "Could not load tables"));
        return_ACPI_STATUS(status);
 }
 
 
 
        status = acpi_tb_find_rsdp(&table_info, flags);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("RSDP structure not found, %s Flags=%X\n",
-                                  acpi_format_exception(status), flags));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "RSDP structure not found - Flags=%X", flags));
 
                return_ACPI_STATUS(AE_NO_ACPI_TABLES);
        }
                                            ACPI_EBDA_PTR_LENGTH,
                                            (void *)&table_ptr);
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not map memory at %8.8X for length %X\n", ACPI_EBDA_PTR_LOCATION, ACPI_EBDA_PTR_LENGTH));
+                       ACPI_ERROR((AE_INFO,
+                                   "Could not map memory at %8.8X for length %X",
+                                   ACPI_EBDA_PTR_LOCATION,
+                                   ACPI_EBDA_PTR_LENGTH));
 
                        return_ACPI_STATUS(status);
                }
                                                    ACPI_EBDA_WINDOW_SIZE,
                                                    (void *)&table_ptr);
                        if (ACPI_FAILURE(status)) {
-                               ACPI_REPORT_ERROR(("Could not map memory at %8.8X for length %X\n", physical_address, ACPI_EBDA_WINDOW_SIZE));
+                               ACPI_ERROR((AE_INFO,
+                                           "Could not map memory at %8.8X for length %X",
+                                           physical_address,
+                                           ACPI_EBDA_WINDOW_SIZE));
 
                                return_ACPI_STATUS(status);
                        }
                                            (void *)&table_ptr);
 
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_ERROR(("Could not map memory at %8.8X for length %X\n", ACPI_HI_RSDP_WINDOW_BASE, ACPI_HI_RSDP_WINDOW_SIZE));
+                       ACPI_ERROR((AE_INFO,
+                                   "Could not map memory at %8.8X for length %X",
+                                   ACPI_HI_RSDP_WINDOW_BASE,
+                                   ACPI_HI_RSDP_WINDOW_SIZE));
 
                        return_ACPI_STATUS(status);
                }
 
        /* A valid RSDP was not found */
 
-       ACPI_REPORT_ERROR(("No valid RSDP was found\n"));
+       ACPI_ERROR((AE_INFO, "No valid RSDP was found"));
        return_ACPI_STATUS(AE_NOT_FOUND);
 }
 
 
        /* Check for an inadvertent size of zero bytes */
 
        if (!size) {
-               _ACPI_REPORT_ERROR(module, line,
-                                  ("ut_allocate: Attempt to allocate zero bytes, allocating 1 byte\n"));
+               ACPI_ERROR((module, line,
+                           "ut_allocate: Attempt to allocate zero bytes, allocating 1 byte"));
                size = 1;
        }
 
        if (!allocation) {
                /* Report allocation error */
 
-               _ACPI_REPORT_ERROR(module, line,
-                                  ("ut_allocate: Could not allocate size %X\n",
-                                   (u32) size));
+               ACPI_ERROR((module, line,
+                           "ut_allocate: Could not allocate size %X",
+                           (u32) size));
 
                return_PTR(NULL);
        }
        /* Check for an inadvertent size of zero bytes */
 
        if (!size) {
-               _ACPI_REPORT_ERROR(module, line,
-                                  ("ut_callocate: Attempt to allocate zero bytes, allocating 1 byte\n"));
+               ACPI_ERROR((module, line,
+                           "Attempt to allocate zero bytes, allocating 1 byte"));
                size = 1;
        }
 
        if (!allocation) {
                /* Report allocation error */
 
-               _ACPI_REPORT_ERROR(module, line,
-                                  ("ut_callocate: Could not allocate size %X\n",
-                                   (u32) size));
+               ACPI_ERROR((module, line,
+                           "Could not allocate size %X", (u32) size));
                return_PTR(NULL);
        }
 
        if (!allocation) {
                /* Report allocation error */
 
-               _ACPI_REPORT_ERROR(module, line,
-                                  ("ut_callocate: Could not allocate size %X\n",
-                                   (u32) size));
+               ACPI_ERROR((module, line,
+                           "Could not allocate size %X", (u32) size));
                return (NULL);
        }
 
        ACPI_FUNCTION_TRACE_PTR("ut_free", allocation);
 
        if (NULL == allocation) {
-               _ACPI_REPORT_ERROR(module, line,
-                                  ("acpi_ut_free: Attempt to delete a NULL address\n"));
+               ACPI_ERROR((module, line, "Attempt to delete a NULL address"));
 
                return_VOID;
        }
        status = acpi_ut_remove_allocation(debug_block,
                                           component, module, line);
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Could not free memory, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "Could not free memory"));
        }
 
        acpi_os_free(debug_block);
-
        ACPI_DEBUG_PRINT((ACPI_DB_ALLOCATIONS, "%p freed\n", allocation));
-
        return_VOID;
 }
 
         */
        element = acpi_ut_find_allocation(allocation);
        if (element) {
-               ACPI_REPORT_ERROR(("ut_track_allocation: Allocation already present in list! (%p)\n", allocation));
+               ACPI_ERROR((AE_INFO,
+                           "ut_track_allocation: Allocation already present in list! (%p)",
+                           allocation));
 
-               ACPI_REPORT_ERROR(("Element %p Address %p\n",
-                                  element, allocation));
+               ACPI_ERROR((AE_INFO, "Element %p Address %p",
+                           element, allocation));
 
                goto unlock_and_exit;
        }
        if (NULL == mem_list->list_head) {
                /* No allocations! */
 
-               _ACPI_REPORT_ERROR(module, line,
-                                  ("ut_remove_allocation: Empty allocation list, nothing to free!\n"));
+               ACPI_ERROR((module, line,
+                           "Empty allocation list, nothing to free!"));
 
                return_ACPI_STATUS(AE_OK);
        }
        /* Print summary */
 
        if (!num_outstanding) {
-               ACPI_REPORT_INFO(("No outstanding allocations\n"));
+               ACPI_INFO((AE_INFO, "No outstanding allocations"));
        } else {
-               ACPI_REPORT_ERROR(("%d(%X) Outstanding allocations\n",
-                                  num_outstanding, num_outstanding));
+               ACPI_ERROR((AE_INFO,
+                           "%d(%X) Outstanding allocations",
+                           num_outstanding, num_outstanding));
        }
 
        return_VOID;
 
                /*
                 * Packages as external input to control methods are not supported,
                 */
-               ACPI_REPORT_ERROR(("Packages as parameters not implemented!\n"));
+               ACPI_ERROR((AE_INFO,
+                           "Packages as parameters not implemented!"));
 
                return_ACPI_STATUS(AE_NOT_IMPLEMENTED);
        }
                                                         count +
                                                         1) * sizeof(void *));
        if (!dest_obj->package.elements) {
-               ACPI_REPORT_ERROR(("Package allocation failure\n"));
+               ACPI_ERROR((AE_INFO, "Package allocation failure"));
                return_ACPI_STATUS(AE_NO_MEMORY);
        }
 
 
 
        default:
 
-               ACPI_REPORT_ERROR(("Unknown action (%X)\n", action));
+               ACPI_ERROR((AE_INFO, "Unknown action (%X)", action));
                break;
        }
 
         */
        if (count > ACPI_MAX_REFERENCE_COUNT) {
 
-               ACPI_REPORT_WARNING(("Large Reference Count (%X) in object %p\n\n", count, object));
+               ACPI_WARNING((AE_INFO,
+                             "Large Reference Count (%X) in object %p",
+                             count, object));
        }
 
        return;
 
       error_exit:
 
-       ACPI_REPORT_ERROR(("Could not update object reference count, %s\n",
-                          acpi_format_exception(status)));
+       ACPI_EXCEPTION((AE_INFO, status,
+                       "Could not update object reference count"));
 
        return_ACPI_STATUS(status);
 }
 
                                          acpi_ut_get_node_name(prefix_node),
                                          path));
                } else {
-                       ACPI_REPORT_MTERROR("Method execution failed",
-                                           prefix_node, path, status);
+                       ACPI_ERROR_METHOD("Method execution failed",
+                                         prefix_node, path, status);
                }
 
                return_ACPI_STATUS(status);
 
        if (!info.return_object) {
                if (expected_return_btypes) {
-                       ACPI_REPORT_MTERROR("No object was returned from",
-                                           prefix_node, path, AE_NOT_EXIST);
+                       ACPI_ERROR_METHOD("No object was returned from",
+                                         prefix_node, path, AE_NOT_EXIST);
 
                        return_ACPI_STATUS(AE_NOT_EXIST);
                }
        /* Is the return object one of the expected types? */
 
        if (!(expected_return_btypes & return_btype)) {
-               ACPI_REPORT_MTERROR("Return object type is incorrect",
-                                   prefix_node, path, AE_TYPE);
-
-               ACPI_REPORT_ERROR(("Type returned from %s was incorrect: %s, expected Btypes: %X\n", path, acpi_ut_get_object_type_name(info.return_object), expected_return_btypes));
+               ACPI_ERROR_METHOD("Return object type is incorrect",
+                                 prefix_node, path, AE_TYPE);
+
+               ACPI_ERROR((AE_INFO,
+                           "Type returned from %s was incorrect: %s, expected Btypes: %X",
+                           path,
+                           acpi_ut_get_object_type_name(info.return_object),
+                           expected_return_btypes));
 
                /* On error exit, we must delete the return object */
 
 
        if (!exception) {
                /* Exception code was not recognized */
 
-               ACPI_REPORT_ERROR(("Unknown exception code: 0x%8.8X\n",
-                                  status));
+               ACPI_ERROR((AE_INFO,
+                           "Unknown exception code: 0x%8.8X", status));
 
                exception = "UNKNOWN_STATUS_CODE";
        }
 
 acpi_ut_fadt_register_error(char *register_name, u32 value, acpi_size offset)
 {
 
-       ACPI_REPORT_WARNING(("Invalid FADT value %s=%X at offset %X FADT=%p\n",
-                            register_name, value, (u32) offset,
-                            acpi_gbl_FADT));
+       ACPI_WARNING((AE_INFO,
+                     "Invalid FADT value %s=%X at offset %X FADT=%p",
+                     register_name, value, (u32) offset, acpi_gbl_FADT));
 }
 
 /******************************************************************************
        /* Just exit if subsystem is already shutdown */
 
        if (acpi_gbl_shutdown) {
-               ACPI_REPORT_ERROR(("ACPI Subsystem is already terminated\n"));
+               ACPI_ERROR((AE_INFO, "ACPI Subsystem is already terminated"));
                return_VOID;
        }
 
 
        /* Always check for a zero divisor */
 
        if (divisor == 0) {
-               ACPI_REPORT_ERROR(("Divide by zero\n"));
+               ACPI_ERROR((AE_INFO, "Divide by zero"));
                return_ACPI_STATUS(AE_AML_DIVIDE_BY_ZERO);
        }
 
        /* Always check for a zero divisor */
 
        if (in_divisor == 0) {
-               ACPI_REPORT_ERROR(("Divide by zero\n"));
+               ACPI_ERROR((AE_INFO, "Divide by zero"));
                return_ACPI_STATUS(AE_AML_DIVIDE_BY_ZERO);
        }
 
        /* Always check for a zero divisor */
 
        if (divisor == 0) {
-               ACPI_REPORT_ERROR(("Divide by zero\n"));
+               ACPI_ERROR((AE_INFO, "Divide by zero"));
                return_ACPI_STATUS(AE_AML_DIVIDE_BY_ZERO);
        }
 
        /* Always check for a zero divisor */
 
        if (in_divisor == 0) {
-               ACPI_REPORT_ERROR(("Divide by zero\n"));
+               ACPI_ERROR((AE_INFO, "Divide by zero"));
                return_ACPI_STATUS(AE_AML_DIVIDE_BY_ZERO);
        }
 
 
        /* Guard against multiple allocations of ID to the same location */
 
        if (*owner_id) {
-               ACPI_REPORT_ERROR(("Owner ID [%2.2X] already exists\n",
-                                  *owner_id));
+               ACPI_ERROR((AE_INFO, "Owner ID [%2.2X] already exists",
+                           *owner_id));
                return_ACPI_STATUS(AE_ALREADY_EXISTS);
        }
 
         * methods, or there may be a bug where the IDs are not released.
         */
        status = AE_OWNER_ID_LIMIT;
-       ACPI_REPORT_ERROR(("Could not allocate new owner_id (255 max), AE_OWNER_ID_LIMIT\n"));
+       ACPI_ERROR((AE_INFO,
+                   "Could not allocate new owner_id (255 max), AE_OWNER_ID_LIMIT"));
 
       exit:
        (void)acpi_ut_release_mutex(ACPI_MTX_CACHES);
        /* Zero is not a valid owner_iD */
 
        if (owner_id == 0) {
-               ACPI_REPORT_ERROR(("Invalid owner_id: %2.2X\n", owner_id));
+               ACPI_ERROR((AE_INFO, "Invalid owner_id: %2.2X", owner_id));
                return_VOID;
        }
 
        if (acpi_gbl_owner_id_mask[index] & bit) {
                acpi_gbl_owner_id_mask[index] ^= bit;
        } else {
-               ACPI_REPORT_ERROR(("Release of non-allocated owner_id: %2.2X\n",
-                                  owner_id + 1));
+               ACPI_ERROR((AE_INFO,
+                           "Release of non-allocated owner_id: %2.2X",
+                           owner_id + 1));
        }
 
        (void)acpi_ut_release_mutex(ACPI_MTX_CACHES);
 
 /*******************************************************************************
  *
- * FUNCTION:    acpi_ut_report_error
+ * FUNCTION:    acpi_ut_error, acpi_ut_warning, acpi_ut_info
  *
  * 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 error message
+ * DESCRIPTION: Print message with module/line/version info
  *
  ******************************************************************************/
 
-void acpi_ut_report_error(char *module_name, u32 line_number)
+void ACPI_INTERNAL_VAR_XFACE
+acpi_ut_error(char *module_name, u32 line_number, char *format, ...)
 {
+       va_list args;
 
        acpi_os_printf("ACPI Error (%s-%04d): ", module_name, line_number);
+
+       va_start(args, format);
+       acpi_os_vprintf(format, args);
+       acpi_os_printf(" [%X]\n", ACPI_CA_VERSION);
 }
 
-/*******************************************************************************
- *
- * FUNCTION:    acpi_ut_report_warning
- *
- * PARAMETERS:  module_name         - Caller's module name (for error output)
- *              line_number         - Caller's line number (for error output)
- *
- * RETURN:      None
- *
- * DESCRIPTION: Print warning message
- *
- ******************************************************************************/
+void ACPI_INTERNAL_VAR_XFACE
+acpi_ut_exception(char *module_name,
+                 u32 line_number, acpi_status status, char *format, ...)
+{
+       va_list args;
 
-void acpi_ut_report_warning(char *module_name, u32 line_number)
+       acpi_os_printf("ACPI Exception (%s-%04d): %s, ", module_name,
+                      line_number, acpi_format_exception(status));
+
+       va_start(args, format);
+       acpi_os_vprintf(format, args);
+       acpi_os_printf(" [%X]\n", ACPI_CA_VERSION);
+}
+
+void ACPI_INTERNAL_VAR_XFACE
+acpi_ut_warning(char *module_name, u32 line_number, char *format, ...)
 {
+       va_list args;
 
        acpi_os_printf("ACPI Warning (%s-%04d): ", module_name, line_number);
+
+       va_start(args, format);
+       acpi_os_vprintf(format, args);
+       acpi_os_printf(" [%X]\n", ACPI_CA_VERSION);
+}
+
+void ACPI_INTERNAL_VAR_XFACE
+acpi_ut_info(char *module_name, u32 line_number, char *format, ...)
+{
+       va_list args;
+
+       acpi_os_printf("ACPI (%s-%04d): ", module_name, line_number);
+
+       va_start(args, format);
+       acpi_os_vprintf(format, args);
+       acpi_os_printf(" [%X]\n", ACPI_CA_VERSION);
 }
 
 /*******************************************************************************
  *
- * FUNCTION:    acpi_ut_report_info
+ * FUNCTION:    acpi_ut_report_error, Warning, Info
  *
  * PARAMETERS:  module_name         - Caller's module name (for error output)
  *              line_number         - Caller's line number (for error output)
  *
  * RETURN:      None
  *
- * DESCRIPTION: Print information message
+ * DESCRIPTION: Print error message
+ *
+ * Note: Legacy only, should be removed when no longer used by drivers.
  *
  ******************************************************************************/
 
+void acpi_ut_report_error(char *module_name, u32 line_number)
+{
+
+       acpi_os_printf("ACPI Error (%s-%04d): ", module_name, line_number);
+}
+
+void acpi_ut_report_warning(char *module_name, u32 line_number)
+{
+
+       acpi_os_printf("ACPI Warning (%s-%04d): ", module_name, line_number);
+}
+
 void acpi_ut_report_info(char *module_name, u32 line_number)
 {
 
 
                for (i = mutex_id; i < MAX_MUTEX; i++) {
                        if (acpi_gbl_mutex_info[i].thread_id == this_thread_id) {
                                if (i == mutex_id) {
-                                       ACPI_REPORT_ERROR(("Mutex [%s] already acquired by this thread [%X]\n", acpi_ut_get_mutex_name(mutex_id), this_thread_id));
+                                       ACPI_ERROR((AE_INFO,
+                                                   "Mutex [%s] already acquired by this thread [%X]",
+                                                   acpi_ut_get_mutex_name
+                                                   (mutex_id),
+                                                   this_thread_id));
 
                                        return (AE_ALREADY_ACQUIRED);
                                }
 
-                               ACPI_REPORT_ERROR(("Invalid acquire order: Thread %X owns [%s], wants [%s]\n", this_thread_id, acpi_ut_get_mutex_name(i), acpi_ut_get_mutex_name(mutex_id)));
+                               ACPI_ERROR((AE_INFO,
+                                           "Invalid acquire order: Thread %X owns [%s], wants [%s]",
+                                           this_thread_id,
+                                           acpi_ut_get_mutex_name(i),
+                                           acpi_ut_get_mutex_name(mutex_id)));
 
                                return (AE_ACQUIRE_DEADLOCK);
                        }
                acpi_gbl_mutex_info[mutex_id].use_count++;
                acpi_gbl_mutex_info[mutex_id].thread_id = this_thread_id;
        } else {
-               ACPI_REPORT_ERROR(("Thread %X could not acquire Mutex [%X] %s\n", this_thread_id, mutex_id, acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Thread %X could not acquire Mutex [%X]",
+                               this_thread_id, mutex_id));
        }
 
        return (status);
         * Mutex must be acquired in order to release it!
         */
        if (acpi_gbl_mutex_info[mutex_id].thread_id == ACPI_MUTEX_NOT_ACQUIRED) {
-               ACPI_REPORT_ERROR(("Mutex [%X] is not acquired, cannot release\n", mutex_id));
+               ACPI_ERROR((AE_INFO,
+                           "Mutex [%X] is not acquired, cannot release",
+                           mutex_id));
 
                return (AE_NOT_ACQUIRED);
        }
                                        continue;
                                }
 
-                               ACPI_REPORT_ERROR(("Invalid release order: owns [%s], releasing [%s]\n", acpi_ut_get_mutex_name(i), acpi_ut_get_mutex_name(mutex_id)));
+                               ACPI_ERROR((AE_INFO,
+                                           "Invalid release order: owns [%s], releasing [%s]",
+                                           acpi_ut_get_mutex_name(i),
+                                           acpi_ut_get_mutex_name(mutex_id)));
 
                                return (AE_RELEASE_DEADLOCK);
                        }
            acpi_os_signal_semaphore(acpi_gbl_mutex_info[mutex_id].mutex, 1);
 
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Thread %X could not release Mutex [%X] %s\n", this_thread_id, mutex_id, acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "Thread %X could not release Mutex [%X]",
+                               this_thread_id, mutex_id));
        } else {
                ACPI_DEBUG_PRINT((ACPI_DB_MUTEX,
                                  "Thread %X released Mutex [%s]\n",
 
 
                buffer = ACPI_MEM_CALLOCATE(buffer_size);
                if (!buffer) {
-                       ACPI_REPORT_ERROR(("Could not allocate size %X\n",
-                                          (u32) buffer_size));
+                       ACPI_ERROR((AE_INFO, "Could not allocate size %X",
+                                   (u32) buffer_size));
                        acpi_ut_remove_reference(buffer_desc);
                        return_PTR(NULL);
                }
         */
        string = ACPI_MEM_CALLOCATE(string_size + 1);
        if (!string) {
-               ACPI_REPORT_ERROR(("Could not allocate size %X\n",
-                                  (u32) string_size));
+               ACPI_ERROR((AE_INFO, "Could not allocate size %X",
+                           (u32) string_size));
                acpi_ut_remove_reference(string_desc);
                return_PTR(NULL);
        }
 
        object = acpi_os_acquire_object(acpi_gbl_operand_cache);
        if (!object) {
-               _ACPI_REPORT_ERROR(module_name, line_number,
-                                  ("Could not allocate an object descriptor\n"));
+               ACPI_ERROR((module_name, line_number,
+                           "Could not allocate an object descriptor"));
 
                return_PTR(NULL);
        }
        /* Object must be an union acpi_operand_object    */
 
        if (ACPI_GET_DESCRIPTOR_TYPE(object) != ACPI_DESC_TYPE_OPERAND) {
-               ACPI_REPORT_ERROR(("%p is not an ACPI Operand object [%s]\n",
-                                  object,
-                                  acpi_ut_get_descriptor_name(object)));
+               ACPI_ERROR((AE_INFO,
+                           "%p is not an ACPI Operand object [%s]", object,
+                           acpi_ut_get_descriptor_name(object)));
                return_VOID;
        }
 
                         * Notably, Locals and Args are not supported, but this may be
                         * required eventually.
                         */
-                       ACPI_REPORT_ERROR(("Unsupported Reference opcode=%X in object %p\n", internal_object->reference.opcode, internal_object));
+                       ACPI_ERROR((AE_INFO,
+                                   "Unsupported Reference opcode=%X in object %p",
+                                   internal_object->reference.opcode,
+                                   internal_object));
                        status = AE_TYPE;
                        break;
                }
 
        default:
 
-               ACPI_REPORT_ERROR(("Unsupported type=%X in object %p\n",
-                                  ACPI_GET_OBJECT_TYPE(internal_object),
-                                  internal_object));
+               ACPI_ERROR((AE_INFO, "Unsupported type=%X in object %p",
+                           ACPI_GET_OBJECT_TYPE(internal_object),
+                           internal_object));
                status = AE_TYPE;
                break;
        }
 
  * RETURN:      Status, pointer to the end tag
  *
  * DESCRIPTION: Find the end_tag resource descriptor in an AML resource template
+ *              Note: allows a buffer length of zero.
  *
  ******************************************************************************/
 
        aml = obj_desc->buffer.pointer;
        end_aml = aml + obj_desc->buffer.length;
 
+       /* Allow a buffer length of zero */
+
+       if (!obj_desc->buffer.length) {
+               *end_tag = aml;
+               return_ACPI_STATUS(AE_OK);
+       }
+
        /* Walk the resource template, one descriptor per iteration */
 
        while (aml < end_aml) {
 
                if (acpi_ut_get_resource_type(aml) ==
                    ACPI_RESOURCE_NAME_END_TAG) {
+                       /*
+                        * There must be at least one more byte in the buffer for
+                        * the 2nd byte of the end_tag
+                        */
+                       if ((aml + 1) >= end_aml) {
+                               return_ACPI_STATUS(AE_AML_NO_RESOURCE_END_TAG);
+                       }
+
                        /* Return the pointer to the end_tag */
 
                        *end_tag = aml;
 
 
        status = acpi_os_initialize();
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("OSL failed to initialize, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status, "During OSL initialization"));
                return_ACPI_STATUS(status);
        }
 
 
        status = acpi_ut_mutex_initialize();
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Global mutex creation failure, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "During Global Mutex creation"));
                return_ACPI_STATUS(status);
        }
 
         */
        status = acpi_ns_root_initialize();
        if (ACPI_FAILURE(status)) {
-               ACPI_REPORT_ERROR(("Namespace initialization failure, %s\n",
-                                  acpi_format_exception(status)));
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "During Namespace initialization"));
                return_ACPI_STATUS(status);
        }
 
        /* If configured, initialize the AML debugger */
 
        ACPI_DEBUGGER_EXEC(status = acpi_db_initialize());
-
        return_ACPI_STATUS(status);
 }
 
 
                status = acpi_enable();
                if (ACPI_FAILURE(status)) {
-                       ACPI_REPORT_WARNING(("acpi_enable failed\n"));
+                       ACPI_WARNING((AE_INFO, "acpi_enable failed"));
                        return_ACPI_STATUS(status);
                }
        }
 
 
 /* Current ACPICA subsystem version in YYYYMMDD format */
 
-#define ACPI_CA_VERSION                 0x20060113
+#define ACPI_CA_VERSION                 0x20060127
 
 /*
  * OS name, used for the _OS object.  The _OS object is essentially obsolete,
 #define ACPI_MAX_OBJECT_CACHE_DEPTH     96     /* Interpreter operand objects */
 
 /*
- * Should the subystem abort the loading of an ACPI table if the
+ * Should the subsystem abort the loading of an ACPI table if the
  * table checksum is incorrect?
  */
 #define ACPI_CHECKSUM_ABORT             FALSE
 
 #define ACPI_CONTROL_PREDICATE_FALSE         0xC3
 #define ACPI_CONTROL_PREDICATE_TRUE          0xC4
 
-#define ACPI_STATE_COMMON                  /* Two 32-bit fields and a pointer */\
-       u8                                  data_type;          /* To differentiate various internal objs */\
+#define ACPI_STATE_COMMON   /* Two 32-bit fields and a pointer */\
+       u8                                  data_type;  /* To differentiate various internal objs */\
        u8                                  flags;      \
        u16                                 value;      \
        u16                                 state;      \
        u16                                 reserved;   \
-       void                                *next;      \
+       void                                *next;
 
 struct acpi_common_state {
 ACPI_STATE_COMMON};
        char                                aml_op_name[16]) /* Op name (debug only) */\
                           /* NON-DEBUG members below: */\
        struct acpi_namespace_node          *node;          /* For use by interpreter */\
-       union acpi_parse_value              value;          /* Value or args associated with the opcode */\
-
+       union acpi_parse_value              value;      /* Value or args associated with the opcode */
 
 #define ACPI_DASM_BUFFER        0x00
 #define ACPI_DASM_RESOURCE      0x01
 
 /*
  * Rounding macros (Power of two boundaries only)
  */
-#define ACPI_ROUND_DOWN(value,boundary)      (((acpi_native_uint)(value)) & (~(((acpi_native_uint) boundary)-1)))
-#define ACPI_ROUND_UP(value,boundary)        ((((acpi_native_uint)(value)) + (((acpi_native_uint) boundary)-1)) & (~(((acpi_native_uint) boundary)-1)))
+#define ACPI_ROUND_DOWN(value,boundary)      (((acpi_native_uint)(value)) & \
+                                                                                               (~(((acpi_native_uint) boundary)-1)))
+
+#define ACPI_ROUND_UP(value,boundary)        ((((acpi_native_uint)(value)) + \
+                                                                                               (((acpi_native_uint) boundary)-1)) & \
+                                                                                               (~(((acpi_native_uint) boundary)-1)))
 
 #define ACPI_ROUND_DOWN_TO_32_BITS(a)        ACPI_ROUND_DOWN(a,4)
 #define ACPI_ROUND_DOWN_TO_64_BITS(a)        ACPI_ROUND_DOWN(a,8)
 
 /* Generate a UUID */
 
-#define ACPI_INIT_UUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7)   (a) & 0xFF, ((a) >> 8) & 0xFF, ((a) >> 16) & 0xFF, ((a) >> 24) & 0xFF, \
-                                                                                                 (b) & 0xFF, ((b) >> 8) & 0xFF, \
-                                                                                                 (c) & 0xFF, ((c) >> 8) & 0xFF, \
-                                                                                                 (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7)
+#define ACPI_INIT_UUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
+       (a) & 0xFF, ((a) >> 8) & 0xFF, ((a) >> 16) & 0xFF, ((a) >> 24) & 0xFF, \
+       (b) & 0xFF, ((b) >> 8) & 0xFF, \
+       (c) & 0xFF, ((c) >> 8) & 0xFF, \
+       (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7)
 
 /*
  * An struct acpi_namespace_node * can appear in some contexts,
 #define GET_CURRENT_ARG_TYPE(list)      (list & ((u32) 0x1F))
 #define INCREMENT_ARG_LIST(list)        (list >>= ((u32) ARG_TYPE_WIDTH))
 
+#if defined (ACPI_DEBUG_OUTPUT) || !defined (ACPI_NO_ERROR_MESSAGES)
 /*
  * Module name is include in both debug and non-debug versions primarily for
  * error messages. The __FILE__ macro is not very useful for this, because it
  * often includes the entire pathname to the module
  */
-#if defined (ACPI_DEBUG_OUTPUT) || !defined (ACPI_NO_ERROR_MESSAGES)
-
 #define ACPI_MODULE_NAME(name)          static char ACPI_UNUSED_VAR *_acpi_module_name = name;
 #else
 #define ACPI_MODULE_NAME(name)
  * Ascii error messages can be configured out
  */
 #ifndef ACPI_NO_ERROR_MESSAGES
-
-#define ACPI_PARAM_LIST(pl)             pl
-#define ACPI_LOCATION_INFO              _acpi_module_name, __LINE__
+#define AE_INFO                         _acpi_module_name, __LINE__
 
 /*
- * Error reporting. Callers module and line number are inserted automatically
- * These macros are used for both the debug and non-debug versions of the code
+ * Error reporting. Callers module and line number are inserted by AE_INFO,
+ * 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_REPORT_INFO(fp)            {acpi_ut_report_info (ACPI_LOCATION_INFO); \
-                                                                                       acpi_os_printf ACPI_PARAM_LIST (fp);}
-#define ACPI_REPORT_ERROR(fp)           {acpi_ut_report_error (ACPI_LOCATION_INFO); \
-                                                                                       acpi_os_printf ACPI_PARAM_LIST (fp);}
-#define ACPI_REPORT_WARNING(fp)         {acpi_ut_report_warning (ACPI_LOCATION_INFO); \
-                                                                                       acpi_os_printf ACPI_PARAM_LIST (fp);}
-#define ACPI_REPORT_NSERROR(s,e)        acpi_ns_report_error (ACPI_LOCATION_INFO, \
-                                                                                       s, e);
-#define ACPI_REPORT_MTERROR(s,n,p,e)    acpi_ns_report_method_error (ACPI_LOCATION_INFO, \
-                                                                                       s, n, p, e);
-
-/* Error reporting. These versions pass thru the module and lineno */
+#define ACPI_INFO(plist)                acpi_ut_info plist
+#define ACPI_WARNING(plist)             acpi_ut_warning plist
+#define ACPI_EXCEPTION(plist)           acpi_ut_exception plist
+#define ACPI_ERROR(plist)               acpi_ut_error plist
+#define ACPI_ERROR_NAMESPACE(s,e)       acpi_ns_report_error (AE_INFO, s, e);
+#define ACPI_ERROR_METHOD(s,n,p,e)      acpi_ns_report_method_error (AE_INFO, s, n, p, e);
 
-#define _ACPI_REPORT_INFO(a,b,fp)       {acpi_ut_report_info (a,b); \
-                                                                                       acpi_os_printf ACPI_PARAM_LIST (fp);}
-#define _ACPI_REPORT_ERROR(a,b,fp)      {acpi_ut_report_error (a,b); \
-                                                                                       acpi_os_printf ACPI_PARAM_LIST (fp);}
-#define _ACPI_REPORT_WARNING(a,b,fp)    {acpi_ut_report_warning (a,b); \
-                                                                                       acpi_os_printf ACPI_PARAM_LIST (fp);}
 #else
 
 /* No error messages */
 
-#define ACPI_REPORT_INFO(fp)
-#define ACPI_REPORT_ERROR(fp)
-#define ACPI_REPORT_WARNING(fp)
-#define ACPI_REPORT_NSERROR(s,e)
-#define ACPI_REPORT_MTERROR(s,n,p,e)
-#define _ACPI_REPORT_INFO(a,b,c,fp)
-#define _ACPI_REPORT_ERROR(a,b,c,fp)
-#define _ACPI_REPORT_WARNING(a,b,c,fp)
+#define ACPI_INFO(plist)
+#define ACPI_WARNING(plist)
+#define ACPI_EXCEPTION(plist)
+#define ACPI_ERROR(plist)
+#define ACPI_ERROR_NAMESPACE(s,e)
+#define ACPI_ERROR_METHOD(s,n,p,e)
+
 #endif
 
 /*
 #endif
 
 #define ACPI_FUNCTION_TRACE(a)          ACPI_FUNCTION_NAME(a) \
-                                                                                       acpi_ut_trace(ACPI_DEBUG_PARAMETERS)
+                                                                         acpi_ut_trace(ACPI_DEBUG_PARAMETERS)
 #define ACPI_FUNCTION_TRACE_PTR(a,b)    ACPI_FUNCTION_NAME(a) \
                                                                                        acpi_ut_trace_ptr(ACPI_DEBUG_PARAMETERS,(void *)b)
 #define ACPI_FUNCTION_TRACE_U32(a,b)    ACPI_FUNCTION_NAME(a) \
 #define ACPI_DUMP_PATHNAME(a,b,c,d)     acpi_ns_dump_pathname(a,b,c,d)
 #define ACPI_DUMP_RESOURCE_LIST(a)      acpi_rs_dump_resource_list(a)
 #define ACPI_DUMP_BUFFER(a,b)           acpi_ut_dump_buffer((u8 *)a,b,DB_BYTE_DISPLAY,_COMPONENT)
-#define ACPI_BREAK_MSG(a)               acpi_os_signal (ACPI_SIGNAL_BREAKPOINT,(a))
-
-/*
- * Generate INT3 on ACPI_ERROR (Debug only!)
- */
-#define ACPI_ERROR_BREAK
-#ifdef  ACPI_ERROR_BREAK
-#define ACPI_BREAK_ON_ERROR(lvl)        if ((lvl)&ACPI_ERROR) \
-                                                                                       acpi_os_signal(ACPI_SIGNAL_BREAKPOINT,"Fatal error encountered\n")
-#else
-#define ACPI_BREAK_ON_ERROR(lvl)
-#endif
 
 /*
  * Master debug print macros
  *    1) Debug print for the current component is enabled
  *    2) Debug error level or trace level for the print statement is enabled
  */
-#define ACPI_DEBUG_PRINT(pl)            acpi_ut_debug_print ACPI_PARAM_LIST(pl)
-#define ACPI_DEBUG_PRINT_RAW(pl)        acpi_ut_debug_print_raw ACPI_PARAM_LIST(pl)
+#define ACPI_DEBUG_PRINT(plist)         acpi_ut_debug_print plist
+#define ACPI_DEBUG_PRINT_RAW(plist)     acpi_ut_debug_print_raw plist
 
 #else
 /*
 #define ACPI_DUMP_BUFFER(a,b)
 #define ACPI_DEBUG_PRINT(pl)
 #define ACPI_DEBUG_PRINT_RAW(pl)
-#define ACPI_BREAK_MSG(a)
 
 #define return_VOID                     return
 #define return_ACPI_STATUS(s)           return(s)
 
        u8                                      type;               /* acpi_object_type */\
        u16                                     reference_count;    /* For object deletion management */\
        union acpi_operand_object               *next_object;       /* Objects linked to parent NS node */\
-       u8                                      flags; \
+       u8                                      flags;
 
 /* Values for flag byte above */
 
 
 
 void acpi_os_delete_lock(acpi_handle handle);
 
-acpi_native_uint acpi_os_acquire_lock(acpi_handle handle);
+acpi_cpu_flags acpi_os_acquire_lock(acpi_handle handle);
 
-void acpi_os_release_lock(acpi_handle handle, acpi_native_uint flags);
+void acpi_os_release_lock(acpi_handle handle, acpi_cpu_flags flags);
 
 /*
  * Memory allocation and mapping
 
 #error unknown ACPI_MACHINE_WIDTH
 #endif
 
+/* Variable-width type, used instead of clib size_t */
+
+typedef acpi_native_uint acpi_size;
+
 /*******************************************************************************
  *
  * OS- or compiler-dependent types
  *
+ * If the defaults below are not appropriate for the host system, they can
+ * be defined in the compiler-specific or OS-specific header, and this will
+ * take precedence.
+ *
  ******************************************************************************/
 
-/*
- * If acpi_uintptr_t was not defined in the OS- or compiler-dependent header,
- * define it now (use C99 uintptr_t for pointer casting if available,
- * "void *" otherwise)
- */
+/* Use C99 uintptr_t for pointer casting if available, "void *" otherwise */
+
 #ifndef acpi_uintptr_t
 #define acpi_uintptr_t                          void *
 #endif
 #define acpi_cache_t                            struct acpi_memory_list
 #endif
 
-/* Variable-width type, used instead of clib size_t */
+/*
+ * Allow the CPU flags word to be defined per-OS to simplify the use of the
+ * lock and unlock OSL interfaces.
+ */
+#ifndef acpi_cpu_flags
+#define acpi_cpu_flags                          acpi_native_uint
+#endif
 
-typedef acpi_native_uint acpi_size;
+/*
+ * ACPI_PRINTF_LIKE is used to tag functions as "printf-like" because
+ * some compilers can catch printf format string problems
+ */
+#ifndef ACPI_PRINTF_LIKE
+#define ACPI_PRINTF_LIKE(c)
+#endif
+
+/*
+ * Some compilers complain about unused variables. Sometimes we don't want to
+ * use all the variables (for example, _acpi_module_name). This allows us
+ * to to tell the compiler in a per-variable manner that a variable
+ * is unused
+ */
+#ifndef ACPI_UNUSED_VAR
+#define ACPI_UNUSED_VAR
+#endif
 
 /*******************************************************************************
  *
 
                 const char *function_name,
                 char *module_name, u32 component_id, u8 * ptr);
 
+void acpi_ut_dump_buffer(u8 * buffer, u32 count, u32 display, u32 component_id);
+
 void acpi_ut_report_error(char *module_name, u32 line_number);
 
 void acpi_ut_report_info(char *module_name, u32 line_number);
 
 void acpi_ut_report_warning(char *module_name, u32 line_number);
 
-void acpi_ut_dump_buffer(u8 * buffer, u32 count, u32 display, u32 component_id);
+/* Error and message reporting interfaces */
 
 void ACPI_INTERNAL_VAR_XFACE
 acpi_ut_debug_print(u32 requested_debug_level,
                    u32 line_number,
                    const char *function_name,
                    char *module_name,
-                   u32 component_id, char *format, ...) ACPI_PRINTF_LIKE_FUNC;
+                   u32 component_id, char *format, ...) ACPI_PRINTF_LIKE(6);
 
 void ACPI_INTERNAL_VAR_XFACE
 acpi_ut_debug_print_raw(u32 requested_debug_level,
                        const char *function_name,
                        char *module_name,
                        u32 component_id,
-                       char *format, ...) ACPI_PRINTF_LIKE_FUNC;
+                       char *format, ...) ACPI_PRINTF_LIKE(6);
+
+void ACPI_INTERNAL_VAR_XFACE
+acpi_ut_error(char *module_name,
+             u32 line_number, char *format, ...) ACPI_PRINTF_LIKE(3);
+
+void ACPI_INTERNAL_VAR_XFACE
+acpi_ut_exception(char *module_name,
+                 u32 line_number,
+                 acpi_status status, char *format, ...) ACPI_PRINTF_LIKE(4);
+
+void ACPI_INTERNAL_VAR_XFACE
+acpi_ut_warning(char *module_name,
+               u32 line_number, char *format, ...) ACPI_PRINTF_LIKE(3);
+
+void ACPI_INTERNAL_VAR_XFACE
+acpi_ut_info(char *module_name,
+            u32 line_number, char *format, ...) ACPI_PRINTF_LIKE(3);
 
 /*
  * utdelete - Object deletion and reference counts
 
 #elif defined(NETWARE)
 #include "acnetware.h"
 
+#elif defined(__sun)
+#include "acsolaris.h"
+
 #else
 
 /* All other environments */
 #define COMPILER_DEPENDENT_INT64   long long
 #define COMPILER_DEPENDENT_UINT64  unsigned long long
 
-/*
- * This macro is used to tag functions as "printf-like" because
- * some compilers can catch printf format string problems. MSVC
- * doesn't, so this is proprocessed away.
- */
-#define ACPI_PRINTF_LIKE_FUNC
-
 #endif
 
 /*
 
 
 #define ACPI_GET_FUNCTION_NAME          __FUNCTION__
 
-/* This macro is used to tag functions as "printf-like" because
+/*
+ * This macro is used to tag functions as "printf-like" because
  * some compilers (like GCC) can catch printf format string problems.
  */
-#define ACPI_PRINTF_LIKE_FUNC __attribute__ ((__format__ (__printf__, 6, 7)))
+#define ACPI_PRINTF_LIKE(c) __attribute__ ((__format__ (__printf__, c, c+1)))
 
-/* Some compilers complain about unused variables. Sometimes we don't want to
+/*
+ * Some compilers complain about unused variables. Sometimes we don't want to
  * use all the variables (for example, _acpi_module_name). This allows us
  * to to tell the compiler warning in a per-variable manner that a variable
  * is unused.
 
 
 #include "acgcc.h"
 
+#define acpi_cpu_flags unsigned long
+
 #endif                         /* __ACLINUX_H__ */