2007-04-02 16:34:45 +02:00
|
|
|
|
#include "types.h"
|
|
|
|
|
|
2018-08-17 16:46:56 +02:00
|
|
|
|
/*******************************************************************************/
|
|
|
|
|
|
|
|
|
|
/* Copie un octet une ou plusieurs fois en m<>moire */
|
2007-04-02 16:34:45 +02:00
|
|
|
|
|
2018-08-17 16:46:56 +02:00
|
|
|
|
void memset(void *dst, u8 val, u32 count, u32 size)
|
2007-04-02 16:34:45 +02:00
|
|
|
|
{
|
2018-08-17 16:46:56 +02:00
|
|
|
|
u8 * temp;
|
|
|
|
|
for (temp = (u8 *) dst; count != 0; count--) {
|
|
|
|
|
temp += size;
|
|
|
|
|
*temp = val;
|
|
|
|
|
}
|
2007-04-02 16:34:45 +02:00
|
|
|
|
}
|
2018-08-17 16:46:56 +02:00
|
|
|
|
|
|
|
|
|
/*******************************************************************************/
|
|
|
|
|
|
|
|
|
|
/* Copie une portion de m<>moire vers une autre */
|
2007-04-02 16:34:45 +02:00
|
|
|
|
|
2018-08-17 16:46:56 +02:00
|
|
|
|
void memcpy(void *src, void *dst, u32 count, u32 size) {
|
|
|
|
|
char *s, *d;
|
|
|
|
|
u32 i;
|
|
|
|
|
s = (u8 *) src;
|
|
|
|
|
d = (u8 *) dst;
|
|
|
|
|
for (i = 0; i < count; i++) {
|
|
|
|
|
*(d + i * size) = *(s + i);
|
2007-04-02 16:34:45 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
2018-08-17 16:46:56 +02:00
|
|
|
|
|
|
|
|
|
/*******************************************************************************/
|
|
|
|
|
|
|
|
|
|
/* Compare 2 portions de m<>moire */
|
|
|
|
|
|
|
|
|
|
u32 memcmp(void *src, void *dst, u32 count, u32 size)
|
2007-04-02 16:34:45 +02:00
|
|
|
|
{
|
2018-08-17 16:46:56 +02:00
|
|
|
|
const u8 *mem1 = (const u8 *)src;
|
|
|
|
|
const u8 *mem2 = (const u8 *)dst;
|
|
|
|
|
for (; count != 0; count--) {
|
|
|
|
|
if (*mem1 != *mem2)
|
|
|
|
|
return *mem1 - *mem2;
|
|
|
|
|
mem1 += size;
|
|
|
|
|
mem2 += size;
|
|
|
|
|
}
|
2007-04-02 16:34:45 +02:00
|
|
|
|
}
|
|
|
|
|
|
2018-08-17 16:46:56 +02:00
|
|
|
|
/*******************************************************************************/
|