void AcpiExStartTraceMethod ( ACPI_NAMESPACE_NODE *MethodNode, ACPI_OPERAND_OBJECT *ObjDesc, ACPI_WALK_STATE *WalkState) { ACPI_STATUS Status; char *Pathname = NULL; BOOLEAN Enabled = FALSE; ACPI_FUNCTION_NAME (ExStartTraceMethod); if (MethodNode) { Pathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE); } Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); if (ACPI_FAILURE (Status)) { goto Exit; } Enabled = AcpiExInterpreterTraceEnabled (Pathname); if (Enabled && !AcpiGbl_TraceMethodObject) { AcpiGbl_TraceMethodObject = ObjDesc; AcpiGbl_OriginalDbgLevel = AcpiDbgLevel; AcpiGbl_OriginalDbgLayer = AcpiDbgLayer; AcpiDbgLevel = ACPI_TRACE_LEVEL_ALL; AcpiDbgLayer = ACPI_TRACE_LAYER_ALL; if (AcpiGbl_TraceDbgLevel) { AcpiDbgLevel = AcpiGbl_TraceDbgLevel; } if (AcpiGbl_TraceDbgLayer) { AcpiDbgLayer = AcpiGbl_TraceDbgLayer; } } (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); Exit: if (Enabled) { ACPI_TRACE_POINT (ACPI_TRACE_AML_METHOD, TRUE, ObjDesc ? ObjDesc->Method.AmlStart : NULL, Pathname); } if (Pathname) { ACPI_FREE (Pathname); } }
void acpi_ex_stop_trace_method(struct acpi_namespace_node *method_node, union acpi_operand_object *obj_desc, struct acpi_walk_state *walk_state) { acpi_status status; char *pathname = NULL; u8 enabled; ACPI_FUNCTION_NAME(ex_stop_trace_method); if (method_node) { pathname = acpi_ns_get_normalized_pathname(method_node, TRUE); } status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); if (ACPI_FAILURE(status)) { goto exit_path; } enabled = acpi_ex_interpreter_trace_enabled(NULL); (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); if (enabled) { ACPI_TRACE_POINT(ACPI_TRACE_AML_METHOD, FALSE, obj_desc ? obj_desc->method.aml_start : NULL, pathname); } status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); if (ACPI_FAILURE(status)) { goto exit_path; } /* Check whether the tracer should be stopped */ if (acpi_gbl_trace_method_object == obj_desc) { /* Disable further tracing if type is one-shot */ if (acpi_gbl_trace_flags & ACPI_TRACE_ONESHOT) { acpi_gbl_trace_method_name = NULL; } acpi_dbg_level = acpi_gbl_original_dbg_level; acpi_dbg_layer = acpi_gbl_original_dbg_layer; acpi_gbl_trace_method_object = NULL; } (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); exit_path: if (pathname) { ACPI_FREE(pathname); } }
void acpi_ex_stop_trace_opcode(union acpi_parse_object *op, struct acpi_walk_state *walk_state) { ACPI_FUNCTION_NAME(ex_stop_trace_opcode); if (acpi_ex_interpreter_trace_enabled(NULL) && (acpi_gbl_trace_flags & ACPI_TRACE_OPCODE)) { ACPI_TRACE_POINT(ACPI_TRACE_AML_OPCODE, FALSE, op->common.aml, op->common.aml_op_name); } }
void acpi_ex_start_trace_method(struct acpi_namespace_node *method_node, union acpi_operand_object *obj_desc, struct acpi_walk_state *walk_state) { acpi_status status; char *pathname = NULL; u8 enabled = FALSE; ACPI_FUNCTION_NAME(ex_start_trace_method); if (method_node) { pathname = acpi_ns_get_normalized_pathname(method_node, TRUE); } status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); if (ACPI_FAILURE(status)) { goto exit; } enabled = acpi_ex_interpreter_trace_enabled(pathname); if (enabled && !acpi_gbl_trace_method_object) { acpi_gbl_trace_method_object = obj_desc; acpi_gbl_original_dbg_level = acpi_dbg_level; acpi_gbl_original_dbg_layer = acpi_dbg_layer; acpi_dbg_level = ACPI_TRACE_LEVEL_ALL; acpi_dbg_layer = ACPI_TRACE_LAYER_ALL; if (acpi_gbl_trace_dbg_level) { acpi_dbg_level = acpi_gbl_trace_dbg_level; } if (acpi_gbl_trace_dbg_layer) { acpi_dbg_layer = acpi_gbl_trace_dbg_layer; } } (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); exit: if (enabled) { ACPI_TRACE_POINT(ACPI_TRACE_AML_METHOD, TRUE, obj_desc ? obj_desc->method.aml_start : NULL, pathname); } if (pathname) { ACPI_FREE(pathname); } }
void AcpiExStopTraceOpcode ( ACPI_PARSE_OBJECT *Op, ACPI_WALK_STATE *WalkState) { ACPI_FUNCTION_NAME (ExStopTraceOpcode); if (AcpiExInterpreterTraceEnabled (NULL) && (AcpiGbl_TraceFlags & ACPI_TRACE_OPCODE)) { ACPI_TRACE_POINT (ACPI_TRACE_AML_OPCODE, FALSE, Op->Common.Aml, Op->Common.AmlOpName); } }
void AcpiExStopTraceMethod ( ACPI_NAMESPACE_NODE *MethodNode, ACPI_OPERAND_OBJECT *ObjDesc, ACPI_WALK_STATE *WalkState) { char *Pathname = NULL; BOOLEAN Enabled; ACPI_FUNCTION_NAME (ExStopTraceMethod); if (MethodNode) { Pathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE); } Enabled = AcpiExInterpreterTraceEnabled (NULL); if (Enabled) { ACPI_TRACE_POINT (ACPI_TRACE_AML_METHOD, FALSE, ObjDesc ? ObjDesc->Method.AmlStart : NULL, Pathname); } /* Check whether the tracer should be stopped */ if (AcpiGbl_TraceMethodObject == ObjDesc) { /* Disable further tracing if type is one-shot */ if (AcpiGbl_TraceFlags & ACPI_TRACE_ONESHOT) { AcpiGbl_TraceMethodName = NULL; } AcpiDbgLevel = AcpiGbl_OriginalDbgLevel; AcpiDbgLayer = AcpiGbl_OriginalDbgLayer; AcpiGbl_TraceMethodObject = NULL; } if (Pathname) { ACPI_FREE (Pathname); } }