1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (C) STMicroelectronics SA 2015
4  * Authors: Yannick Fertre <yannick.fertre@st.com>
5  *          Hugues Fruchet <hugues.fruchet@st.com>
6  */
7 
8 #ifndef HVA_MEM_H
9 #define HVA_MEM_H
10 
11 /**
12  * struct hva_buffer - hva buffer
13  *
14  * @name:  name of requester
15  * @paddr: physical address (for hardware)
16  * @vaddr: virtual address (kernel can read/write)
17  * @size:  size of buffer
18  */
19 struct hva_buffer {
20 	const char		*name;
21 	dma_addr_t		paddr;
22 	void			*vaddr;
23 	u32			size;
24 };
25 
26 int hva_mem_alloc(struct hva_ctx *ctx,
27 		  __u32 size,
28 		  const char *name,
29 		  struct hva_buffer **buf);
30 
31 void hva_mem_free(struct hva_ctx *ctx,
32 		  struct hva_buffer *buf);
33 
34 #endif /* HVA_MEM_H */
35