root/drivers/crypto/n2_asm.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /* n2_asm.S: Hypervisor calls for NCS support.
   3  *
   4  * Copyright (C) 2009 David S. Miller <davem@davemloft.net>
   5  */
   6 
   7 #include <linux/linkage.h>
   8 #include <asm/hypervisor.h>
   9 #include "n2_core.h"
  10 
  11         /* o0: queue type
  12          * o1: RA of queue
  13          * o2: num entries in queue
  14          * o3: address of queue handle return
  15          */
  16 ENTRY(sun4v_ncs_qconf)
  17         mov     HV_FAST_NCS_QCONF, %o5
  18         ta      HV_FAST_TRAP
  19         stx     %o1, [%o3]
  20         retl
  21          nop
  22 ENDPROC(sun4v_ncs_qconf)
  23 
  24         /* %o0: queue handle
  25          * %o1: address of queue type return
  26          * %o2: address of queue base address return
  27          * %o3: address of queue num entries return
  28          */
  29 ENTRY(sun4v_ncs_qinfo)
  30         mov     %o1, %g1
  31         mov     %o2, %g2
  32         mov     %o3, %g3
  33         mov     HV_FAST_NCS_QINFO, %o5
  34         ta      HV_FAST_TRAP
  35         stx     %o1, [%g1]
  36         stx     %o2, [%g2]
  37         stx     %o3, [%g3]
  38         retl
  39          nop
  40 ENDPROC(sun4v_ncs_qinfo)
  41 
  42         /* %o0: queue handle
  43          * %o1: address of head offset return
  44          */
  45 ENTRY(sun4v_ncs_gethead)
  46         mov     %o1, %o2
  47         mov     HV_FAST_NCS_GETHEAD, %o5
  48         ta      HV_FAST_TRAP
  49         stx     %o1, [%o2]
  50         retl
  51          nop
  52 ENDPROC(sun4v_ncs_gethead)
  53 
  54         /* %o0: queue handle
  55          * %o1: address of tail offset return
  56          */
  57 ENTRY(sun4v_ncs_gettail)
  58         mov     %o1, %o2
  59         mov     HV_FAST_NCS_GETTAIL, %o5
  60         ta      HV_FAST_TRAP
  61         stx     %o1, [%o2]
  62         retl
  63          nop
  64 ENDPROC(sun4v_ncs_gettail)
  65 
  66         /* %o0: queue handle
  67          * %o1: new tail offset
  68          */
  69 ENTRY(sun4v_ncs_settail)
  70         mov     HV_FAST_NCS_SETTAIL, %o5
  71         ta      HV_FAST_TRAP
  72         retl
  73          nop
  74 ENDPROC(sun4v_ncs_settail)
  75 
  76         /* %o0: queue handle
  77          * %o1: address of devino return
  78          */
  79 ENTRY(sun4v_ncs_qhandle_to_devino)
  80         mov     %o1, %o2
  81         mov     HV_FAST_NCS_QHANDLE_TO_DEVINO, %o5
  82         ta      HV_FAST_TRAP
  83         stx     %o1, [%o2]
  84         retl
  85          nop
  86 ENDPROC(sun4v_ncs_qhandle_to_devino)
  87 
  88         /* %o0: queue handle
  89          * %o1: new head offset
  90          */
  91 ENTRY(sun4v_ncs_sethead_marker)
  92         mov     HV_FAST_NCS_SETHEAD_MARKER, %o5
  93         ta      HV_FAST_TRAP
  94         retl
  95          nop
  96 ENDPROC(sun4v_ncs_sethead_marker)

/* [<][>][^][v][top][bottom][index][help] */