libs/call: fix build on NetBSD

Define PAGE_* if not already defined
Catch up with osdep interface change.

Signed-off-by: Manuel Bouyer <bouyer@netbsd.org>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
This commit is contained in:
Manuel Bouyer authored and Andrew Cooper committed 2021-01-29 22:50:08 +00:00
1 parent 82ed3155fe
commit 51efa5f87b
2 files changed
+14 -9

No files matched your search

+11 -8
View File
@@ -19,12 +19,15 @@
* Split from xc_netbsd.c
*/
#include "xc_private.h"
#include <unistd.h>
#include <fcntl.h>
#include <malloc.h>
#include <errno.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#include "private.h"
int osdep_xencall_open(xencall_handle *xcall)
{
@@ -69,12 +72,13 @@ int osdep_xencall_close(xencall_handle *xcall)
return close(fd);
}
void *osdep_alloc_hypercall_buffer(xencall_handle *xcall, size_t npages)
void *osdep_alloc_pages(xencall_handle *xcall, size_t npages)
{
size_t size = npages * XC_PAGE_SIZE;
size_t size = npages * PAGE_SIZE;
void *p;
int ret;
ret = posix_memalign(&p, XC_PAGE_SIZE, size);
ret = posix_memalign(&p, PAGE_SIZE, size);
if ( ret != 0 || !p )
return NULL;
@@ -86,14 +90,13 @@ void *osdep_alloc_hypercall_buffer(xencall_handle *xcall, size_t npages)
return p;
}
void osdep_free_hypercall_buffer(xencall_handle *xcall, void *ptr,
size_t npages)
void osdep_free_pages(xencall_handle *xcall, void *ptr, size_t npages)
{
(void) munlock(ptr, npages * XC_PAGE_SIZE);
munlock(ptr, npages * PAGE_SIZE);
free(ptr);
}
int do_xen_hypercall(xencall_handle *xcall, privcmd_hypercall_t *hypercall)
int osdep_hypercall(xencall_handle *xcall, privcmd_hypercall_t *hypercall)
{
int fd = xcall->fd;
int error = ioctl(fd, IOCTL_PRIVCMD_HYPERCALL, hypercall);
+3 -1
View File
@@ -12,8 +12,10 @@
#ifndef PAGE_SHIFT /* Mini-os, Yukk */
#define PAGE_SHIFT 12
#endif
#ifndef __MINIOS__ /* Yukk */
#ifndef PAGE_SIZE
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#endif
#ifndef PAGE_MASK
#define PAGE_MASK (~(PAGE_SIZE-1))
#endif
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.