xref: /linux/sound/firewire/packets-buffer.h (revision 6fdcba32711044c35c0e1b094cbd8f3f0b4472c9)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef SOUND_FIREWIRE_PACKETS_BUFFER_H_INCLUDED
3 #define SOUND_FIREWIRE_PACKETS_BUFFER_H_INCLUDED
4 
5 #include <linux/dma-mapping.h>
6 #include <linux/firewire.h>
7 
8 /**
9  * struct iso_packets_buffer - manages a buffer for many packets
10  * @iso_buffer: the memory containing the packets
11  * @packets: an array, with each element pointing to one packet
12  */
13 struct iso_packets_buffer {
14 	struct fw_iso_buffer iso_buffer;
15 	struct {
16 		void *buffer;
17 		unsigned int offset;
18 	} *packets;
19 };
20 
21 int iso_packets_buffer_init(struct iso_packets_buffer *b, struct fw_unit *unit,
22 			    unsigned int count, unsigned int packet_size,
23 			    enum dma_data_direction direction);
24 void iso_packets_buffer_destroy(struct iso_packets_buffer *b,
25 				struct fw_unit *unit);
26 
27 #endif
28