#include <linux/types.h>
#include <linux/io.h>
#include "shm_ipc.h"
#undef pr_fmt
#define pr_fmt(fmt) …
static bool qtnf_shm_ipc_has_new_data(struct qtnf_shm_ipc *ipc)
{ … }
static void qtnf_shm_handle_new_data(struct qtnf_shm_ipc *ipc)
{ … }
static void qtnf_shm_ipc_irq_work(struct work_struct *work)
{ … }
static void qtnf_shm_ipc_irq_inbound_handler(struct qtnf_shm_ipc *ipc)
{ … }
static void qtnf_shm_ipc_irq_outbound_handler(struct qtnf_shm_ipc *ipc)
{ … }
int qtnf_shm_ipc_init(struct qtnf_shm_ipc *ipc,
enum qtnf_shm_ipc_direction direction,
struct qtnf_shm_ipc_region __iomem *shm_region,
struct workqueue_struct *workqueue,
const struct qtnf_shm_ipc_int *interrupt,
const struct qtnf_shm_ipc_rx_callback *rx_callback)
{ … }
void qtnf_shm_ipc_free(struct qtnf_shm_ipc *ipc)
{ … }
int qtnf_shm_ipc_send(struct qtnf_shm_ipc *ipc, const u8 *buf, size_t size)
{ … }