#include <xen/string.h>
#include <xen/types.h>
#include <xen/spinlock.h>
+#include <xen/init.h>
#include <xen/cper.h>
#include <asm/io.h>
#include <acpi/acpi.h>
struct acpi_whea_header *entry,
void *data);
-static int apei_exec_for_each_entry(struct apei_exec_context *ctx,
- apei_exec_entry_func_t func,
- void *data,
- int *end)
+static int __init apei_exec_for_each_entry(struct apei_exec_context *ctx,
+ apei_exec_entry_func_t func,
+ void *data,
+ int *end)
{
u8 ins;
int i, rc;
return 0;
}
-static int pre_map_gar_callback(struct apei_exec_context *ctx,
- struct acpi_whea_header *entry,
- void *data)
+static int __init pre_map_gar_callback(struct apei_exec_context *ctx,
+ struct acpi_whea_header *entry,
+ void *data)
{
u8 ins = entry->instruction;
}
/* Pre-map all GARs in action table. */
-int apei_exec_pre_map_gars(struct apei_exec_context *ctx)
+int __init apei_exec_pre_map_gars(struct apei_exec_context *ctx)
{
int rc, end;
return rc;
}
-static int post_unmap_gar_callback(struct apei_exec_context *ctx,
- struct acpi_whea_header *entry,
- void *data)
+static int __init post_unmap_gar_callback(struct apei_exec_context *ctx,
+ struct acpi_whea_header *entry,
+ void *data)
{
u8 ins = entry->instruction;
}
/* Post-unmap all GAR in action table. */
-int apei_exec_post_unmap_gars(struct apei_exec_context *ctx)
+int __init apei_exec_post_unmap_gars(struct apei_exec_context *ctx)
{
return apei_exec_for_each_entry(ctx, post_unmap_gar_callback,
NULL, NULL);
static int apei_range_nr;
-static void __iomem *apei_range_map(paddr_t paddr, unsigned long size)
+static void __iomem *__init apei_range_map(paddr_t paddr, unsigned long size)
{
int i, pg;
int start_nr, cur_nr;
* whether the area is already pre-mapped, if it is, return; otherwise,
* do the real map, and add the mapping into apei_iomaps list.
*/
-void __iomem *apei_pre_map(paddr_t paddr, unsigned long size)
+void __iomem *__init apei_pre_map(paddr_t paddr, unsigned long size)
{
void __iomem *vaddr;
struct apei_iomap *map;
/*
* Used to post-unmap the specified IO memory area.
*/
-static void apei_post_unmap(paddr_t paddr, unsigned long size)
+static void __init apei_post_unmap(paddr_t paddr, unsigned long size)
{
struct apei_iomap *map;
unsigned long flags;
}
/* Pre-map, working on GAR */
-int apei_pre_map_gar(struct acpi_generic_address *reg)
+int __init apei_pre_map_gar(struct acpi_generic_address *reg)
{
u64 paddr;
void __iomem *vaddr;
}
/* Post-unmap, working on GAR */
-int apei_post_unmap_gar(struct acpi_generic_address *reg)
+int __init apei_post_unmap_gar(struct acpi_generic_address *reg)
{
u64 paddr;
int rc;