1 extern void abort (void);
2 extern int inside_main;
3
4 __attribute__ ((__noinline__))
5 void *
6 memmove (void *dst, const void *src, __SIZE_TYPE__ n)
7 {
8 char *dstp;
9 const char *srcp;
10
11 #ifdef __OPTIMIZE__
12 if (inside_main)
13 abort ();
14 #endif
15
16 srcp = src;
17 dstp = dst;
18 if (srcp < dstp)
19 while (n-- != 0)
20 dstp[n] = srcp[n];
21 else
22 while (n-- != 0)
23 *dstp++ = *srcp++;
24
25 return dst;
26 }
27
28 void
29 bcopy (const void *src, void *dst, __SIZE_TYPE__ n)
30 {
31 memmove (dst, src, n);
32 }