From: Mathieu Desnoyers Date: Tue, 17 May 2011 13:00:42 +0000 (-0400) Subject: Use header_sizeof() for header size instead of gcc packed attribute X-Git-Tag: v0.1~47 X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=a91a962ea08a77e07b733ada9d1eed9292bc8046 Use header_sizeof() for header size instead of gcc packed attribute Signed-off-by: Mathieu Desnoyers --- diff --git a/formats/ctf/ctf.c b/formats/ctf/ctf.c index 7c354bf0..ac064b80 100644 --- a/formats/ctf/ctf.c +++ b/formats/ctf/ctf.c @@ -410,7 +410,7 @@ int ctf_open_trace_metadata_packet_read(struct ctf_trace *td, FILE *in, char buf[4096]; int ret = 0; - readlen = fread(&header, sizeof(header), 1, in); + readlen = fread(&header, header_sizeof(header), 1, in); if (readlen < 1) return -EINVAL; diff --git a/include/babeltrace/ctf/metadata.h b/include/babeltrace/ctf/metadata.h index c1976247..e3cd325a 100644 --- a/include/babeltrace/ctf/metadata.h +++ b/include/babeltrace/ctf/metadata.h @@ -179,6 +179,9 @@ struct ctf_event { } field_mask; }; +#define HEADER_END char end_field +#define header_sizeof(type) offsetof(typeof(type), end_field) + struct metadata_packet_header { uint32_t magic; /* 0x75D11D57 */ uint8_t uuid[16]; /* Unique Universal Identifier */ @@ -188,6 +191,8 @@ struct metadata_packet_header { uint8_t compression_scheme; /* 0 if unused */ uint8_t encryption_scheme; /* 0 if unused */ uint8_t checksum_scheme; /* 0 if unused */ -} __attribute__((packed)); + HEADER_END; +}; + #endif /* _BABELTRACE_CTF_METADATA_H */