#include <sys/types.h>
#include <string.h>
int memcmp(const void * dst, const void * src, size_t length)
{
size_t x = length >> 2;
size_t y = length & 0xf;
size_t i;
for (i = 0; i < x; i++)
{
if (((unsigned long *)dst)[i] > ((unsigned long *)src)[i])
return 1;
if (((unsigned long *)dst)[i] < ((unsigned long *)src)[i])
return -1;
}
for (i = 0; i < y; i++)
{
if (((char *) dst)[length-y+i] > ((char *) src)[length-y+i])
return 1;
if (((char *) dst)[length-y+i] < ((char *) src)[length-y+i])
return -1;
}
return 0;
}