diff options
author | Gary E. Miller <gem@rellim.com> | 2016-03-30 14:00:04 -0700 |
---|---|---|
committer | Gary E. Miller <gem@rellim.com> | 2016-03-30 14:00:04 -0700 |
commit | d9734d0886e2494893a86501055caa66d011b54c (patch) | |
tree | 4ceb405180f5dc37bf6d823865c7947add36eccb /bits.h | |
parent | c1ebee4943bd799921d0366c07fddb4eb80be83a (diff) | |
download | gpsd-d9734d0886e2494893a86501055caa66d011b54c.tar.gz |
Add getbeu24() to grab a 24 bit big endian word from a buffer.
GPS subframe data comes in 24 bit words.
Diffstat (limited to 'bits.h')
-rw-r--r-- | bits.h | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -41,6 +41,7 @@ extern double getled64(const char *, int); /* big-endian access */ #define getbes16(buf, off) ((int16_t)(((uint16_t)getub(buf, (off)) << 8) | (uint16_t)getub(buf, (off)+1))) #define getbeu16(buf, off) ((uint16_t)(((uint16_t)getub(buf, (off)) << 8) | (uint16_t)getub(buf, (off)+1))) +#define getbeu24(buf, off) ((uint32_t)(((uint16_t)getbeu16(buf, (off)) << 8) | getub(buf, (off)+2))) #define getbes32(buf, off) ((int32_t)(((uint16_t)getbeu16(buf, (off)) << 16) | getbeu16(buf, (off)+2))) #define getbeu32(buf, off) ((uint32_t)(((uint16_t)getbeu16(buf, (off)) << 16) | getbeu16(buf, (off)+2))) #define getbes64(buf, off) ((int64_t)(((uint64_t)getbeu32(buf, (off)) << 32) | getbeu32(buf, (off)+4))) |