#include "seq_oss_device.h"
#include "seq_oss_synth.h"
#include "seq_oss_midi.h"
#include "seq_oss_writeq.h"
#include "seq_oss_readq.h"
#include "seq_oss_timer.h"
#include "seq_oss_event.h"
#include <linux/init.h>
#include <linux/export.h>
#include <linux/moduleparam.h>
#include <linux/slab.h>
#include <linux/workqueue.h>
static int maxqlen = …;
module_param(maxqlen, int, 0444);
MODULE_PARM_DESC(…) …;
static int system_client = …;
static int system_port = …;
static int num_clients;
static struct seq_oss_devinfo *client_table[SNDRV_SEQ_OSS_MAX_CLIENTS];
static int receive_announce(struct snd_seq_event *ev, int direct, void *private, int atomic, int hop);
static int translate_mode(struct file *file);
static int create_port(struct seq_oss_devinfo *dp);
static int delete_port(struct seq_oss_devinfo *dp);
static int alloc_seq_queue(struct seq_oss_devinfo *dp);
static int delete_seq_queue(int queue);
static void free_devinfo(void *private);
#define call_ctl(type,rec) …
static void async_call_lookup_ports(struct work_struct *work)
{ … }
static DECLARE_WORK(async_lookup_work, async_call_lookup_ports);
int __init
snd_seq_oss_create_client(void)
{ … }
static int
receive_announce(struct snd_seq_event *ev, int direct, void *private, int atomic, int hop)
{ … }
int
snd_seq_oss_delete_client(void)
{ … }
int
snd_seq_oss_open(struct file *file, int level)
{ … }
static int
translate_mode(struct file *file)
{ … }
static int
create_port(struct seq_oss_devinfo *dp)
{ … }
static int
delete_port(struct seq_oss_devinfo *dp)
{ … }
static int
alloc_seq_queue(struct seq_oss_devinfo *dp)
{ … }
static int
delete_seq_queue(int queue)
{ … }
static void
free_devinfo(void *private)
{ … }
void
snd_seq_oss_release(struct seq_oss_devinfo *dp)
{ … }
void
snd_seq_oss_reset(struct seq_oss_devinfo *dp)
{ … }
#ifdef CONFIG_SND_PROC_FS
char *
enabled_str(bool b)
{ … }
static const char *
filemode_str(int val)
{ … }
void
snd_seq_oss_system_info_read(struct snd_info_buffer *buf)
{ … }
#endif