Index: arch/amd64/src/dummy.s
===================================================================
--- arch/amd64/src/dummy.s	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ arch/amd64/src/dummy.s	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -51,4 +51,5 @@
 .global dummy
 .global asm_delay_loop
+.global memcpy
 
 cpu_priority_high:
@@ -74,4 +75,5 @@
 page_arch_init:
 frame_arch_init:
+memcpy:
 
 dummy:
Index: arch/amd64/src/supplib.c
===================================================================
--- arch/amd64/src/supplib.c	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ arch/amd64/src/supplib.c	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -31,14 +31,4 @@
 /* TODO: Rewrite to assembler */
 
-char *memcpy(void *dst, const void *src, size_t cnt)
-{
-	_memcopy(dst, src, cnt);
-}
-
-char *memcopy(void * dst, const void *src, size_t cnt)
-{
-	_memcopy(dst, src, cnt);
-}
-
 void memsetw(__address dst, size_t cnt, __u16 x)
 {
Index: arch/ia32/src/asm.S
===================================================================
--- arch/ia32/src/asm.S	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ arch/ia32/src/asm.S	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -44,5 +44,5 @@
 .global outw
 .global outl
-.global memcopy
+.global memcpy
 .global memsetb
 .global memsetw
@@ -266,5 +266,5 @@
 DST=8
 CNT=16
-memcopy:
+memcpy:
 	push %ebp
 	movl %esp,%ebp
Index: arch/ia32/src/drivers/ega.c
===================================================================
--- arch/ia32/src/drivers/ega.c	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ arch/ia32/src/drivers/ega.c	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -74,5 +74,5 @@
 		return;
 
-	memcopy((void *)PA2KA(VIDEORAM),(void *)(PA2KA(VIDEORAM) + ROW*2), (SCREEN - ROW)*2); //swaped
+	memcpy((void *)PA2KA(VIDEORAM), (void *)(PA2KA(VIDEORAM) + ROW*2), (SCREEN - ROW)*2);
 	memsetw(PA2KA(VIDEORAM) + (SCREEN - ROW)*2, ROW, 0x0720);
 	ega_cursor = ega_cursor - ROW;
Index: arch/ia32/src/mm/page.c
===================================================================
--- arch/ia32/src/mm/page.c	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ arch/ia32/src/mm/page.c	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -73,5 +73,5 @@
 
 		dba = frame_alloc(FRAME_KA | FRAME_PANIC);
-		memcopy((void *)dba,(void *)bootstrap_dba , PAGE_SIZE); //swaped
+		memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE);
 		write_cr3(KA2PA(dba));
 	}
Index: arch/ia32/src/smp/mps.c
===================================================================
--- arch/ia32/src/smp/mps.c	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ arch/ia32/src/smp/mps.c	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -313,5 +313,5 @@
 #ifdef MPSCT_VERBOSE
 	char buf[7];
-	memcopy((void *) buf, (void *) bus->bus_type, 6);
+	memcpy((void *) buf, (void *) bus->bus_type, 6);
 	buf[6] = 0;
 	printf("bus%d: %s\n", bus->bus_id, buf);
Index: arch/ia32/src/smp/smp.c
===================================================================
--- arch/ia32/src/smp/smp.c	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ arch/ia32/src/smp/smp.c	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -140,5 +140,5 @@
 			panic("couldn't allocate memory for GDT\n");
 
-		memcopy(gdt_new, gdt, GDT_ITEMS*sizeof(struct descriptor));           // swaped
+		memcpy(gdt_new, gdt, GDT_ITEMS*sizeof(struct descriptor));
 		memsetb((__address)(&gdt_new[TSS_DES]), sizeof(struct descriptor), 0);
 		gdtr.base = KA2PA((__address) gdt_new);
Index: arch/ia64/src/asm.S
===================================================================
--- arch/ia64/src/asm.S	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ arch/ia64/src/asm.S	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -31,16 +31,5 @@
 .global memcpy
 memcpy:
-	/*
-	 * Switch the role of first two arguments
-	 */
-	sub r33 = r33, r32	;;
-	add r32 = r32, r33	;;
-	sub r33 = r32, r33	
-		
-	br _memcopy
-
-.global memcopy
-memcopy:
-	br _memcopy
+	br _memcpy
 
 .global memsetb
Index: arch/mips/src/asm.s
===================================================================
--- arch/mips/src/asm.s	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ arch/mips/src/asm.s	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -151,7 +151,7 @@
 	nop
 
-.global memcopy
-memcopy:
-	j _memcopy
+.global memcpy
+memcpy:
+	j _memcpy
 	nop
 
Index: arch/ppc/src/dummy.s
===================================================================
--- arch/ppc/src/dummy.s	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ arch/ppc/src/dummy.s	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -30,5 +30,4 @@
 
 .global memcpy
-.global memcopy
 .global cpu_priority_read
 .global memsetb
@@ -47,5 +46,4 @@
 
 memcpy:
-memcopy:
 cpu_priority_read:
 memsetb:
Index: include/memstr.h
===================================================================
--- include/memstr.h	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ include/memstr.h	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -33,6 +33,5 @@
 #include <arch/types.h>
 
-extern char *memcpy(void * dst, const void *src, size_t cnt);
-extern char *memcopy(void * dst, const void *src, size_t cnt);
+#define memcpy(dst, src, cnt)	__builtin_memcpy((dst), (src), (cnt)); 
 
 extern void memsetw(__address dst, size_t cnt, __u16 x);
@@ -44,5 +43,5 @@
  * Architecture independent variants.
  */
-extern char *_memcopy(void *dst, const void *src, size_t cnt);
+extern char *_memcpy(void *dst, const void *src, size_t cnt);
 extern void _memsetb(__address dst, size_t cnt, __u8 x);
 extern void _memsetw(__address dst, size_t cnt, __u16 x);
Index: src/lib/memstr.c
===================================================================
--- src/lib/memstr.c	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ src/lib/memstr.c	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -42,5 +42,5 @@
  *
  */
-char *_memcopy(void * dst, const void *src, size_t cnt)
+char *_memcpy(void * dst, const void *src, size_t cnt)
 {
 	int i;
@@ -51,5 +51,4 @@
 	return (char *)src;
 }
-
 
 /** Fill block of memory
Index: src/main/kinit.c
===================================================================
--- src/main/kinit.c	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ src/main/kinit.c	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -132,5 +132,5 @@
 	if (!a) panic("vm_area_create: vm_text");
 	vm_area_map(a, m);
-	memcopy(PA2KA(a->mapping[0]), (__address) utext, utext_size < PAGE_SIZE ? utext_size : PAGE_SIZE);
+	memcpy((void *) PA2KA(a->mapping[0]), (void *) utext, utext_size < PAGE_SIZE ? utext_size : PAGE_SIZE);
 
 	/*
Index: src/mm/vm.c
===================================================================
--- src/mm/vm.c	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ src/mm/vm.c	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -67,5 +67,5 @@
 			src_ptl0 = (pte_t *) PA2KA((__address) GET_PTL0_ADDRESS());
 			dst_ptl0 = (pte_t *) frame_alloc(FRAME_KA | FRAME_PANIC);
-			memcopy((void *)PA2KA((__address) dst_ptl0), (void *)GET_PTL0_ADDRESS() , PAGE_SIZE);
+			memcpy((void *)PA2KA((__address) dst_ptl0), (void *)GET_PTL0_ADDRESS() , PAGE_SIZE);
 			m->ptl0 = (pte_t *) KA2PA((__address) dst_ptl0);
 		}
Index: test/synch/rwlock4/test.c
===================================================================
--- test/synch/rwlock4/test.c	(revision 3de9e5ea4eb09f92326501d4c5c77977cd08ffcb)
+++ test/synch/rwlock4/test.c	(revision 9756131fa15f66c8ed4bfc1d5fccfc9dab372985)
@@ -34,4 +34,5 @@
 #include <arch/types.h>
 #include <arch/context.h>
+#include <context.h>
 #include <panic.h>
 
