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_kernel.h (3378B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2#ifndef __SOUND_SEQ_KERNEL_H
      3#define __SOUND_SEQ_KERNEL_H
      4
      5/*
      6 *  Main kernel header file for the ALSA sequencer
      7 *  Copyright (c) 1998 by Frank van de Pol <fvdpol@coil.demon.nl>
      8 */
      9#include <linux/time.h>
     10#include <sound/asequencer.h>
     11
     12typedef struct snd_seq_real_time snd_seq_real_time_t;
     13typedef union snd_seq_timestamp snd_seq_timestamp_t;
     14
     15/* maximum number of queues */
     16#define SNDRV_SEQ_MAX_QUEUES		32
     17
     18/* max number of concurrent clients */
     19#define SNDRV_SEQ_MAX_CLIENTS 		192
     20
     21/* max number of concurrent ports */
     22#define SNDRV_SEQ_MAX_PORTS 		254
     23
     24/* max number of events in memory pool */
     25#define SNDRV_SEQ_MAX_EVENTS		2000
     26
     27/* default number of events in memory pool */
     28#define SNDRV_SEQ_DEFAULT_EVENTS	500
     29
     30/* max number of events in memory pool for one client (outqueue) */
     31#define SNDRV_SEQ_MAX_CLIENT_EVENTS	2000
     32
     33/* default number of events in memory pool for one client (outqueue) */
     34#define SNDRV_SEQ_DEFAULT_CLIENT_EVENTS	200
     35
     36/* max delivery path length */
     37/* NOTE: this shouldn't be greater than MAX_LOCKDEP_SUBCLASSES */
     38#define SNDRV_SEQ_MAX_HOPS		8
     39
     40/* max size of event size */
     41#define SNDRV_SEQ_MAX_EVENT_LEN		0x3fffffff
     42
     43/* call-backs for kernel port */
     44struct snd_seq_port_callback {
     45	struct module *owner;
     46	void *private_data;
     47	int (*subscribe)(void *private_data, struct snd_seq_port_subscribe *info);
     48	int (*unsubscribe)(void *private_data, struct snd_seq_port_subscribe *info);
     49	int (*use)(void *private_data, struct snd_seq_port_subscribe *info);
     50	int (*unuse)(void *private_data, struct snd_seq_port_subscribe *info);
     51	int (*event_input)(struct snd_seq_event *ev, int direct, void *private_data, int atomic, int hop);
     52	void (*private_free)(void *private_data);
     53	/*...*/
     54};
     55
     56/* interface for kernel client */
     57__printf(3, 4)
     58int snd_seq_create_kernel_client(struct snd_card *card, int client_index,
     59				 const char *name_fmt, ...);
     60int snd_seq_delete_kernel_client(int client);
     61int snd_seq_kernel_client_enqueue(int client, struct snd_seq_event *ev,
     62				  struct file *file, bool blocking);
     63int snd_seq_kernel_client_dispatch(int client, struct snd_seq_event *ev, int atomic, int hop);
     64int snd_seq_kernel_client_ctl(int client, unsigned int cmd, void *arg);
     65
     66#define SNDRV_SEQ_EXT_MASK	0xc0000000
     67#define SNDRV_SEQ_EXT_USRPTR	0x80000000
     68#define SNDRV_SEQ_EXT_CHAINED	0x40000000
     69
     70typedef int (*snd_seq_dump_func_t)(void *ptr, void *buf, int count);
     71int snd_seq_expand_var_event(const struct snd_seq_event *event, int count, char *buf,
     72			     int in_kernel, int size_aligned);
     73int snd_seq_dump_var_event(const struct snd_seq_event *event,
     74			   snd_seq_dump_func_t func, void *private_data);
     75
     76/* interface for OSS emulation */
     77int snd_seq_set_queue_tempo(int client, struct snd_seq_queue_tempo *tempo);
     78
     79/* port callback routines */
     80void snd_port_init_callback(struct snd_seq_port_callback *p);
     81struct snd_seq_port_callback *snd_port_alloc_callback(void);
     82
     83/* port attach/detach */
     84int snd_seq_event_port_attach(int client, struct snd_seq_port_callback *pcbp,
     85			      int cap, int type, int midi_channels, int midi_voices, char *portname);
     86int snd_seq_event_port_detach(int client, int port);
     87
     88#ifdef CONFIG_MODULES
     89void snd_seq_autoload_init(void);
     90void snd_seq_autoload_exit(void);
     91#else
     92#define snd_seq_autoload_init()
     93#define snd_seq_autoload_exit()
     94#endif
     95
     96#endif /* __SOUND_SEQ_KERNEL_H */