include $(XEN_ROOT)/tools/Rules.mk
MAJOR = 1
-MINOR = 0
+MINOR = 1
SHLIB_LDFLAGS += -Wl,--version-script=libxencall.map
CFLAGS += -Werror -Wmissing-prototypes
errno = saved_errno;
}
+int xencall_buffers_never_fault(xencall_handle *xcall)
+{
+ return 1;
+}
+
/*
* Local variables:
* mode: C
void *xencall_alloc_buffer(xencall_handle *xcall, size_t size);
void xencall_free_buffer(xencall_handle *xcall, void *p);
+/*
+ * Are allocated hypercall buffers safe to be accessed by the hypervisor all
+ * the time?
+ * Returns 0 if EFAULT might be possible.
+ */
+int xencall_buffers_never_fault(xencall_handle *xcall);
+
#endif
/*
xencall_free_buffer_pages;
local: *; /* Do not expose anything by default */
};
+
+VERS_1.1 {
+ global:
+ xencall_buffers_never_fault;
+} VERS_1.0;
errno = saved_errno;
}
+int xencall_buffers_never_fault(xencall_handle *xcall)
+{
+ return xcall->buf_fd >= 0;
+}
+
/*
* Local variables:
* mode: C
free(ptr);
}
+int xencall_buffers_never_fault(xencall_handle *xcall)
+{
+ return 1;
+}
+
/*
* Local variables:
* mode: C
return hypercall->retval;
}
+int xencall_buffers_never_fault(xencall_handle *xcall)
+{
+ return 1;
+}
+
/*
* Local variables:
* mode: C
return ioctl(fd, IOCTL_PRIVCMD_HYPERCALL, hypercall);
}
+int xencall_buffers_never_fault(xencall_handle *xcall)
+{
+ return 1;
+}
+
/*
* Local variables:
* mode: C