#include <linux/init.h>
#include <linux/export.h>
#include <linux/slab.h>
#include <linux/sched/signal.h>
#include <linux/mm.h>
#include <sound/core.h>
#include <sound/seq_kernel.h>
#include "seq_memory.h"
#include "seq_queue.h"
#include "seq_info.h"
#include "seq_lock.h"
static inline int snd_seq_pool_available(struct snd_seq_pool *pool)
{ … }
static inline int snd_seq_output_ok(struct snd_seq_pool *pool)
{ … }
static int get_var_len(const struct snd_seq_event *event)
{ … }
static int dump_var_event(const struct snd_seq_event *event,
snd_seq_dump_func_t func, void *private_data,
int offset, int maxlen)
{ … }
int snd_seq_dump_var_event(const struct snd_seq_event *event,
snd_seq_dump_func_t func, void *private_data)
{ … }
EXPORT_SYMBOL(…);
static int seq_copy_in_kernel(void *ptr, void *src, int size)
{ … }
static int seq_copy_in_user(void *ptr, void *src, int size)
{ … }
static int expand_var_event(const struct snd_seq_event *event,
int offset, int size, char *buf, bool in_kernel)
{ … }
int snd_seq_expand_var_event(const struct snd_seq_event *event, int count, char *buf,
int in_kernel, int size_aligned)
{ … }
EXPORT_SYMBOL(…);
int snd_seq_expand_var_event_at(const struct snd_seq_event *event, int count,
char *buf, int offset)
{ … }
EXPORT_SYMBOL_GPL(…);
static inline void free_cell(struct snd_seq_pool *pool,
struct snd_seq_event_cell *cell)
{ … }
void snd_seq_cell_free(struct snd_seq_event_cell * cell)
{ … }
static int snd_seq_cell_alloc(struct snd_seq_pool *pool,
struct snd_seq_event_cell **cellp,
int nonblock, struct file *file,
struct mutex *mutexp)
{ … }
int snd_seq_event_dup(struct snd_seq_pool *pool, struct snd_seq_event *event,
struct snd_seq_event_cell **cellp, int nonblock,
struct file *file, struct mutex *mutexp)
{ … }
int snd_seq_pool_poll_wait(struct snd_seq_pool *pool, struct file *file,
poll_table *wait)
{ … }
int snd_seq_pool_init(struct snd_seq_pool *pool)
{ … }
void snd_seq_pool_mark_closing(struct snd_seq_pool *pool)
{ … }
int snd_seq_pool_done(struct snd_seq_pool *pool)
{ … }
struct snd_seq_pool *snd_seq_pool_new(int poolsize)
{ … }
int snd_seq_pool_delete(struct snd_seq_pool **ppool)
{ … }
void snd_seq_info_pool(struct snd_info_buffer *buffer,
struct snd_seq_pool *pool, char *space)
{ … }