#define EIGHTBYTE_BIT (8 * sizeof(uint64_t))
-uint64_t bitmask(const uint8_t bit_count) {
- return (((uint64_t)0x1) << bit_count) - 1;
-}
-
uint8_t eightbyte_get_nibble(const uint64_t source, const uint8_t nibble_index,
const bool data_is_big_endian) {
return get_bit_field(source, NIBBLE_SIZE * nibble_index, NIBBLE_SIZE,
#include <string.h>
#include <stddef.h>
+uint64_t bitmask(const uint8_t bit_count) {
+ return (((uint64_t)0x1) << bit_count) - 1;
+}
+
uint8_t get_nibble(const uint8_t source[], const uint8_t source_length,
const uint8_t nibble_index) {
uint8_t byte_index = nibble_index / 2;
bool set_nibble(const uint16_t nibble_index, const uint8_t value,
uint8_t* destination, const uint16_t destination_length);
+/* Private:
+ */
uint16_t bits_to_bytes(uint32_t bits);
+/* Private:
+ */
+uint64_t bitmask(const uint8_t bit_count);
+
#ifdef __cplusplus
}
#endif
+#include <canutil/read.h>
#include <bitfield/bitfield.h>
+#include <bitfield/8byte.h>
float bitfield_parse_float(uint64_t data, uint8_t bit_offset, uint8_t bit_size,
float factor, float offset) {
-#include "write.h"
+#include <canutil/write.h>
#include <bitfield/bitfield.h>
+#include <bitfield/8byte.h>
uint64_t bitfield_encode_float(float value, uint8_t bit_offset, uint8_t bit_size,
float factor, float offset) {
START_TEST (test_large_bitmask)
{
- // yeah, this isn't a public method but I wanted to unit test it to track
- // down a bug
- extern uint64_t bitmask(int numBits);
uint64_t result = bitmask(32);
fail_if(result != 0xffffffff);
}