#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/dmi.h>
#include <linux/mm.h>
#include <asm/bios_ebda.h>
#include <linux/acpi.h>
#include "memconsole.h"
#define BIOS_MEMCONSOLE_V1_MAGIC …
#define BIOS_MEMCONSOLE_V2_MAGIC …
struct biosmemcon_ebda { … } __packed;
static char *memconsole_baseaddr;
static size_t memconsole_length;
static ssize_t memconsole_read(char *buf, loff_t pos, size_t count)
{ … }
static void found_v1_header(struct biosmemcon_ebda *hdr)
{ … }
static void found_v2_header(struct biosmemcon_ebda *hdr)
{ … }
static bool memconsole_ebda_init(void)
{ … }
static const struct dmi_system_id memconsole_dmi_table[] __initconst = …;
MODULE_DEVICE_TABLE(dmi, memconsole_dmi_table);
static bool __init memconsole_find(void)
{ … }
static int __init memconsole_x86_init(void)
{ … }
static void __exit memconsole_x86_exit(void)
{ … }
module_init(…) …;
module_exit(memconsole_x86_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;