Subversion Repositories freemyipod

Rev

Rev 58 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 58 Rev 71
Line 23... Line 23...
23
 
23
 
24
#include "global.h"
24
#include "global.h"
25
#include "util.h"
25
#include "util.h"
26
 
26
 
27
 
27
 
28
void* memcpy(void* destination, const void* source, size_t num)
-
 
29
{
-
 
30
    unsigned char* dest = (unsigned char*)destination;
-
 
31
    unsigned char* src = (unsigned char*)source;
-
 
32
    while (num--) *dest++ = *src++;
-
 
33
    return destination;
-
 
34
}
-
 
35
 
-
 
36
void* memset(void* ptr, int value, size_t num)
-
 
37
{
-
 
38
    unsigned char* dest = (unsigned char*)ptr;
-
 
39
    while (num--) *dest++ = (unsigned char)value;
-
 
40
    return ptr;
-
 
41
}
-
 
42
 
-
 
43
int memcmp(const void* ptr1, const void* ptr2, size_t num)
-
 
44
{
-
 
45
    unsigned char* src1 = (unsigned char*)ptr1;
-
 
46
    unsigned char* src2 = (unsigned char*)ptr2;
-
 
47
    int diff;
-
 
48
    while (num--)
-
 
49
      if (diff = *src1++ - *src2++)
-
 
50
        return diff;
-
 
51
    return 0;
-
 
52
}
-
 
53
 
-
 
54
void* memchr(const void* ptr, int value, size_t num)
-
 
55
{
-
 
56
    unsigned char val = (unsigned char)value;
-
 
57
    while (num-- > 0)
-
 
58
    {
-
 
59
        if (*((unsigned char*)ptr) == val)
-
 
60
            return (void*)ptr;
-
 
61
        ptr++;
-
 
62
    }
-
 
63
    return NULL;
-
 
64
}
-