mp_dmabuf_devmem.h 964 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * Dmabuf device memory provider.
  4. *
  5. * Authors: Mina Almasry <almasrymina@google.com>
  6. *
  7. */
  8. #ifndef _NET_MP_DMABUF_DEVMEM_H
  9. #define _NET_MP_DMABUF_DEVMEM_H
  10. #include <net/netmem.h>
  11. #if defined(CONFIG_NET_DEVMEM)
  12. int mp_dmabuf_devmem_init(struct page_pool *pool);
  13. netmem_ref mp_dmabuf_devmem_alloc_netmems(struct page_pool *pool, gfp_t gfp);
  14. void mp_dmabuf_devmem_destroy(struct page_pool *pool);
  15. bool mp_dmabuf_devmem_release_page(struct page_pool *pool, netmem_ref netmem);
  16. #else
  17. static inline int mp_dmabuf_devmem_init(struct page_pool *pool)
  18. {
  19. return -EOPNOTSUPP;
  20. }
  21. static inline netmem_ref
  22. mp_dmabuf_devmem_alloc_netmems(struct page_pool *pool, gfp_t gfp)
  23. {
  24. return 0;
  25. }
  26. static inline void mp_dmabuf_devmem_destroy(struct page_pool *pool)
  27. {
  28. }
  29. static inline bool
  30. mp_dmabuf_devmem_release_page(struct page_pool *pool, netmem_ref netmem)
  31. {
  32. return false;
  33. }
  34. #endif
  35. #endif /* _NET_MP_DMABUF_DEVMEM_H */