[Libguestfs] [libnbd PATCH 1/3] generator: Introduce REnum/RFlags return types
Richard W.M. Jones
rjones at redhat.com
Mon Sep 7 14:13:34 UTC 2020
On Sat, Sep 05, 2020 at 08:40:58PM -0500, Eric Blake wrote:
> diff --git a/generator/API.mli b/generator/API.mli
> index 712e837..e45b5c0 100644
> --- a/generator/API.mli
> +++ b/generator/API.mli
> @@ -78,6 +78,8 @@ and ret =
> | RString (** return a newly allocated string,
> caller frees, NULL for error *)
> | RUInt (** return a bitmask, no error possible *)
> +| REnum of enum (** return an enum, no error possible *)
> +| RFlags of flags (** return bitmask of flags, no error possible *)
> and closure = {
> cbname : string; (** name of callback function *)
> cbargs : cbarg list; (** all closures return int for now *)
> diff --git a/generator/C.ml b/generator/C.ml
> index 6b65f6e..1eb5e85 100644
> --- a/generator/C.ml
> +++ b/generator/C.ml
> @@ -66,15 +66,15 @@ let errcode_of_ret =
> function
> | RBool | RErr | RFd | RInt | RInt64 | RCookie -> Some "-1"
> | RStaticString | RString -> Some "NULL"
> - | RUInt -> None (* errors not possible *)
> + | RUInt | REnum (_) | RFlags (_) -> None (* errors not possible *)
>
> let type_of_ret =
> function
> - | RBool | RErr | RFd | RInt -> "int"
> + | RBool | RErr | RFd | RInt | REnum (_) -> "int"
This is good because Enum is passed as int.
> [...]
You used unsigned for RFlags, but shouldn't it be this instead?
+ | RFlags (_) -> "uint32_t"
The rest of the patch looks fine.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/
More information about the Libguestfs
mailing list