#include <linux/init.h>
#include <linux/time.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/module.h>
#include <sound/core.h>
#include <sound/minors.h>
#include <sound/info.h>
#include <linux/utsname.h>
#include <linux/proc_fs.h>
#include <linux/mutex.h>
int snd_info_check_reserved_words(const char *str)
{ … }
static DEFINE_MUTEX(info_mutex);
struct snd_info_private_data { … };
static int snd_info_version_init(void);
static void snd_info_clear_entries(struct snd_info_entry *entry);
static struct snd_info_entry *snd_proc_root;
struct snd_info_entry *snd_seq_root;
EXPORT_SYMBOL(…);
#ifdef CONFIG_SND_OSSEMUL
struct snd_info_entry *snd_oss_root;
#endif
static int alloc_info_private(struct snd_info_entry *entry,
struct snd_info_private_data **ret)
{ … }
static bool valid_pos(loff_t pos, size_t count)
{ … }
static loff_t snd_info_entry_llseek(struct file *file, loff_t offset, int orig)
{ … }
static ssize_t snd_info_entry_read(struct file *file, char __user *buffer,
size_t count, loff_t * offset)
{ … }
static ssize_t snd_info_entry_write(struct file *file, const char __user *buffer,
size_t count, loff_t * offset)
{ … }
static __poll_t snd_info_entry_poll(struct file *file, poll_table *wait)
{ … }
static long snd_info_entry_ioctl(struct file *file, unsigned int cmd,
unsigned long arg)
{ … }
static int snd_info_entry_mmap(struct file *file, struct vm_area_struct *vma)
{ … }
static int snd_info_entry_open(struct inode *inode, struct file *file)
{ … }
static int snd_info_entry_release(struct inode *inode, struct file *file)
{ … }
static const struct proc_ops snd_info_entry_operations = …;
static ssize_t snd_info_text_entry_write(struct file *file,
const char __user *buffer,
size_t count, loff_t *offset)
{ … }
static int snd_info_seq_show(struct seq_file *seq, void *p)
{ … }
static int snd_info_text_entry_open(struct inode *inode, struct file *file)
{ … }
static int snd_info_text_entry_release(struct inode *inode, struct file *file)
{ … }
static const struct proc_ops snd_info_text_entry_ops = …;
static struct snd_info_entry *create_subdir(struct module *mod,
const char *name)
{ … }
static struct snd_info_entry *
snd_info_create_entry(const char *name, struct snd_info_entry *parent,
struct module *module);
int __init snd_info_init(void)
{ … }
int __exit snd_info_done(void)
{ … }
static void snd_card_id_read(struct snd_info_entry *entry,
struct snd_info_buffer *buffer)
{ … }
int snd_info_card_create(struct snd_card *card)
{ … }
int snd_info_card_register(struct snd_card *card)
{ … }
void snd_info_card_id_change(struct snd_card *card)
{ … }
void snd_info_card_disconnect(struct snd_card *card)
{ … }
int snd_info_card_free(struct snd_card *card)
{ … }
int snd_info_get_line(struct snd_info_buffer *buffer, char *line, int len)
{ … }
EXPORT_SYMBOL(…);
const char *snd_info_get_str(char *dest, const char *src, int len)
{ … }
EXPORT_SYMBOL(…);
static struct snd_info_entry *
snd_info_create_entry(const char *name, struct snd_info_entry *parent,
struct module *module)
{ … }
struct snd_info_entry *snd_info_create_module_entry(struct module * module,
const char *name,
struct snd_info_entry *parent)
{ … }
EXPORT_SYMBOL(…);
struct snd_info_entry *snd_info_create_card_entry(struct snd_card *card,
const char *name,
struct snd_info_entry * parent)
{ … }
EXPORT_SYMBOL(…);
static void snd_info_clear_entries(struct snd_info_entry *entry)
{ … }
void snd_info_free_entry(struct snd_info_entry * entry)
{ … }
EXPORT_SYMBOL(…);
static int __snd_info_register(struct snd_info_entry *entry)
{ … }
int snd_info_register(struct snd_info_entry *entry)
{ … }
EXPORT_SYMBOL(…);
int snd_card_rw_proc_new(struct snd_card *card, const char *name,
void *private_data,
void (*read)(struct snd_info_entry *,
struct snd_info_buffer *),
void (*write)(struct snd_info_entry *entry,
struct snd_info_buffer *buffer))
{ … }
EXPORT_SYMBOL_GPL(…);
static void snd_info_version_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer)
{ … }
static int __init snd_info_version_init(void)
{ … }