56 size_t n = buffer_length;
74 #ifdef ZRTOS__USE_MEMMOVE 75 # define zrtos_mem__move_right_overlapping memmove 76 # define zrtos_mem__move_left_overlapping memmove 88 *tmp_dest-- = *tmp_src--;
100 *tmp_dest++ = *tmp_src++;
119 return s1[-1] < s2[-1] ? -1 : 1;
128 uint8_t *tmp_src = tmp_dest + len;
149 size_t size,
int (*compar)(
const void *,
const void *))
159 mid = low + ((high - low) >> 1);
160 p = ((
char *)base) + mid * size;
161 r = (*compar)(key, p);
177 int (*comp)(
const void *,
const void *))
179 size_t wnel, gap, wgap, i, j, k;
183 for (gap = 0; ++gap < nel;){
186 while ((gap /= 3) != 0) {
188 for (i = wgap; i < wnel; i += width) {
189 for (j = i - wgap; ;j -= wgap) {
190 a = j + (
char *)base;
192 if ((*comp)(a, b) <= 0){
222 *tmp_dest++ = (h << 4) | l;
#define ZRTOS_CAST(type, value)
void zrtos_mem__sort(void *base, size_t nel, size_t width, int(*comp)(const void *, const void *))
size_t zrtos_mem__from_hex(void *dest, char *src, size_t len)
void zrtos_mem__zero(void *dest, size_t len)
void zrtos_mem__left_rotate(void *ptr, size_t length, size_t buffer_length)
void zrtos_mem__move_right_overlapping(void *dest, void *src, size_t length)
void zrtos_mem__swap(void *dest, void *src, size_t len)
Swap len bytes of dest and src inplace.
void zrtos_mem__reverse(void *dest, size_t len)
void zrtos_mem__set(void *dest, uint8_t value, size_t len)
void zrtos_mem__cpy(void *dest, void *src, size_t length)
void * zrtos_types__ptr_add(void *ptr, size_t byte_len)
size_t zrtos_types__ptr_get_byte_distance(void *bigger, void *smaller)
void * zrtos_mem__search(const void *key, const void *base, size_t high, size_t size, int(*compar)(const void *, const void *))
#define ZRTOS_TYPES__SWAP_PTR_CONTENTS(a, b)
int zrtos_mem__cmp(void *str1, void *str2, size_t count)
void zrtos_mem__swap_ex(void *ptr, size_t offest_dest, size_t offset_src, size_t len)
void zrtos_mem__move_left_overlapping(void *dest, void *src, size_t length)