double InStream_read_f64(InStream *self) { union { double d; uint64_t u64; } duo; SI_read_bytes(self, (char*)&duo, sizeof(double)); #ifdef LITTLE_END duo.u64 = NumUtil_decode_bigend_u64(&duo.u64); #endif return duo.d; }
float InStream_read_f32(InStream *self) { union { float f; uint32_t u32; } duo; SI_read_bytes(self, (char*)&duo, sizeof(float)); #ifdef LITTLE_END duo.u32 = NumUtil_decode_bigend_u32(&duo.u32); #endif return duo.f; }
static INLINE uint64_t SI_read_u64(InStream *self) { uint64_t retval; SI_read_bytes(self, (char*)&retval, 8); #ifdef LITTLE_END retval = NumUtil_decode_bigend_u64((char*)&retval); #endif return retval; }
static CFISH_INLINE uint32_t SI_read_u32(InStream *self) { uint32_t retval; SI_read_bytes(self, (char*)&retval, 4); #ifdef CHY_LITTLE_END retval = NumUtil_decode_bigend_u32((char*)&retval); #endif return retval; }
void InStream_read_bytes(InStream *self, char* buf, size_t len) { SI_read_bytes(self, buf, len); }