On 02/03/2020 08:25 PM, Alec Ari via Emc-developers wrote:
Would using `long long` instead of `long` be a potential fix then? I'm not a 
very good C coder but I've noticed higher precision using `long long` over all 
else, never seen `long long` fail for me.


I think it is better to use uint32_t and uint64_t and-or int32_t and int64_t so that you get the exact same integer
length no matter the kernel and libraries.

In this case, some tricky logic was used so that rollovers of the 24-bit signed hardware counters were properly handled by carry/borrow to the next byte of the signed 32-bit integer, which was then converted to float. Some of the trickiness is due to the 24-bit hardware being zeroed during home and spindle index operations, you have to make sure the sign-extended bits are also zeroed.


Jon


_______________________________________________
Emc-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to