From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=44225 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OoMro-0007JC-FN for qemu-devel@nongnu.org; Wed, 25 Aug 2010 16:46:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OoMrn-0003Ff-Dq for qemu-devel@nongnu.org; Wed, 25 Aug 2010 16:46:40 -0400 Received: from fe02x03-cgp.akado.ru ([77.232.31.165]:57852 helo=akado.ru) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OoMrn-0003Ez-51 for qemu-devel@nongnu.org; Wed, 25 Aug 2010 16:46:39 -0400 Date: Thu, 26 Aug 2010 00:46:25 +0400 (MSD) From: malc Subject: Re: [Qemu-devel] [PATCH 1/3] Add TPM 1.2 host device passthrough interface In-Reply-To: Message-ID: References: <1282753982-1761-1-git-send-email-andreas.niederl@iaik.tugraz.at> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="33734824-386837045-1282769187=:1964" List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: Andreas Niederl , qemu-devel@nongnu.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --33734824-386837045-1282769187=:1964 Content-Type: TEXT/PLAIN; charset=UTF-8 Content-Transfer-Encoding: 8BIT On Wed, 25 Aug 2010, Blue Swirl wrote: > On Wed, Aug 25, 2010 at 4:33 PM, Andreas Niederl > wrote: > > This implementation is based on the TPM 1.2 interface for virtualized TPM > > devices from the Xen-4.0.0 ioemu-qemu-xen fork. > > > > A separate thread is used for I/O to the host TPM device because the Linux TPM > > driver does not allow for non-blocking I/O. > > > > Signed-off-by: Andreas Niederl > > In general, please read CODING_STYLE. > > Ideally, the host and guest devices should be decoupled so that the > guest visible device should still be functional without host TPM > support. > > > --- [..snip..] > > +static inline uint32_t tpm_get_size_from_buffer(const uint8_t *buffer) > > +{ > > +    uint32_t len = (buffer[4] << 8) + buffer[5]; > > +    return len; > > +} > > + > > +static inline uint8_t locality_from_addr(target_phys_addr_t addr) > > +{ > > +    return (uint8_t)((addr >> 12) & 0x7); > > +} > > + > > + > > +static void die2(int err, const char *what) > > +{ > > +    fprintf(stderr, "%s failed: %s\n", what, strerror(err)); > > +    abort(); > > +} > > + > > +static void die(const char *what) > > +{ > > +    die2(errno, what); > > +} > > There's hw_error() and errx(), no need to reinvent the wheel. Since it looks as if this code was based on mine, i take issues with your analysis. Firstly hw_error is for hardware errors and does not print message corresponding to errno code and lastly there is no errx[1] [..snip..] [1] err(3): CONFORMING TO These functions are non-standard BSD extensions. -- mailto:av1474@comtv.ru --33734824-386837045-1282769187=:1964--