From 1e12872d29cc36c61894e347dd3409d7d206699d Mon Sep 17 00:00:00 2001 From: Roger Pau Monne Date: Tue, 19 Feb 2019 16:26:08 +0100 Subject: [PATCH] libs/gnttab: add missing FreeBSD functions MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The FreeBSD implementation is missing the following functions: osdep_gnttab_dmabuf_exp_from_refs osdep_gnttab_dmabuf_exp_wait_released osdep_gnttab_dmabuf_imp_to_refs osdep_gnttab_dmabuf_imp_release Which all deal with dmabufs, that only exists on Linux. Implement them using abort, since such functions should never be called on FreeBSD. FTR, I realized those functions where missing when attempting to use pygrub: Traceback (most recent call last): File "/usr/local/lib/xen/bin/pygrub", line 19, in import xen.lowlevel.xc ImportError: /usr/local/lib/libxengnttab.so.1: Undefined symbol "osdep_gnttab_dmabuf_exp_from_refs" Fixes: ee8105 ("libgnttab: Add support for Linux dma-buf") Signed-off-by: Roger Pau Monné Acked-by: Wei Liu Release-acked-by: Juergen Gross Reviewed-by: Oleksandr Andrushchenko --- tools/libs/gnttab/freebsd.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tools/libs/gnttab/freebsd.c b/tools/libs/gnttab/freebsd.c index 5c12fe9b0b..886b588303 100644 --- a/tools/libs/gnttab/freebsd.c +++ b/tools/libs/gnttab/freebsd.c @@ -307,6 +307,35 @@ int osdep_gntshr_unshare(xengntshr_handle *xgs, return munmap(start_address, count * PAGE_SIZE); } +/* + * The functions below are Linux-isms that will likely never be implemented + * on FreeBSD unless FreeBSD also implements something akin to Linux dmabuf. + */ +int osdep_gnttab_dmabuf_exp_from_refs(xengnttab_handle *xgt, uint32_t domid, + uint32_t flags, uint32_t count, + const uint32_t *refs, + uint32_t *dmabuf_fd) +{ + abort(); +} + +int osdep_gnttab_dmabuf_exp_wait_released(xengnttab_handle *xgt, + uint32_t fd, uint32_t wait_to_ms) +{ + abort(); +} + +int osdep_gnttab_dmabuf_imp_to_refs(xengnttab_handle *xgt, uint32_t domid, + uint32_t fd, uint32_t count, uint32_t *refs) +{ + abort(); +} + +int osdep_gnttab_dmabuf_imp_release(xengnttab_handle *xgt, uint32_t fd) +{ + abort(); +} + /* * Local variables: * mode: C -- 2.39.5