xref: /titanic_51/usr/src/uts/sun4v/io/fpc/fpc-asm-4v.s (revision 0ad689d678ef901f32945172f48ddc7b16dde50d)
1110e73f9Sschwartz/*
2110e73f9Sschwartz * CDDL HEADER START
3110e73f9Sschwartz *
4110e73f9Sschwartz * The contents of this file are subject to the terms of the
5110e73f9Sschwartz * Common Development and Distribution License (the "License").
6110e73f9Sschwartz * You may not use this file except in compliance with the License.
7110e73f9Sschwartz *
8110e73f9Sschwartz * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9110e73f9Sschwartz * or http://www.opensolaris.org/os/licensing.
10110e73f9Sschwartz * See the License for the specific language governing permissions
11110e73f9Sschwartz * and limitations under the License.
12110e73f9Sschwartz *
13110e73f9Sschwartz * When distributing Covered Code, include this CDDL HEADER in each
14110e73f9Sschwartz * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15110e73f9Sschwartz * If applicable, add the following below this CDDL HEADER, with the
16110e73f9Sschwartz * fields enclosed by brackets "[]" replaced with your own identifying
17110e73f9Sschwartz * information: Portions Copyright [yyyy] [name of copyright owner]
18110e73f9Sschwartz *
19110e73f9Sschwartz * CDDL HEADER END
20110e73f9Sschwartz */
21110e73f9Sschwartz
22110e73f9Sschwartz/*
23110e73f9Sschwartz * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
24110e73f9Sschwartz * Use is subject to license terms.
25110e73f9Sschwartz */
26110e73f9Sschwartz
27110e73f9Sschwartz#pragma ident	"%Z%%M%	%I%	%E% SMI"
28110e73f9Sschwartz
29110e73f9Sschwartz/*
30110e73f9Sschwartz * Assembly language support for sun4v px driver
31110e73f9Sschwartz */
32110e73f9Sschwartz
33110e73f9Sschwartz#include <sys/asm_linkage.h>
34110e73f9Sschwartz#include <sys/machthread.h>
35110e73f9Sschwartz#include <sys/privregs.h>
36110e73f9Sschwartz#include <sys/hypervisor_api.h>
37*0ad689d6Sschwartz#include "fpc-impl-4v.h"
38110e73f9Sschwartz
39110e73f9Sschwartz/*LINTLIBRARY*/
40110e73f9Sschwartz
41110e73f9Sschwartz#if defined(lint)
42110e73f9Sschwartz
43110e73f9Sschwartz#include "fpc-impl-4v.h"
44110e73f9Sschwartz
45110e73f9Sschwartz/*ARGSUSED*/
46110e73f9Sschwartzint
47110e73f9Sschwartzfpc_get_fire_perfreg(devhandle_t dev_hdl, int regid, uint64_t *data)
48110e73f9Sschwartz{ return (0); }
49110e73f9Sschwartz
50110e73f9Sschwartz/*ARGSUSED*/
51110e73f9Sschwartzint
52110e73f9Sschwartzfpc_set_fire_perfreg(devhandle_t dev_hdl, int regid, uint64_t data)
53110e73f9Sschwartz{ return (0); }
54110e73f9Sschwartz
55110e73f9Sschwartz#else /* lint */
56110e73f9Sschwartz
57110e73f9Sschwartz	/*
58110e73f9Sschwartz	 * fpc_get_fire_perfreg(devhandle_t dev_hdl, int regid, uint64_t *data)
59110e73f9Sschwartz	 */
60110e73f9Sschwartz	ENTRY(fpc_get_fire_perfreg)
61110e73f9Sschwartz	mov	FIRE_GET_PERFREG, %o5
62110e73f9Sschwartz	ta	FAST_TRAP
63110e73f9Sschwartz	brz,a	%o0, 1f
64110e73f9Sschwartz	stx	%o1, [%o2]
65110e73f9Sschwartz1:	retl
66110e73f9Sschwartz	nop
67110e73f9Sschwartz	SET_SIZE(fpc_get_fire_perfreg)
68110e73f9Sschwartz
69110e73f9Sschwartz	/*
70110e73f9Sschwartz	 * fpc_set_fire_perfreg(devhandle_t dev_hdl, int regid, uint64_t data)
71110e73f9Sschwartz	 */
72110e73f9Sschwartz	ENTRY(fpc_set_fire_perfreg)
73110e73f9Sschwartz	mov	FIRE_SET_PERFREG, %o5
74110e73f9Sschwartz	ta	FAST_TRAP
75110e73f9Sschwartz	retl
76110e73f9Sschwartz	nop
77110e73f9Sschwartz	SET_SIZE(fpc_set_fire_perfreg)
78110e73f9Sschwartz
79110e73f9Sschwartz
80110e73f9Sschwartz#endif
81