On Mon, May 23, 2011 at 07:36:07PM +0200, Matthias Bolte wrote: > Extend procedure annotation in the .x file for stream handling. > > Adds a missing remoteStreamRelease call to remoteDomainScreenshot > error path. > --- > daemon/remote.c | 238 ------------------------------------------ > daemon/remote_generator.pl | 114 +++++++++++++++++---- > src/remote/remote_driver.c | 207 ------------------------------------ > src/remote/remote_protocol.x | 38 +++++--- > 4 files changed, 120 insertions(+), 477 deletions(-) > diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x > index 63f7ebb..5b9300a 100644 > --- a/src/remote/remote_protocol.x > +++ b/src/remote/remote_protocol.x > @@ -2054,7 +2054,14 @@ const REMOTE_PROTOCOL_VERSION = 1; > enum remote_procedure { > /* Each function must have a two-word comment. The first word is > * whether remote_generator.pl handles daemon, the second whether > - * it handles src/remote. */ > + * it handles src/remote. Additional flags can be specified after a > + * pipe. > + * > + * The (readstream|writestream)@<offset> flag lets daemon and src/remote > + * create a stream. The direction is defined from the src/remote point > + * of view. A readstream transfers data from daemon to src/remote. The > + * <offset> specifies at which offset the stream parameter is inserted > + * in the function parameter list. */ > REMOTE_PROC_OPEN = 1, /* skipgen skipgen */ > REMOTE_PROC_CLOSE = 2, /* skipgen skipgen */ > REMOTE_PROC_GET_TYPE = 3, /* autogen skipgen */ > @@ -2216,7 +2223,7 @@ enum remote_procedure { > REMOTE_PROC_SECRET_GET_VALUE = 145, /* skipgen skipgen */ > REMOTE_PROC_SECRET_UNDEFINE = 146, /* autogen autogen */ > REMOTE_PROC_SECRET_LOOKUP_BY_USAGE = 147, /* autogen autogen */ > - REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL = 148, /* skipgen skipgen */ > + REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL = 148, /* autogen autogen | writestream@1 */ > REMOTE_PROC_IS_SECURE = 149, /* autogen skipgen */ > REMOTE_PROC_DOMAIN_IS_ACTIVE = 150, /* autogen autogen */ > > @@ -2275,35 +2282,40 @@ enum remote_procedure { > REMOTE_PROC_DOMAIN_SET_VCPUS_FLAGS = 199, /* autogen autogen */ > REMOTE_PROC_DOMAIN_GET_VCPUS_FLAGS = 200, /* autogen autogen */ > > - REMOTE_PROC_DOMAIN_OPEN_CONSOLE = 201, /* skipgen skipgen */ > + REMOTE_PROC_DOMAIN_OPEN_CONSOLE = 201, /* autogen autogen | readstream@2 */ Technically this is a bi-directional stream, but that doesn't matter from a code-gen POV, so fine. > REMOTE_PROC_DOMAIN_IS_UPDATED = 202, /* autogen autogen */ > REMOTE_PROC_GET_SYSINFO = 203, /* autogen autogen */ > REMOTE_PROC_DOMAIN_SET_MEMORY_FLAGS = 204, /* autogen autogen */ > REMOTE_PROC_DOMAIN_SET_BLKIO_PARAMETERS = 205, /* skipgen skipgen */ > REMOTE_PROC_DOMAIN_GET_BLKIO_PARAMETERS = 206, /* skipgen skipgen */ > REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_SPEED = 207, /* autogen autogen */ > - REMOTE_PROC_STORAGE_VOL_UPLOAD = 208, /* skipgen skipgen */ > - REMOTE_PROC_STORAGE_VOL_DOWNLOAD = 209, /* skipgen skipgen */ > + REMOTE_PROC_STORAGE_VOL_UPLOAD = 208, /* autogen autogen | writestream@1 */ > + REMOTE_PROC_STORAGE_VOL_DOWNLOAD = 209, /* autogen autogen | readstream@1 */ > REMOTE_PROC_DOMAIN_INJECT_NMI = 210, /* autogen autogen */ > > - REMOTE_PROC_DOMAIN_SCREENSHOT = 211, /* skipgen skipgen */ > + REMOTE_PROC_DOMAIN_SCREENSHOT = 211, /* skipgen autogen | readstream@1 */ > REMOTE_PROC_DOMAIN_GET_STATE = 212, /* skipgen skipgen */ > REMOTE_PROC_DOMAIN_MIGRATE_BEGIN3 = 213, /* skipgen skipgen */ > REMOTE_PROC_DOMAIN_MIGRATE_PREPARE3 = 214, /* skipgen skipgen */ > - REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL3 = 215, /* skipgen skipgen */ > + REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL3 = 215, /* autogen skipgen | writestream@1 */ > REMOTE_PROC_DOMAIN_MIGRATE_PERFORM3 = 216, /* skipgen skipgen */ > REMOTE_PROC_DOMAIN_MIGRATE_FINISH3 = 217, /* skipgen skipgen */ > REMOTE_PROC_DOMAIN_MIGRATE_CONFIRM3 = 218, /* skipgen skipgen */ > REMOTE_PROC_DOMAIN_SET_SCHEDULER_PARAMETERS_FLAGS = 219 /* skipgen skipgen */ > > - /* > - * Notice how the entries are grouped in sets of 10 ? > + /* Notice how the entries are grouped in sets of 10 ? > * Nice isn't it. Please keep it this way when adding more. > - */ > - > - /* Each function must have a two-word comment. The first word is > + * > + * Each function must have a two-word comment. The first word is > * whether remote_generator.pl handles daemon, the second whether > - * it handles src/remote. */ > + * it handles src/remote. Additional flags can be specified after a > + * pipe. > + * > + * The (readstream|writestream)@<offset> flag lets daemon and src/remote > + * create a stream. The direction is defined from the src/remote point > + * of view. A readstream transfers data from daemon to src/remote. The > + * <offset> specifies at which offset the stream parameter is inserted > + * in the function parameter list. */ > }; ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list