xref: /linux/sound/core/seq/oss/seq_oss_writeq.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * OSS compatible sequencer driver
4  * write priority queue
5  *
6  * Copyright (C) 1998,99 Takashi Iwai <tiwai@suse.de>
7  */
8 
9 #ifndef __SEQ_OSS_WRITEQ_H
10 #define __SEQ_OSS_WRITEQ_H
11 
12 #include "seq_oss_device.h"
13 
14 
15 struct seq_oss_writeq {
16 	struct seq_oss_devinfo *dp;
17 	int maxlen;
18 	abstime_t sync_time;
19 	int sync_event_put;
20 	wait_queue_head_t sync_sleep;
21 	spinlock_t sync_lock;
22 };
23 
24 
25 /*
26  * seq_oss_writeq.c
27  */
28 struct seq_oss_writeq *snd_seq_oss_writeq_new(struct seq_oss_devinfo *dp, int maxlen);
29 void snd_seq_oss_writeq_delete(struct seq_oss_writeq *q);
30 void snd_seq_oss_writeq_clear(struct seq_oss_writeq *q);
31 int snd_seq_oss_writeq_sync(struct seq_oss_writeq *q);
32 void snd_seq_oss_writeq_wakeup(struct seq_oss_writeq *q, abstime_t time);
33 int snd_seq_oss_writeq_get_free_size(struct seq_oss_writeq *q);
34 void snd_seq_oss_writeq_set_output(struct seq_oss_writeq *q, int size);
35 
36 
37 #endif
38