X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Flibsigrok-internal.h;h=d6f6933a2f8db1695bec02ba0c2e82c83a9fea3c;hb=395ac73eadfdb7a8e03107172dcdbf5d9176a1fa;hp=215fce16b3efb68a9e3d8a66b41deee414244bd0;hpb=7d893e3bf60c287f16d1e5f39a98fa823f33a9d2;p=libsigrok.git diff --git a/src/libsigrok-internal.h b/src/libsigrok-internal.h index 215fce16..d6f6933a 100644 --- a/src/libsigrok-internal.h +++ b/src/libsigrok-internal.h @@ -2217,18 +2217,14 @@ enum binary_value_type { BVT_INVALID, BVT_UINT8, - BVT_BE_UINT8 = BVT_UINT8, - BVT_LE_UINT8 = BVT_UINT8, BVT_BE_UINT16, + BVT_BE_UINT24, BVT_BE_UINT32, - BVT_BE_UINT64, - BVT_BE_FLOAT, BVT_LE_UINT16, + BVT_LE_UINT24, BVT_LE_UINT32, - BVT_LE_UINT64, - BVT_LE_FLOAT, }; /** Binary value specification */ @@ -2238,7 +2234,8 @@ struct binary_value_spec { }; /** - * Read extract a value from a binary data image. + * Read extract a value from a binary data image, ensuring no out-of-bounds + * read happens. * * @param[out] out Pointer to output buffer (conversion result) * @param[in] spec Binary value specification @@ -2247,8 +2244,20 @@ struct binary_value_spec { * * @return SR_OK on success, SR_ERR_* error code on failure. */ +SR_PRIV int bv_get_value_len(float *out, const struct binary_value_spec *spec, + const uint8_t *data, size_t length); + +/** + * Read extract a value from a binary data image, without bound check. + * + * @param[out] out Pointer to output buffer (conversion result) + * @param[in] spec Binary value specification + * @param[in] data Pointer to binary input data + * + * @return SR_OK on success, SR_ERR_* error code on failure. + */ SR_PRIV int bv_get_value(float *out, const struct binary_value_spec *spec, - const void *data, size_t length); + const uint8_t *data); /*--- crc.c -----------------------------------------------------------------*/