|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 23/27] libxl: ocaml: add VM lifecycle operations
> On Wed, 2013-11-06 at 17:50 +0000, Rob Hoes wrote:
> > + if (async != Val_none) {
> > + ao_how->callback = async_callback;
> > + ao_how->u.for_callback = (void *) Some_val(async);
> > + CAMLreturnT(libxl_asyncop_how *, ao_how);
> > + }
> > + else
> > + CAMLreturnT(libxl_asyncop_how *, NULL);
>
> This doesn't appear to be in my caml headers on Debian Wheezy (3.12.1-4).
> A random hit on google http://docs.camlcity.org/docs/godisrc/oasis-ocaml-
> fd-1.1.1.tar.gz/ocaml-fd-1.1.1/lib/fd_stubs.c suggests this was new in 3.09.4
> so why don't I have it?
That's very odd... I am just doing what is advised on
http://caml.inria.fr/pub/docs/manual-ocaml-312/manual032.html#toc14, which is
the official documentation for OCaml 3.12.
> We would really like to keep this stuff working with some of the more
> common distro's stable versions of ocaml, so if this is really missing then
> perhaps a compat version would be needed?
I'll see if I can find out more...
> WTF is it doing anyway? Something to do with this C struct pointer
> containing a Value?
The docs say:
"The macros CAMLreturn, CAMLreturn0, and CAMLreturnT are used to replace the C
keyword return. Every occurence of return x must be replaced by CAMLreturn (x)
if x has type value, or CAMLreturnT (t, x) (where t is the type of x); every
occurence of return without argument must be replaced by CAMLreturn0. If your C
function is a procedure (i.e. if it returns void), you must insert CAMLreturn0
at the end (to replace Câs implicit return)."
My compiler complained when I initially tried to use just CAMLreturn().
Rob
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |