[Libguestfs] [PATCH libnbd] lib: Copy nbd-protocol.h from nbdkit 1.15.3.

Eric Blake eblake at redhat.com
Tue Sep 24 22:24:34 UTC 2019


On 9/24/19 4:07 PM, Richard W.M. Jones wrote:
> Eventually nbdkit will install this as a public header file and we
> will be able to consume it from $includedir.  In the mean time
> synchronize with the copy in nbdkit.
> ---
>  lib/nbd-protocol.h | 57 +++++++++++++++++++++++-----------------------
>  1 file changed, 28 insertions(+), 29 deletions(-)
> 

>  /* Newstyle handshake OPT_EXPORT_NAME reply message. */
>  struct nbd_export_name_option_reply {
>    uint64_t exportsize;          /* size of export */
>    uint16_t eflags;              /* per-export flags */
>    char zeroes[124];             /* optional zeroes */
> -} __attribute__((packed));;
> +} NBD_ATTRIBUTE_PACKED;;

Double ;;


>  
> -/* Global flags. Exposed by the generator as LIBNBD_HANDSHAKE_FLAG_* instead
> +/* Global flags. */
>  #define NBD_FLAG_FIXED_NEWSTYLE 1
>  #define NBD_FLAG_NO_ZEROES      2
> - */

We won't be using these names in the rest of libnbd, except maybe we
should add a compile-time assertion that NBD_FLAG_FIXED_NEWSTYLE ==
LIBNBD_FLAG_FIXED_NEWSTYLE (ie. that our generator produces public
constants in <libnbd.h> that match the NBD protocol constants).


>  /* New-style handshake server reply when using NBD_OPT_EXPORT_NAME.
>   * Modern clients use NBD_OPT_GO instead of this.
> @@ -167,7 +167,7 @@ struct nbd_new_handshake_finish {
>    uint64_t exportsize;
>    uint16_t eflags;            /* per-export flags */
>    char zeroes[124];           /* must be sent as zero bytes */
> -} __attribute__((packed));
> +} NBD_ATTRIBUTE_PACKED;

Redundant type.


>  
> -/* Command flags. Exposed by the generator as LIBNBD_CMD_FLAG_* instead
> -#define NBD_CMD_FLAG_FUA      (1<<0)
> -#define NBD_CMD_FLAG_NO_HOLE  (1<<1)
> -#define NBD_CMD_FLAG_DF       (1<<2)
> -#define NBD_CMD_FLAG_REQ_ONE  (1<<3)
> -*/
> +#define NBD_CMD_FLAG_FUA       (1<<0)
> +#define NBD_CMD_FLAG_NO_HOLE   (1<<1)
> +#define NBD_CMD_FLAG_DF        (1<<2)
> +#define NBD_CMD_FLAG_REQ_ONE   (1<<3)
> +#define NBD_CMD_FLAG_FAST_ZERO (1<<4)

Another case where having compile-time assertions that our generator
matches protocol constants is probably worthwhile.

ACK to the plan for synchronizing.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20190924/bf919549/attachment.sig>


More information about the Libguestfs mailing list