ping > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > --- > server/spice-char.h | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > Changes since v1: > - updated comments > > diff --git a/server/spice-char.h b/server/spice-char.h > index 1a8a031d2..a3b9d26bf 100644 > --- a/server/spice-char.h > +++ b/server/spice-char.h > @@ -40,9 +40,35 @@ typedef enum { > struct SpiceCharDeviceInterface { > SpiceBaseInterface base; > > + /* Set the state of the device. > + * connected should be 0 or 1. > + * Setting state to 0 causes the device to be disabled. > + * This can be used by SPICE server to tell guest that device is not > + * working anymore (for instance because the guest itself sent some > + * wrong request). > + */ > void (*state)(SpiceCharDeviceInstance *sin, int connected); > + > + /* Write some bytes to the character device. > + * Returns bytes copied from buf or a value < 0 on errors. > + * If able to write some bytes the function should return the amount of > + * bytes successfully written. > + * Function can return a value < len, even 0. > + * errno is not determined after calling this function. > + * Function should be implemented as no-blocking. > + * A len < 0 causes indeterminate results. > + */ > int (*write)(SpiceCharDeviceInstance *sin, const uint8_t *buf, int len); > + > + /* Read some bytes from the character device. > + * Returns bytes copied into buf or a value < 0 on errors. > + * Function can return 0 if no data is available or len is 0. > + * errno is not determined after calling this function. > + * Function should be implemented as no-blocking. > + * A len < 0 causes indeterminate results. > + */ > int (*read)(SpiceCharDeviceInstance *sin, uint8_t *buf, int len); > + > void (*event)(SpiceCharDeviceInstance *sin, uint8_t event); > spice_char_device_flags flags; > }; _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel