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 */
13struct iso_packets_buffer {
14	struct fw_iso_buffer iso_buffer;
15	struct {
16		void *buffer;
17		unsigned int offset;
18	} *packets;
19};
20
21int 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);
24void iso_packets_buffer_destroy(struct iso_packets_buffer *b,
25				struct fw_unit *unit);
26
27#endif
28