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

hwdep.h (1925B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2#ifndef __SOUND_HWDEP_H
      3#define __SOUND_HWDEP_H
      4
      5/*
      6 *  Hardware dependent layer 
      7 *  Copyright (c) by Jaroslav Kysela <perex@perex.cz>
      8 */
      9
     10#include <sound/asound.h>
     11#include <linux/poll.h>
     12
     13struct snd_hwdep;
     14
     15/* hwdep file ops; all ops can be NULL */
     16struct snd_hwdep_ops {
     17	long long (*llseek)(struct snd_hwdep *hw, struct file *file,
     18			    long long offset, int orig);
     19	long (*read)(struct snd_hwdep *hw, char __user *buf,
     20		     long count, loff_t *offset);
     21	long (*write)(struct snd_hwdep *hw, const char __user *buf,
     22		      long count, loff_t *offset);
     23	int (*open)(struct snd_hwdep *hw, struct file * file);
     24	int (*release)(struct snd_hwdep *hw, struct file * file);
     25	__poll_t (*poll)(struct snd_hwdep *hw, struct file *file,
     26			     poll_table *wait);
     27	int (*ioctl)(struct snd_hwdep *hw, struct file *file,
     28		     unsigned int cmd, unsigned long arg);
     29	int (*ioctl_compat)(struct snd_hwdep *hw, struct file *file,
     30			    unsigned int cmd, unsigned long arg);
     31	int (*mmap)(struct snd_hwdep *hw, struct file *file,
     32		    struct vm_area_struct *vma);
     33	int (*dsp_status)(struct snd_hwdep *hw,
     34			  struct snd_hwdep_dsp_status *status);
     35	int (*dsp_load)(struct snd_hwdep *hw,
     36			struct snd_hwdep_dsp_image *image);
     37};
     38
     39struct snd_hwdep {
     40	struct snd_card *card;
     41	struct list_head list;
     42	int device;
     43	char id[32];
     44	char name[80];
     45	int iface;
     46
     47#ifdef CONFIG_SND_OSSEMUL
     48	int oss_type;
     49	int ossreg;
     50#endif
     51
     52	struct snd_hwdep_ops ops;
     53	wait_queue_head_t open_wait;
     54	void *private_data;
     55	void (*private_free) (struct snd_hwdep *hwdep);
     56	struct device dev;
     57
     58	struct mutex open_mutex;
     59	int used;			/* reference counter */
     60	unsigned int dsp_loaded;	/* bit fields of loaded dsp indices */
     61	unsigned int exclusive:1;	/* exclusive access mode */
     62};
     63
     64extern int snd_hwdep_new(struct snd_card *card, char *id, int device,
     65			 struct snd_hwdep **rhwdep);
     66
     67#endif /* __SOUND_HWDEP_H */