diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2005-06-10 20:12:50 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2005-06-10 20:12:50 +0000 |
commit | 171b3379b1cf46bcd6e58bf2cfe6e7f6e4bad140 (patch) | |
tree | d704a76a47d807a441b2deec1a2e7344c499b699 /HACKING | |
parent | ce6c4cecadb0168df9bb99c031e42b4eb0dfa122 (diff) | |
download | gpsd-171b3379b1cf46bcd6e58bf2cfe6e7f6e4bad140.tar.gz |
Discussion of porting to weird architectures.
Diffstat (limited to 'HACKING')
-rw-r--r-- | HACKING | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -130,6 +130,27 @@ daemon to client library -- and to estimate the portion of the latency induced by serial transmit time. The gpsprof script creates latency plots using gnuplot(1). It can also report the raw data. +** Porting to weird machines: endianness, type width, and signedness issues. + +The gpsd code is well-tested on 32- and 64-bit IA chips, also on PPCs. +Thus, it's known to work on mainstream chips of either 32 or 64 bits +and either big-endian or little-endian representation with IEE754 +floating point. + +Handling of NMEA devices should not be sensitive to the machine's +internal numeric representations, However, because the binary-protocol +drivers have to mine bytes out of the incoming packets and mung them +into fixed-width integer quantities, there could potentially be issues +on weird machines. The regression test should spot these. + +If you are porting to a true 16-bit machine, or something else with +an unusual set of data type widths, take a look at bits.h. We've +tried to collect all the architecture dependencies here. If splint +gives you warnings, it is possible you may need to adjust the -D +directives in .splintrc that are used to define away fixed-width typedefs. + +(No, we don't know why splint doesn't handle these natively.) + ** Architecture and how to hack it gpsd is not a complicated piece of code. Essentially, it spins in a loop |