17 return (uint8_t) *source;
23 return be16toh(*(uint16_t *) source);
26 return *(uint16_t *) source;
28 return ((uint16_t) *(source + 0) << 8) +
29 (uint8_t) *(source + 1);
37 return be32toh(*(uint32_t *) source);
40 return *(uint32_t *) source;
42 return ((uint32_t) *(source + 0) << 0x18) +
43 ((uint32_t) *(source + 1) << 0x10) +
44 ((uint16_t) *(source + 2) << 0x08) +
45 (uint8_t) *(source + 3);
53 return be64toh(*(uint64_t *) source);
56 return *(uint64_t *) source;
58 return ((uint64_t) *(source + 0) << 0x38) +
59 ((uint64_t) *(source + 1) << 0x30) +
60 ((uint64_t) *(source + 2) << 0x28) +
61 ((uint64_t) *(source + 3) << 0x20) +
62 ((uint32_t) *(source + 4) << 0x18) +
63 ((uint32_t) *(source + 5) << 0x10) +
64 ((uint16_t) *(source + 6) << 0x08) +
65 (uint8_t) *(source + 7);
73 int half = (halfp[0] << 8) + halfp[1];
74 int exp = (half >> 10) & 0x1f;
75 int mant = half & 0x3ff;
77 if (exp == 0) val = ldexp(mant, -24);
78 else if (exp != 31) val = ldexp(mant + 1024, exp - 25);
79 else val = mant == 0 ? INFINITY : NAN;
80 return (
float) (half & 0x8000 ? -val : val);
double _cbor_load_double(cbor_data source)
float _cbor_load_float(cbor_data source)
double _cbor_load_half(cbor_data source)
uint16_t _cbor_load_uint16(const unsigned char *source)
uint8_t _cbor_load_uint8(cbor_data source)
float _cbor_decode_half(unsigned char *halfp)
uint32_t _cbor_load_uint32(const unsigned char *source)
const unsigned char * cbor_data
uint64_t _cbor_load_uint64(const unsigned char *source)