linux/sound/core/seq/oss/seq_oss_init.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * OSS compatible sequencer driver
 *
 * open/close and reset interface
 *
 * Copyright (C) 1998-1999 Takashi Iwai <[email protected]>
 */

#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>

/*
 * common variables
 */
static int maxqlen =;
module_param(maxqlen, int, 0444);
MODULE_PARM_DESC();

static int system_client =; /* ALSA sequencer client number */
static int system_port =;

static int num_clients;
static struct seq_oss_devinfo *client_table[SNDRV_SEQ_OSS_MAX_CLIENTS];


/*
 * prototypes
 */
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)


/* call snd_seq_oss_midi_lookup_ports() asynchronously */
static void async_call_lookup_ports(struct work_struct *work)
{}

static DECLARE_WORK(async_lookup_work, async_call_lookup_ports);

/*
 * create sequencer client for OSS sequencer
 */
int __init
snd_seq_oss_create_client(void)
{}


/*
 * receive annoucement from system port, and check the midi device
 */
static int
receive_announce(struct snd_seq_event *ev, int direct, void *private, int atomic, int hop)
{}


/*
 * delete OSS sequencer client
 */
int
snd_seq_oss_delete_client(void)
{}


/*
 * open sequencer device
 */
int
snd_seq_oss_open(struct file *file, int level)
{}

/*
 * translate file flags to private mode
 */
static int
translate_mode(struct file *file)
{}


/*
 * create sequencer port
 */
static int
create_port(struct seq_oss_devinfo *dp)
{}

/*
 * delete ALSA port
 */
static int
delete_port(struct seq_oss_devinfo *dp)
{}

/*
 * allocate a queue
 */
static int
alloc_seq_queue(struct seq_oss_devinfo *dp)
{}

/*
 * release queue
 */
static int
delete_seq_queue(int queue)
{}


/*
 * free device informations - private_free callback of port
 */
static void
free_devinfo(void *private)
{}


/*
 * close sequencer device
 */
void
snd_seq_oss_release(struct seq_oss_devinfo *dp)
{}


/*
 * reset sequencer devices
 */
void
snd_seq_oss_reset(struct seq_oss_devinfo *dp)
{}

#ifdef CONFIG_SND_PROC_FS
/*
 * misc. functions for proc interface
 */
char *
enabled_str(bool b)
{}

static const char *
filemode_str(int val)
{}


/*
 * proc interface
 */
void
snd_seq_oss_system_info_read(struct snd_info_buffer *buf)
{}
#endif /* CONFIG_SND_PROC_FS */