[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] ioemu: Avoid struct members clashing with POSIX apis
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # 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@xxxxxxxxxx> --- 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@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |