From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:58707) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qp0Vo-0006hd-I1 for qemu-devel@nongnu.org; Thu, 04 Aug 2011 12:11:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qp0Vn-000562-FT for qemu-devel@nongnu.org; Thu, 04 Aug 2011 12:11:08 -0400 Received: from mail-yx0-f173.google.com ([209.85.213.173]:61581) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qp0Vn-00055m-Bb for qemu-devel@nongnu.org; Thu, 04 Aug 2011 12:11:07 -0400 Received: by yxt3 with SMTP id 3so1363566yxt.4 for ; Thu, 04 Aug 2011 09:11:06 -0700 (PDT) Message-ID: <4E3AC498.6000404@codemonkey.ws> Date: Thu, 04 Aug 2011 11:11:04 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <1312208590-25502-1-git-send-email-aliguori@us.ibm.com> <1312208590-25502-2-git-send-email-aliguori@us.ibm.com> <4E3AC230.1070109@redhat.com> In-Reply-To: <4E3AC230.1070109@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 01/12] char: rename qemu_chr_write() to qemu_chr_fe_write() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: Amit Shah , Hans de Goede , qemu-devel@nongnu.org On 08/04/2011 11:00 AM, Avi Kivity wrote: > On 08/01/2011 05:22 PM, Anthony Liguori wrote: >> The char layer is confusing. There is a front-end, typically a device, >> that >> can send and receive data. The front-end sends data by calling >> qemu_chr_write(). >> >> The back-end, typically created via -chardev, can also send and >> receive data. >> Oddly, it sends data by calling qemu_chr_read(). >> >> Let's be explicit about which function is for which party. > > A different way to accomplish this would be to have each pipe expose two > interfaces (a front end and a back end), and use the same functions for > both. Just like a unix pipe. This is exactly what I'm trying to do. This is why I decided to do this before QOM, because this will change the relationships between objects dramatically since you no longer need to subclass CharDriverState since it's just being used as a pipe. Regards, Anthony Liguori > > The back end interface would typically be an internal object. >