root/sound/core/seq/seq_prioq.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  *   ALSA sequencer Priority Queue
   4  *   Copyright (c) 1998 by Frank van de Pol <fvdpol@coil.demon.nl>
   5  */
   6 #ifndef __SND_SEQ_PRIOQ_H
   7 #define __SND_SEQ_PRIOQ_H
   8 
   9 #include "seq_memory.h"
  10 
  11 
  12 /* === PRIOQ === */
  13 
  14 struct snd_seq_prioq {
  15         struct snd_seq_event_cell *head;      /* pointer to head of prioq */
  16         struct snd_seq_event_cell *tail;      /* pointer to tail of prioq */
  17         int cells;
  18         spinlock_t lock;
  19 };
  20 
  21 
  22 /* create new prioq (constructor) */
  23 struct snd_seq_prioq *snd_seq_prioq_new(void);
  24 
  25 /* delete prioq (destructor) */
  26 void snd_seq_prioq_delete(struct snd_seq_prioq **fifo);
  27 
  28 /* enqueue cell to prioq */
  29 int snd_seq_prioq_cell_in(struct snd_seq_prioq *f, struct snd_seq_event_cell *cell);
  30 
  31 /* dequeue cell from prioq */ 
  32 struct snd_seq_event_cell *snd_seq_prioq_cell_out(struct snd_seq_prioq *f,
  33                                                   void *current_time);
  34 
  35 /* return number of events available in prioq */
  36 int snd_seq_prioq_avail(struct snd_seq_prioq *f);
  37 
  38 /* client left queue */
  39 void snd_seq_prioq_leave(struct snd_seq_prioq *f, int client, int timestamp);        
  40 
  41 /* Remove events */
  42 void snd_seq_prioq_remove_events(struct snd_seq_prioq *f, int client,
  43                                  struct snd_seq_remove_events *info);
  44 
  45 #endif

/* [<][>][^][v][top][bottom][index][help] */