linux/drivers/acpi/acpi_fpdt.c

// SPDX-License-Identifier: GPL-2.0-only

/*
 * FPDT support for exporting boot and suspend/resume performance data
 *
 * Copyright (C) 2021 Intel Corporation. All rights reserved.
 */

#define pr_fmt(fmt)

#include <linux/acpi.h>

/*
 * FPDT contains ACPI table header and a number of fpdt_subtable_entries.
 * Each fpdt_subtable_entry points to a subtable: FBPT or S3PT.
 * Each FPDT subtable (FBPT/S3PT) is composed of a fpdt_subtable_header
 * and a number of fpdt performance records.
 * Each FPDT performance record is composed of a fpdt_record_header and
 * performance data fields, for boot or suspend or resume phase.
 */
enum fpdt_subtable_type {};

struct fpdt_subtable_entry {};

struct fpdt_subtable_header {};

enum fpdt_record_type {};

struct fpdt_record_header {};

struct resume_performance_record {} __attribute__((packed));

struct boot_performance_record {} __attribute__((packed));

struct suspend_performance_record {} __attribute__((packed));


static struct resume_performance_record *record_resume;
static struct suspend_performance_record *record_suspend;
static struct boot_performance_record *record_boot;

#define FPDT_ATTR(phase, name)

FPDT_ATTR();
FPDT_ATTR();
FPDT_ATTR();
FPDT_ATTR();
FPDT_ATTR();
FPDT_ATTR();
FPDT_ATTR();
FPDT_ATTR();
FPDT_ATTR();

static ssize_t resume_count_show(struct kobject *kobj,
				 struct kobj_attribute *attr, char *buf)
{}

static struct kobj_attribute resume_count_attr =;

static struct attribute *resume_attrs[] =;

static const struct attribute_group resume_attr_group =;

static struct attribute *suspend_attrs[] =;

static const struct attribute_group suspend_attr_group =;

static struct attribute *boot_attrs[] =;

static const struct attribute_group boot_attr_group =;

static struct kobject *fpdt_kobj;

#if defined CONFIG_X86 && defined CONFIG_PHYS_ADDR_T_64BIT
#include <linux/processor.h>
static bool fpdt_address_valid(u64 address)
{}
#else
static bool fpdt_address_valid(u64 address)
{
	return true;
}
#endif

static int fpdt_process_subtable(u64 address, u32 subtable_type)
{}

static int __init acpi_init_fpdt(void)
{}

fs_initcall(acpi_init_fpdt);