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