Mailing List Archive

[xen-unstable] ioemu: Avoid struct members clashing with POSIX apis
# HG changeset patch
# User kfraser@localhost.localdomain
# Date 1188314015 -3600
# Node ID 8e9ec8711efac6f62784d916b6018d8ec75f007d
# Parent 8e3abd893835db6a87f38153b98cee9b2736dae2
ioemu: Avoid struct members clashing with POSIX apis

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 <berrange@redhat.com>
---
tools/ioemu/hw/tpm_tis.c | 24 ++++++++++++------------
1 files changed, 12 insertions(+), 12 deletions(-)

diff -r 8e3abd893835 -r 8e9ec8711efa tools/ioemu/hw/tpm_tis.c
--- a/tools/ioemu/hw/tpm_tis.c Tue Aug 28 16:11:05 2007 +0100
+++ b/tools/ioemu/hw/tpm_tis.c Tue Aug 28 16:13:35 2007 +0100
@@ -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 */

_______________________________________________
Xen-changelog mailing list
Xen-changelog@lists.xensource.com
http://lists.xensource.com/xen-changelog