cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

dbfileio.c (3165B)


      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, NULL);
     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