use byteswap.h