From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Daniel P. Berrange" Subject: PATCH: Avoid struct members clashing with POSIX apis Date: Wed, 22 Aug 2007 22:46:53 +0100 Message-ID: <20070822214653.GP18061@redhat.com> Reply-To: "Daniel P. Berrange" Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="S1BNGpv0yoYahz37" Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org --S1BNGpv0yoYahz37 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline The TPM code in tools/ioemu/hw/tpm_tis.c has a struct containing a number of function pointers with names open, close, read, write which are the same as various POSIX apis already #included in the file. POSIX allows these functions to be defined as macros and latest GCC/glibc does indeed define them as macros depending on compiler flags. This causes compile errors when deferencing the struct members. The solution is either to change calls like ctx->open () to be (* ctx->open) (), or simply to rename the struct members. Since this struct was only used inside that one file i simply renamed them. Signed-off-by: Daniel P. Berrange Regards, Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=| --S1BNGpv0yoYahz37 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="xen-tpm-functions.patch" diff -r 7953164cebb6 tools/ioemu/hw/tpm_tis.c --- a/tools/ioemu/hw/tpm_tis.c Tue Aug 07 09:07:29 2007 +0100 +++ b/tools/ioemu/hw/tpm_tis.c Wed Aug 22 17:30:18 2007 -0400 @@ -154,16 +154,16 @@ static int has_channel_local_socket(tpmS #define NUM_TRANSPORTS 1 struct vTPM_transmit { - int (*open) (tpmState *s, uint32_t vtpm_instance); - int (*write) (tpmState *s, const tpmBuffer *); - int (*read) (tpmState *s, tpmBuffer *); - int (*close) (tpmState *s, int); + int (*open_fn) (tpmState *s, uint32_t vtpm_instance); + int (*write_fn) (tpmState *s, const tpmBuffer *); + int (*read_fn) (tpmState *s, tpmBuffer *); + int (*close_fn) (tpmState *s, int); int (*has_channel) (tpmState *s); } vTPMTransmit[NUM_TRANSPORTS] = { - { .open = create_local_socket, - .write = write_local_socket, - .read = read_local_socket, - .close = close_local_socket, + { .open_fn = create_local_socket, + .write_fn = write_local_socket, + .read_fn = read_local_socket, + .close_fn = close_local_socket, .has_channel = has_channel_local_socket, } }; @@ -200,7 +200,7 @@ static void open_vtpm_channel(tpmState * int idx; /* search a usable transmit layer */ for (idx = 0; idx < NUM_TRANSPORTS; idx++) { - if (1 == vTPMTransmit[idx].open(s, s->vtpm_instance)) { + if (1 == vTPMTransmit[idx].open_fn(s, s->vtpm_instance)) { /* found one */ s->Transmitlayer = idx; break; @@ -213,7 +213,7 @@ static void open_vtpm_channel(tpmState * */ static inline void close_vtpm_channel(tpmState *s, int force) { - if (1 == vTPMTransmit[s->Transmitlayer].close(s, force)) { + if (1 == vTPMTransmit[s->Transmitlayer].close_fn(s, force)) { s->Transmitlayer = -1; } } @@ -974,7 +974,7 @@ static int TPM_Send(tpmState *s, tpmBuff buffer->instance[0] &= 0x1f; buffer->instance[0] |= (locty << 5); - len = vTPMTransmit[s->Transmitlayer].write(s, buffer); + len = vTPMTransmit[s->Transmitlayer].write_fn(s, buffer); if (len < 0) { s->Transmitlayer = -1; } @@ -990,7 +990,7 @@ static int TPM_Receive(tpmState *s, tpmB { int off; - off = vTPMTransmit[s->Transmitlayer].read(s, buffer); + off = vTPMTransmit[s->Transmitlayer].read_fn(s, buffer); if (off < 0) { /* EAGAIN is set in errno due to non-blocking mode */ --S1BNGpv0yoYahz37 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --S1BNGpv0yoYahz37--