cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

n2_asm.S (1814B)


      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	 */
     16ENTRY(sun4v_ncs_qconf)
     17	mov	HV_FAST_NCS_QCONF, %o5
     18	ta	HV_FAST_TRAP
     19	stx	%o1, [%o3]
     20	retl
     21	 nop
     22ENDPROC(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	 */
     29ENTRY(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
     40ENDPROC(sun4v_ncs_qinfo)
     41
     42	/* %o0: queue handle
     43	 * %o1: address of head offset return
     44	 */
     45ENTRY(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
     52ENDPROC(sun4v_ncs_gethead)
     53
     54	/* %o0: queue handle
     55	 * %o1: address of tail offset return
     56	 */
     57ENTRY(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
     64ENDPROC(sun4v_ncs_gettail)
     65
     66	/* %o0: queue handle
     67	 * %o1: new tail offset
     68	 */
     69ENTRY(sun4v_ncs_settail)
     70	mov	HV_FAST_NCS_SETTAIL, %o5
     71	ta	HV_FAST_TRAP
     72	retl
     73	 nop
     74ENDPROC(sun4v_ncs_settail)
     75
     76	/* %o0: queue handle
     77	 * %o1: address of devino return
     78	 */
     79ENTRY(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
     86ENDPROC(sun4v_ncs_qhandle_to_devino)
     87
     88	/* %o0: queue handle
     89	 * %o1: new head offset
     90	 */
     91ENTRY(sun4v_ncs_sethead_marker)
     92	mov	HV_FAST_NCS_SETHEAD_MARKER, %o5
     93	ta	HV_FAST_TRAP
     94	retl
     95	 nop
     96ENDPROC(sun4v_ncs_sethead_marker)