linux/drivers/acpi/nvs.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * nvs.c - Routines for saving and restoring ACPI NVS memory region
 *
 * Copyright (C) 2008-2011 Rafael J. Wysocki <[email protected]>, Novell Inc.
 */

#define pr_fmt(fmt)

#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/acpi.h>

#include "internal.h"

/* ACPI NVS regions, APEI may use it */

struct nvs_region {};

static LIST_HEAD(nvs_region_list);

#ifdef CONFIG_ACPI_SLEEP
static int suspend_nvs_register(unsigned long start, unsigned long size);
#else
static inline int suspend_nvs_register(unsigned long a, unsigned long b)
{
	return 0;
}
#endif

int acpi_nvs_register(__u64 start, __u64 size)
{}

int acpi_nvs_for_each_region(int (*func)(__u64 start, __u64 size, void *data),
			     void *data)
{}


#ifdef CONFIG_ACPI_SLEEP
/*
 * Platforms, like ACPI, may want us to save some memory used by them during
 * suspend and to restore the contents of this memory during the subsequent
 * resume.  The code below implements a mechanism allowing us to do that.
 */

struct nvs_page {};

static LIST_HEAD(nvs_list);

/**
 * suspend_nvs_register - register platform NVS memory region to save
 * @start: Physical address of the region.
 * @size: Size of the region.
 *
 * The NVS region need not be page-aligned (both ends) and we arrange
 * things so that the data from page-aligned addresses in this region will
 * be copied into separate RAM pages.
 */
static int suspend_nvs_register(unsigned long start, unsigned long size)
{}

/**
 * suspend_nvs_free - free data pages allocated for saving NVS regions
 */
void suspend_nvs_free(void)
{}

/**
 * suspend_nvs_alloc - allocate memory necessary for saving NVS regions
 */
int suspend_nvs_alloc(void)
{}

/**
 * suspend_nvs_save - save NVS memory regions
 */
int suspend_nvs_save(void)
{}

/**
 * suspend_nvs_restore - restore NVS memory regions
 *
 * This function is going to be called with interrupts disabled, so it
 * cannot iounmap the virtual addresses used to access the NVS region.
 */
void suspend_nvs_restore(void)
{}
#endif