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