From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:35431) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QTbEc-0003I7-IL for qemu-devel@nongnu.org; Mon, 06 Jun 2011 10:56:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QTbEa-0001g0-Le for qemu-devel@nongnu.org; Mon, 06 Jun 2011 10:56:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59331) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QTbEZ-0001fK-Tz for qemu-devel@nongnu.org; Mon, 06 Jun 2011 10:56:52 -0400 Date: Mon, 6 Jun 2011 11:56:48 -0300 From: Luiz Capitulino Message-ID: <20110606115648.5f188d2a@doriath> In-Reply-To: References: <1307127842-12102-1-git-send-email-lcapitulino@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC 00/10]: QMP/HMP: Introduce tray handling commands List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: kwolf@redhat.com, amit.shah@redhat.com, aliguori@us.ibm.com, qemu-devel@nongnu.org On Mon, 06 Jun 2011 15:31:35 +0200 Markus Armbruster wrote: > Luiz Capitulino writes: > > > In a recent discussion on the mailing list regarding the introduction of > > the BLOCK_TRAY_OPEN and BLOCK_TRAY_CLOSE events[1], it was mentioned that > > we need to fix the eject command and maybe introduce new commands first. > > > > Here's a my proposal. > > > > This series introduces three new commands: > > > > o blockdev-tray-open: opens the drive tray. Also Supports removing the inserted > > media. The BLOCK_TRAY_OPEN event is emitted if this command succeeds. > > Conflates tray control with media control. Hmm. > > > o blockdev-tray-close: closes a drive tray. The BLOCK_TRAY_CLOSE event is > > emitted. > > o blockdev-media-insert: Inserts a media in the tray. The tray must empty > > and already opened. No event is emitted. > > What about separating tray control and media control like this: > > * Tray control: either blockdev-tray-open and blockdev-tray-close, or a > single blockdev-tray with a boolean argument. This might sound like a simple thing, but sometimes I'm really undecided when something should be a new argument or a new command. Following Anthony's idea that it can be helpful to think in a C interface, I slightly prefer this: blockdev_tray_open(device); ... blockdev_tray_close(device); Than this: blockdev_tray(device, TRAY_OPEN); ... blockdev_tray(device, TRAY_CLOSE); > * Media control: blockdev-media to change media. Tray must be open, may > or may not contain media. Arguments specify new media, or no media. Yeah, maybe it's better to drop the 'remove' flag from the open command. But then I think I prefer having blockdev-media-remove and blockdev-media-insert instead of a single blockdev-media command.