cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pcm_oss.h (2063B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2#ifndef __SOUND_PCM_OSS_H
      3#define __SOUND_PCM_OSS_H
      4
      5/*
      6 *  Digital Audio (PCM) - OSS compatibility abstract layer
      7 *  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_PLUGINS
     47	struct snd_pcm_plugin *plugin_first;
     48	struct snd_pcm_plugin *plugin_last;
     49#endif
     50	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_PROCFS
     66	struct snd_info_entry *proc_entry;
     67#endif
     68};
     69
     70struct snd_pcm_oss {
     71	int reg;
     72	unsigned int reg_mask;
     73};
     74
     75#endif /* __SOUND_PCM_OSS_H */