| /* SPDX-License-Identifier: GPL-2.0-or-later */ | |
| /* | |
| * Dmabuf device memory provider. | |
| * | |
| * Authors: Mina Almasry <almasrymina@google.com> | |
| * | |
| */ | |
| #ifndef _NET_MP_DMABUF_DEVMEM_H | |
| #define _NET_MP_DMABUF_DEVMEM_H | |
| #include <net/netmem.h> | |
| #if defined(CONFIG_NET_DEVMEM) | |
| int mp_dmabuf_devmem_init(struct page_pool *pool); | |
| netmem_ref mp_dmabuf_devmem_alloc_netmems(struct page_pool *pool, gfp_t gfp); | |
| void mp_dmabuf_devmem_destroy(struct page_pool *pool); | |
| bool mp_dmabuf_devmem_release_page(struct page_pool *pool, netmem_ref netmem); | |
| #else | |
| static inline int mp_dmabuf_devmem_init(struct page_pool *pool) | |
| { | |
| return -EOPNOTSUPP; | |
| } | |
| static inline netmem_ref | |
| mp_dmabuf_devmem_alloc_netmems(struct page_pool *pool, gfp_t gfp) | |
| { | |
| return 0; | |
| } | |
| static inline void mp_dmabuf_devmem_destroy(struct page_pool *pool) | |
| { | |
| } | |
| static inline bool | |
| mp_dmabuf_devmem_release_page(struct page_pool *pool, netmem_ref netmem) | |
| { | |
| return false; | |
| } | |
| #endif | |
| #endif /* _NET_MP_DMABUF_DEVMEM_H */ |