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

seq_device.h (2165B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2#ifndef __SOUND_SEQ_DEVICE_H
      3#define __SOUND_SEQ_DEVICE_H
      4
      5/*
      6 *  ALSA sequencer device management
      7 *  Copyright (c) 1999 by Takashi Iwai <tiwai@suse.de>
      8 */
      9
     10/*
     11 * registered device information
     12 */
     13
     14struct snd_seq_device {
     15	/* device info */
     16	struct snd_card *card;	/* sound card */
     17	int device;		/* device number */
     18	const char *id;		/* driver id */
     19	char name[80];		/* device name */
     20	int argsize;		/* size of the argument */
     21	void *driver_data;	/* private data for driver */
     22	void *private_data;	/* private data for the caller */
     23	void (*private_free)(struct snd_seq_device *device);
     24	struct device dev;
     25};
     26
     27#define to_seq_dev(_dev) \
     28	container_of(_dev, struct snd_seq_device, dev)
     29
     30/* sequencer driver */
     31
     32/* driver operators
     33 * probe:
     34 *	Initialize the device with given parameters.
     35 *	Typically,
     36 *		1. call snd_hwdep_new
     37 *		2. allocate private data and initialize it
     38 *		3. call snd_hwdep_register
     39 *		4. store the instance to dev->driver_data pointer.
     40 *		
     41 * remove:
     42 *	Release the private data.
     43 *	Typically, call snd_device_free(dev->card, dev->driver_data)
     44 */
     45struct snd_seq_driver {
     46	struct device_driver driver;
     47	char *id;
     48	int argsize;
     49};
     50
     51#define to_seq_drv(_drv) \
     52	container_of(_drv, struct snd_seq_driver, driver)
     53
     54/*
     55 * prototypes
     56 */
     57#ifdef CONFIG_MODULES
     58void snd_seq_device_load_drivers(void);
     59#else
     60#define snd_seq_device_load_drivers()
     61#endif
     62int snd_seq_device_new(struct snd_card *card, int device, const char *id,
     63		       int argsize, struct snd_seq_device **result);
     64
     65#define SNDRV_SEQ_DEVICE_ARGPTR(dev) (void *)((char *)(dev) + sizeof(struct snd_seq_device))
     66
     67int __must_check __snd_seq_driver_register(struct snd_seq_driver *drv,
     68					   struct module *mod);
     69#define snd_seq_driver_register(drv) \
     70	__snd_seq_driver_register(drv, THIS_MODULE)
     71void snd_seq_driver_unregister(struct snd_seq_driver *drv);
     72
     73#define module_snd_seq_driver(drv) \
     74	module_driver(drv, snd_seq_driver_register, snd_seq_driver_unregister)
     75
     76/*
     77 * id strings for generic devices
     78 */
     79#define SNDRV_SEQ_DEV_ID_MIDISYNTH	"seq-midi"
     80#define SNDRV_SEQ_DEV_ID_OPL3		"opl3-synth"
     81
     82#endif /* __SOUND_SEQ_DEVICE_H */