get rid of __always_inline
add portable_endian.h