#define pr_fmt(fmt) …
#include <linux/acpi.h>
#include <linux/device.h>
#include <linux/fs.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/string.h>
#include <linux/sysfs.h>
#include <linux/types.h>
#include <linux/wmi.h>
#define WMI_BMOF_GUID …
struct bmof_priv { … };
static ssize_t read_bmof(struct file *filp, struct kobject *kobj, struct bin_attribute *attr,
char *buf, loff_t off, size_t count)
{ … }
static int wmi_bmof_probe(struct wmi_device *wdev, const void *context)
{ … }
static void wmi_bmof_remove(struct wmi_device *wdev)
{ … }
static const struct wmi_device_id wmi_bmof_id_table[] = …;
static struct wmi_driver wmi_bmof_driver = …;
module_wmi_driver(…) …;
MODULE_DEVICE_TABLE(wmi, wmi_bmof_id_table);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;