uaccess.S
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  *  arch/s390x/lib/uaccess.S
  3.  *    fixup routines for copy_{from|to}_user functions.
  4.  *
  5.  *  S390
  6.  *    Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
  7.  *    Authors(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  8.  *
  9.  *  These functions have standard call interface
  10.  */
  11. #include <asm/lowcore.h>
  12.         .text
  13.         .align 4
  14.         .globl __copy_from_user_asm
  15. __copy_from_user_asm:
  16. lgr %r5,%r3
  17. sacf 512
  18. 0: mvcle %r2,%r4,0
  19. jo 0b
  20. sacf 0
  21. lgr %r2,%r5
  22. br %r14
  23. 1: lg %r1,__LC_PGM_OLD_PSW+8
  24. 2: lghi %r3,-4096
  25.         ng %r3,__LC_TRANS_EXC_ADDR
  26.         sgr %r3,%r4
  27.         bm 4(%r1)
  28. 3:      mvcle %r2,%r4,0
  29.         b 4(%r1)
  30.         .section __ex_table,"a"
  31.         .align 8
  32. .quad 0b,1b
  33. .quad 3b,2b
  34.         .previous
  35.         .align 4
  36.         .text
  37.         .globl __copy_to_user_asm
  38. __copy_to_user_asm:
  39. lgr %r5,%r3
  40. sacf 512
  41. 0: mvcle %r4,%r2,0
  42. jo 0b
  43. sacf 0
  44. lgr %r2,%r3
  45. br %r14
  46. 1: lg %r1,__LC_PGM_OLD_PSW+8
  47. 2:      lghi %r5,-4096
  48.         ng %r5,__LC_TRANS_EXC_ADDR
  49.         sgr %r5,%r4
  50.         bm 4(%r1)
  51. 3:      mvcle %r4,%r2,0
  52.         b 4(%r1)
  53.         .section __ex_table,"a"
  54.         .align 8
  55.         .quad 0b,1b
  56.         .quad 3b,2b
  57.         .previous
  58.         .align 4
  59.         .text
  60.         .globl __clear_user_asm
  61. __clear_user_asm:
  62. lgr %r4,%r2
  63. lgr %r5,%r3
  64. sgr %r2,%r2
  65. sgr %r3,%r3
  66. sacf 512
  67. 0: mvcle %r4,%r2,0
  68. jo 0b
  69. sacf 0
  70. lgr %r2,%r5
  71. br %r14
  72. 1: lg %r1,__LC_PGM_OLD_PSW+8
  73. 2:      lghi %r5,-4096
  74.         ng %r5,__LC_TRANS_EXC_ADDR
  75.         sgr %r5,%r4
  76.         bm 4(%r1)
  77. 3:      mvcle %r4,%r2,0
  78.         b 4(%r1)
  79.         .section __ex_table,"a"
  80.         .align 8
  81.         .quad 0b,1b
  82.         .quad 3b,2b
  83.         .previous