common/memory.c (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
#include "memory.h"
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
bool
circe_memory_equal (const uint8_t *a, const uint8_t *b, size_t len)
{
uint8_t acc = 0x0;
for (size_t i = 0; i < len; ++i)
{
acc |= a[i] ^ b[i];
}
return acc == 0x0;
}
void
circe_memory_copy (const uint8_t *restrict src, uint8_t *restrict dst,
size_t len)
{
for (size_t i = 0; i < len; ++i)
{
dst[i] = src[i];
}
}
void
circe_memory_set (uint8_t *dst, uint8_t value, size_t n)
{
for (size_t i = 0; i < n; ++i)
{
dst[i] = value;
}
}
void *
circe_memset (void *dest, int value, size_t count)
{
circe_memory_set ((uint8_t *)dest, (uint8_t)value, count);
return dest;
}
void *
circe_memcpy (void *restrict dest, const void *restrict src, size_t n)
{
circe_memory_copy ((const uint8_t *restrict)src, (uint8_t *restrict)dest, n);
return dest;
}
|