1da177e4c3
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
47 lines
669 B
C
47 lines
669 B
C
#include <linux/types.h>
|
|
|
|
void * memset(void * s, int c, size_t count)
|
|
{
|
|
void *xs = s;
|
|
size_t temp;
|
|
|
|
if (!count)
|
|
return xs;
|
|
c &= 0xff;
|
|
c |= c << 8;
|
|
c |= c << 16;
|
|
if ((long) s & 1)
|
|
{
|
|
char *cs = s;
|
|
*cs++ = c;
|
|
s = cs;
|
|
count--;
|
|
}
|
|
if (count > 2 && (long) s & 2)
|
|
{
|
|
short *ss = s;
|
|
*ss++ = c;
|
|
s = ss;
|
|
count -= 2;
|
|
}
|
|
temp = count >> 2;
|
|
if (temp)
|
|
{
|
|
long *ls = s;
|
|
for (; temp; temp--)
|
|
*ls++ = c;
|
|
s = ls;
|
|
}
|
|
if (count & 2)
|
|
{
|
|
short *ss = s;
|
|
*ss++ = c;
|
|
s = ss;
|
|
}
|
|
if (count & 1)
|
|
{
|
|
char *cs = s;
|
|
*cs = c;
|
|
}
|
|
return xs;
|
|
}
|