mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-14 14:34:28 +08:00
1a59d1b8e0
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1334 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Richard Fontana <rfontana@redhat.com> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070033.113240726@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* ALSA sequencer Priority Queue
|
|
* Copyright (c) 1998 by Frank van de Pol <fvdpol@coil.demon.nl>
|
|
*/
|
|
#ifndef __SND_SEQ_PRIOQ_H
|
|
#define __SND_SEQ_PRIOQ_H
|
|
|
|
#include "seq_memory.h"
|
|
|
|
|
|
/* === PRIOQ === */
|
|
|
|
struct snd_seq_prioq {
|
|
struct snd_seq_event_cell *head; /* pointer to head of prioq */
|
|
struct snd_seq_event_cell *tail; /* pointer to tail of prioq */
|
|
int cells;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
|
|
/* create new prioq (constructor) */
|
|
struct snd_seq_prioq *snd_seq_prioq_new(void);
|
|
|
|
/* delete prioq (destructor) */
|
|
void snd_seq_prioq_delete(struct snd_seq_prioq **fifo);
|
|
|
|
/* enqueue cell to prioq */
|
|
int snd_seq_prioq_cell_in(struct snd_seq_prioq *f, struct snd_seq_event_cell *cell);
|
|
|
|
/* dequeue cell from prioq */
|
|
struct snd_seq_event_cell *snd_seq_prioq_cell_out(struct snd_seq_prioq *f,
|
|
void *current_time);
|
|
|
|
/* return number of events available in prioq */
|
|
int snd_seq_prioq_avail(struct snd_seq_prioq *f);
|
|
|
|
/* client left queue */
|
|
void snd_seq_prioq_leave(struct snd_seq_prioq *f, int client, int timestamp);
|
|
|
|
/* Remove events */
|
|
void snd_seq_prioq_remove_events(struct snd_seq_prioq *f, int client,
|
|
struct snd_seq_remove_events *info);
|
|
|
|
#endif
|