improve buf_cpy helper
Use memcpy for bulk of copy, improve final byte handling. Improve types by using void * for buffers and unsigned for size.
This commit is contained in:
parent
e4ee891759
commit
d09e308130
|
@ -48,21 +48,22 @@ const unsigned char bit_reverse_table256[] =
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
uint8_t* buf_cpy(const uint8_t *from, uint8_t *to, int size)
|
void* buf_cpy(const void *from, void *_to, unsigned size)
|
||||||
{
|
{
|
||||||
if (from == NULL)
|
if (NULL == from || NULL == _to)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
for (unsigned i = 0, num_bytes = CEIL(size, 8); i < num_bytes; i++)
|
// copy entire buffer
|
||||||
to[i] = from[i];
|
memcpy(_to, from, CEIL(size, 8));
|
||||||
|
|
||||||
/* mask out bits that don't belong to the buffer */
|
/* mask out bits that don't belong to the buffer */
|
||||||
if (size % 8)
|
unsigned trailing_bits = size % 8;
|
||||||
|
if (trailing_bits)
|
||||||
{
|
{
|
||||||
to[size / 8] &= (0xff >> (8 - (size % 8)));
|
uint8_t *to = _to;
|
||||||
|
to[size / 8] &= (1 << trailing_bits) - 1;
|
||||||
}
|
}
|
||||||
|
return _to;
|
||||||
return to;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool buf_cmp_masked(uint8_t a, uint8_t b, uint8_t m)
|
static bool buf_cmp_masked(uint8_t a, uint8_t b, uint8_t m)
|
||||||
|
|
|
@ -73,7 +73,8 @@ uint32_t flip_u32(uint32_t value, unsigned int num);
|
||||||
bool buf_cmp(const void *buf1, const void *buf2, unsigned size);
|
bool buf_cmp(const void *buf1, const void *buf2, unsigned size);
|
||||||
bool buf_cmp_mask(const void *buf1, const void *buf2,
|
bool buf_cmp_mask(const void *buf1, const void *buf2,
|
||||||
const void *mask, unsigned size);
|
const void *mask, unsigned size);
|
||||||
uint8_t* buf_cpy(const uint8_t *from, uint8_t *to, int size);
|
|
||||||
|
void* buf_cpy(const void *from, void *to, unsigned size);
|
||||||
|
|
||||||
uint8_t* buf_set_ones(uint8_t *buf, int count);
|
uint8_t* buf_set_ones(uint8_t *buf, int count);
|
||||||
uint8_t* buf_set_buf(const uint8_t *src, int src_start,
|
uint8_t* buf_set_buf(const uint8_t *src, int src_start,
|
||||||
|
|
Loading…
Reference in New Issue