Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
  1// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0
  2/*******************************************************************************
  3 *
  4 * Module Name: dbfileio - Debugger file I/O commands. These can't usually
  5 *              be used when running the debugger in Ring 0 (Kernel mode)
  6 *
  7 ******************************************************************************/
  8
  9#include <acpi/acpi.h>
 10#include "accommon.h"
 11#include "acdebug.h"
 12#include "actables.h"
 13
 14#define _COMPONENT          ACPI_CA_DEBUGGER
 15ACPI_MODULE_NAME("dbfileio")
 16
 17#ifdef ACPI_APPLICATION
 18#include "acapps.h"
 19#ifdef ACPI_DEBUGGER
 20/*******************************************************************************
 21 *
 22 * FUNCTION:    acpi_db_close_debug_file
 23 *
 24 * PARAMETERS:  None
 25 *
 26 * RETURN:      None
 27 *
 28 * DESCRIPTION: If open, close the current debug output file
 29 *
 30 ******************************************************************************/
 31void acpi_db_close_debug_file(void)
 32{
 33
 34	if (acpi_gbl_debug_file) {
 35		fclose(acpi_gbl_debug_file);
 36		acpi_gbl_debug_file = NULL;
 37		acpi_gbl_db_output_to_file = FALSE;
 38		acpi_os_printf("Debug output file %s closed\n",
 39			       acpi_gbl_db_debug_filename);
 40	}
 41}
 42
 43/*******************************************************************************
 44 *
 45 * FUNCTION:    acpi_db_open_debug_file
 46 *
 47 * PARAMETERS:  name                - Filename to open
 48 *
 49 * RETURN:      None
 50 *
 51 * DESCRIPTION: Open a file where debug output will be directed.
 52 *
 53 ******************************************************************************/
 54
 55void acpi_db_open_debug_file(char *name)
 56{
 57
 58	acpi_db_close_debug_file();
 59	acpi_gbl_debug_file = fopen(name, "w+");
 60	if (!acpi_gbl_debug_file) {
 61		acpi_os_printf("Could not open debug file %s\n", name);
 62		return;
 63	}
 64
 65	acpi_os_printf("Debug output file %s opened\n", name);
 66	acpi_ut_safe_strncpy(acpi_gbl_db_debug_filename, name,
 67			     sizeof(acpi_gbl_db_debug_filename));
 68	acpi_gbl_db_output_to_file = TRUE;
 69}
 70#endif
 71
 72/*******************************************************************************
 73 *
 74 * FUNCTION:    acpi_db_load_tables
 75 *
 76 * PARAMETERS:  list_head       - List of ACPI tables to load
 77 *
 78 * RETURN:      Status
 79 *
 80 * DESCRIPTION: Load ACPI tables from a previously constructed table list.
 81 *
 82 ******************************************************************************/
 83
 84acpi_status acpi_db_load_tables(struct acpi_new_table_desc *list_head)
 85{
 86	acpi_status status;
 87	struct acpi_new_table_desc *table_list_head;
 88	struct acpi_table_header *table;
 89
 90	/* Load all ACPI tables in the list */
 91
 92	table_list_head = list_head;
 93	while (table_list_head) {
 94		table = table_list_head->table;
 95
 96		status = acpi_load_table(table);
 97		if (ACPI_FAILURE(status)) {
 98			if (status == AE_ALREADY_EXISTS) {
 99				acpi_os_printf
100				    ("Table %4.4s is already installed\n",
101				     table->signature);
102			} else {
103				acpi_os_printf("Could not install table, %s\n",
104					       acpi_format_exception(status));
105			}
106
107			return (status);
108		}
109
110		acpi_os_printf
111		    ("Acpi table [%4.4s] successfully installed and loaded\n",
112		     table->signature);
113
114		table_list_head = table_list_head->next;
115	}
116
117	return (AE_OK);
118}
119#endif