*
  * ----------------------------------------------------------------------- */
 
+#include <linux/linkage.h>
+
 /*
  * Memory copy routines
  */
        .code16gcc
        .text
 
-       .globl  memcpy
-       .type   memcpy, @function
-memcpy:
+GLOBAL(memcpy)
        pushw   %si
        pushw   %di
        movw    %ax, %di
        popw    %di
        popw    %si
        ret
-       .size   memcpy, .-memcpy
+ENDPROC(memcpy)
 
-       .globl  memset
-       .type   memset, @function
-memset:
+GLOBAL(memset)
        pushw   %di
        movw    %ax, %di
        movzbl  %dl, %eax
        rep; stosb
        popw    %di
        ret
-       .size   memset, .-memset
+ENDPROC(memset)
 
-       .globl  copy_from_fs
-       .type   copy_from_fs, @function
-copy_from_fs:
+GLOBAL(copy_from_fs)
        pushw   %ds
        pushw   %fs
        popw    %ds
        call    memcpy
        popw    %ds
        ret
-       .size   copy_from_fs, .-copy_from_fs
+ENDPROC(copy_from_fs)
 
-       .globl  copy_to_fs
-       .type   copy_to_fs, @function
-copy_to_fs:
+GLOBAL(copy_to_fs)
        pushw   %es
        pushw   %fs
        popw    %es
        call    memcpy
        popw    %es
        ret
-       .size   copy_to_fs, .-copy_to_fs
+ENDPROC(copy_to_fs)
 
 #if 0 /* Not currently used, but can be enabled as needed */
-
-       .globl  copy_from_gs
-       .type   copy_from_gs, @function
-copy_from_gs:
+GLOBAL(copy_from_gs)
        pushw   %ds
        pushw   %gs
        popw    %ds
        call    memcpy
        popw    %ds
        ret
-       .size   copy_from_gs, .-copy_from_gs
-       .globl  copy_to_gs
+ENDPROC(copy_from_gs)
 
-       .type   copy_to_gs, @function
-copy_to_gs:
+GLOBAL(copy_to_gs)
        pushw   %es
        pushw   %gs
        popw    %es
        call    memcpy
        popw    %es
        ret
-       .size   copy_to_gs, .-copy_to_gs
-
+ENDPROC(copy_to_gs)
 #endif