Previous patch r307020 has broken Windows build, mostly because changes were done in places of Linux compilers warnings without paying attention to Windows specific code.
This patch adds more consistency and also fixes the Windows build of the library.
- all atomics now accept volatile pointer parameter; this allows to simplify a lot of type conversions.
- NULL pointer value changed to nullptr in sensible places.
- all 32-bit and 64-bit AND/OR atomics accept unsigned parameters (not only Unix specific that initial patch did).
Tried to build the library on Windows, and on Linux.