#include <linux/debugfs.h>
#include <linux/err.h>
#include <linux/fs.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/mailbox_client.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/poll.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/uaccess.h>
#include <linux/sched/signal.h>
#define MBOX_MAX_SIG_LEN …
#define MBOX_MAX_MSG_LEN …
#define MBOX_BYTES_PER_LINE …
#define MBOX_HEXDUMP_LINE_LEN …
#define MBOX_HEXDUMP_MAX_LEN …
static bool mbox_data_ready;
struct mbox_test_device { … };
static ssize_t mbox_test_signal_write(struct file *filp,
const char __user *userbuf,
size_t count, loff_t *ppos)
{ … }
static const struct file_operations mbox_test_signal_ops = …;
static int mbox_test_message_fasync(int fd, struct file *filp, int on)
{ … }
static ssize_t mbox_test_message_write(struct file *filp,
const char __user *userbuf,
size_t count, loff_t *ppos)
{ … }
static bool mbox_test_message_data_ready(struct mbox_test_device *tdev)
{ … }
static ssize_t mbox_test_message_read(struct file *filp, char __user *userbuf,
size_t count, loff_t *ppos)
{ … }
static __poll_t
mbox_test_message_poll(struct file *filp, struct poll_table_struct *wait)
{ … }
static const struct file_operations mbox_test_message_ops = …;
static int mbox_test_add_debugfs(struct platform_device *pdev,
struct mbox_test_device *tdev)
{ … }
static void mbox_test_receive_message(struct mbox_client *client, void *message)
{ … }
static void mbox_test_prepare_message(struct mbox_client *client, void *message)
{ … }
static void mbox_test_message_sent(struct mbox_client *client,
void *message, int r)
{ … }
static struct mbox_chan *
mbox_test_request_channel(struct platform_device *pdev, const char *name)
{ … }
static int mbox_test_probe(struct platform_device *pdev)
{ … }
static void mbox_test_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id mbox_test_match[] = …;
MODULE_DEVICE_TABLE(of, mbox_test_match);
static struct platform_driver mbox_test_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;