1 // SPDX-License-Identifier: GPL-2.0-only
2 #ifndef __MEMALLOC_LOCAL_H
3 #define __MEMALLOC_LOCAL_H
4 
5 struct snd_malloc_ops {
6 	void *(*alloc)(struct snd_dma_buffer *dmab, size_t size);
7 	void (*free)(struct snd_dma_buffer *dmab);
8 	dma_addr_t (*get_addr)(struct snd_dma_buffer *dmab, size_t offset);
9 	struct page *(*get_page)(struct snd_dma_buffer *dmab, size_t offset);
10 	unsigned int (*get_chunk_size)(struct snd_dma_buffer *dmab,
11 				       unsigned int ofs, unsigned int size);
12 	int (*mmap)(struct snd_dma_buffer *dmab, struct vm_area_struct *area);
13 	void (*sync)(struct snd_dma_buffer *dmab, enum snd_dma_sync_mode mode);
14 };
15 
16 #ifdef CONFIG_SND_DMA_SGBUF
17 extern const struct snd_malloc_ops snd_dma_sg_ops;
18 #endif
19 
20 #endif /* __MEMALLOC_LOCAL_H */
21