diff options
author | Tilghman Lesher <tilghman@meg.abyt.es> | 2009-11-04 20:35:24 +0000 |
---|---|---|
committer | Tilghman Lesher <tilghman@meg.abyt.es> | 2009-11-04 20:35:24 +0000 |
commit | d5fa4289d0099e73de232cbaaf4c099008b80e07 (patch) | |
tree | 3cd049e8a2e0f2120a662e9592acb7ce3a19e7ae /include/asterisk/unaligned.h | |
parent | b3bd43366f7cb56ec9fcf6889d478a171b758aaf (diff) |
Fixes for gcc 4.4
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@227824 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include/asterisk/unaligned.h')
-rw-r--r-- | include/asterisk/unaligned.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/include/asterisk/unaligned.h b/include/asterisk/unaligned.h index 9ca2177a1..4737c4ec9 100644 --- a/include/asterisk/unaligned.h +++ b/include/asterisk/unaligned.h @@ -50,9 +50,16 @@ static inline unsigned short get_unaligned_uint16(const void *p) static inline void put_unaligned_uint64(void *p, uint64_t datum) { - struct { uint64_t d; } __attribute__((packed)) *pp = p; + unsigned char *cp = p; - pp->d = datum; + cp[0] = (datum >> 56) & 0xff; + cp[1] = (datum >> 48) & 0xff; + cp[2] = (datum >> 40) & 0xff; + cp[3] = (datum >> 32) & 0xff; + cp[4] = (datum >> 24) & 0xff; + cp[5] = (datum >> 16) & 0xff; + cp[6] = (datum >> 8) & 0xff; + cp[7] = (datum >> 0) & 0xff; } static inline void put_unaligned_uint32(void *p, unsigned int datum) |