76 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2#ifndef __SOUND_PCM_OSS_H3#define __SOUND_PCM_OSS_H4 5/*6 * Digital Audio (PCM) - OSS compatibility abstract layer7 * Copyright (c) by Jaroslav Kysela <perex@perex.cz>8 */9 10struct snd_pcm_oss_setup {11 char *task_name;12 unsigned int disable:1,13 direct:1,14 block:1,15 nonblock:1,16 partialfrag:1,17 nosilence:1,18 buggyptr:1;19 unsigned int periods;20 unsigned int period_size;21 struct snd_pcm_oss_setup *next;22};23 24struct snd_pcm_oss_runtime {25 unsigned params: 1, /* format/parameter change */26 prepare: 1, /* need to prepare the operation */27 trigger: 1, /* trigger flag */28 sync_trigger: 1; /* sync trigger flag */29 int rate; /* requested rate */30 int format; /* requested OSS format */31 unsigned int channels; /* requested channels */32 unsigned int fragshift;33 unsigned int maxfrags;34 unsigned int subdivision; /* requested subdivision */35 size_t period_bytes; /* requested period size */36 size_t period_frames; /* period frames for poll */37 size_t period_ptr; /* actual write pointer to period */38 unsigned int periods;39 size_t buffer_bytes; /* requested buffer size */40 size_t bytes; /* total # bytes processed */41 size_t mmap_bytes;42 char *buffer; /* vmallocated period */43 size_t buffer_used; /* used length from period buffer */44 struct mutex params_lock;45 atomic_t rw_ref; /* concurrent read/write accesses */46#ifdef CONFIG_SND_PCM_OSS_PLUGINS47 struct snd_pcm_plugin *plugin_first;48 struct snd_pcm_plugin *plugin_last;49#endif50 unsigned int prev_hw_ptr_period;51};52 53struct snd_pcm_oss_file {54 struct snd_pcm_substream *streams[2];55};56 57struct snd_pcm_oss_substream {58 unsigned oss: 1; /* oss mode */59 struct snd_pcm_oss_setup setup; /* active setup */60};61 62struct snd_pcm_oss_stream {63 struct snd_pcm_oss_setup *setup_list; /* setup list */64 struct mutex setup_mutex;65#ifdef CONFIG_SND_VERBOSE_PROCFS66 struct snd_info_entry *proc_entry;67#endif68};69 70struct snd_pcm_oss {71 int reg;72 unsigned int reg_mask;73};74 75#endif /* __SOUND_PCM_OSS_H */76