Merge tag 'rxrpc-fixes-20181008' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / drivers / crypto / n2_asm.S
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)