From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53042) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z7LdI-0004Qb-Se for qemu-devel@nongnu.org; Tue, 23 Jun 2015 06:40:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z7LdF-0003xV-Ht for qemu-devel@nongnu.org; Tue, 23 Jun 2015 06:40:48 -0400 Received: from mx2.parallels.com ([199.115.105.18]:56036) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z7LWD-00012a-WD for qemu-devel@nongnu.org; Tue, 23 Jun 2015 06:33:30 -0400 Message-ID: <558935EF.5060303@openvz.org> Date: Tue, 23 Jun 2015 13:33:19 +0300 From: "Denis V. Lunev" MIME-Version: 1.0 References: <1434733075-24240-1-git-send-email-den@openvz.org> <1434733075-24240-3-git-send-email-den@openvz.org> <558451C6.3070603@redhat.com> In-Reply-To: <558451C6.3070603@redhat.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 02/10] qga: implement guest-pipe-open command List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: Olga Krishtal , qemu-devel@nongnu.org, Michael Roth On 19/06/15 20:30, Eric Blake wrote: > On 06/19/2015 10:57 AM, Denis V. Lunev wrote: >> From: Olga Krishtal >> >> The command creates FIFO pair that can be used with existing file >> read/write interfaces to communicate with processes spawned via the >> forthcoming guest-file-exec interface. >> >> Signed-off-by: Olga Krishtal >> Signed-off-by: Denis V. Lunev >> Acked-by: Roman Kagan >> CC: Eric Blake >> CC: Michael Roth >> --- >> qga/commands-posix.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++++--- >> qga/commands-win32.c | 8 ++++- >> qga/qapi-schema.json | 44 ++++++++++++++++++++++++ >> 3 files changed, 143 insertions(+), 5 deletions(-) > Just an interface review at this point: > >> +++ b/qga/qapi-schema.json >> @@ -215,12 +215,56 @@ >> 'returns': 'int' } >> >> ## >> +# @GuestPipeMode >> +# >> +# An enumeration of pipe modes >> +# read: pipe is opened for writing data >> +# write: pipe is opened for reading data >> +# >> +# Since: 2.4 >> +## >> +{ 'enum': 'GuestPipeMode', >> + 'data': [ 'read', 'write' ] } >> + >> +## >> +# @GuestPipeInfo >> +# >> +# Information about pipe. >> +# >> +# Since: 2.4 >> +## >> +{ 'struct': 'GuestPipeInfo', >> + 'data': {'fd': 'int'} } > Missing a field of type GuestPipeMode? > >> + >> +## >> +# @guest-pipe-open >> +# >> +# Open a pipe to in the guest to associated with a qga-spawned processes >> +# for communication. > Reads poorly. Maybe: > > Open a pipe in the guest for association with later qga-spawned processes. > >> +# >> +# Returns: Guest file handle on success, as per guest-file-open. This >> +# handle is usable with the same interfaces as a handle returned by >> +# guest-file-open. >> +# >> +# Since: 2.4 >> +## >> +{ 'command': 'guest-pipe-open', >> + 'data': { 'mode': 'GuestPipeMode' }, >> + 'returns': ['GuestPipeInfo'] } > I'm assuming the array will always contain two elements? Would it be > any simpler to return a single dictionary of { 'read': 'int', 'write': > 'int' } for naming the two fds directly, instead of having to parse > through [ { 'fd': 1 }, { 'fd': 2 } ] ? Eric, I have mistaken here in the previous letter. The idea is that we return here only one int, which is qemu file handle representing the pipe as an entity. May be this should be declared in a different way to allow future extendability. Can you advise on this? Regards, Den