Linux-2.6.12-rc2
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / arch / m68knommu / lib / memset.c
blob1389bf455633a2ed0b752ce04d61bcb3a58c4a54
1 #include <linux/types.h>
3 void * memset(void * s, int c, size_t count)
5 void *xs = s;
6 size_t temp;
8 if (!count)
9 return xs;
10 c &= 0xff;
11 c |= c << 8;
12 c |= c << 16;
13 if ((long) s & 1)
15 char *cs = s;
16 *cs++ = c;
17 s = cs;
18 count--;
20 if (count > 2 && (long) s & 2)
22 short *ss = s;
23 *ss++ = c;
24 s = ss;
25 count -= 2;
27 temp = count >> 2;
28 if (temp)
30 long *ls = s;
31 for (; temp; temp--)
32 *ls++ = c;
33 s = ls;
35 if (count & 2)
37 short *ss = s;
38 *ss++ = c;
39 s = ss;
41 if (count & 1)
43 char *cs = s;
44 *cs = c;
46 return xs;