#include <linux/delay.h>
#include <linux/device.h>
#include <linux/errno.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/sched/signal.h>
#include <linux/serio.h>
#include <linux/slab.h>
#include "kcs_bmc_client.h"
struct kcs_bmc_serio { … };
static inline struct kcs_bmc_serio *client_to_kcs_bmc_serio(struct kcs_bmc_client *client)
{ … }
static irqreturn_t kcs_bmc_serio_event(struct kcs_bmc_client *client)
{ … }
static const struct kcs_bmc_client_ops kcs_bmc_serio_client_ops = …;
static int kcs_bmc_serio_open(struct serio *port)
{ … }
static void kcs_bmc_serio_close(struct serio *port)
{ … }
static DEFINE_SPINLOCK(kcs_bmc_serio_instances_lock);
static LIST_HEAD(kcs_bmc_serio_instances);
static int kcs_bmc_serio_add_device(struct kcs_bmc_device *kcs_bmc)
{ … }
static int kcs_bmc_serio_remove_device(struct kcs_bmc_device *kcs_bmc)
{ … }
static const struct kcs_bmc_driver_ops kcs_bmc_serio_driver_ops = …;
static struct kcs_bmc_driver kcs_bmc_serio_driver = …;
static int __init kcs_bmc_serio_init(void)
{ … }
module_init(…) …;
static void __exit kcs_bmc_serio_exit(void)
{ … }
module_exit(kcs_bmc_serio_exit);
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;