ea1a228c80597366447774aa1988868492330eb5schwartz/*
ea1a228c80597366447774aa1988868492330eb5schwartz * CDDL HEADER START
ea1a228c80597366447774aa1988868492330eb5schwartz *
ea1a228c80597366447774aa1988868492330eb5schwartz * The contents of this file are subject to the terms of the
ea1a228c80597366447774aa1988868492330eb5schwartz * Common Development and Distribution License (the "License").
ea1a228c80597366447774aa1988868492330eb5schwartz * You may not use this file except in compliance with the License.
ea1a228c80597366447774aa1988868492330eb5schwartz *
ea1a228c80597366447774aa1988868492330eb5schwartz * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
ea1a228c80597366447774aa1988868492330eb5schwartz * or http://www.opensolaris.org/os/licensing.
ea1a228c80597366447774aa1988868492330eb5schwartz * See the License for the specific language governing permissions
ea1a228c80597366447774aa1988868492330eb5schwartz * and limitations under the License.
ea1a228c80597366447774aa1988868492330eb5schwartz *
ea1a228c80597366447774aa1988868492330eb5schwartz * When distributing Covered Code, include this CDDL HEADER in each
ea1a228c80597366447774aa1988868492330eb5schwartz * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
ea1a228c80597366447774aa1988868492330eb5schwartz * If applicable, add the following below this CDDL HEADER, with the
ea1a228c80597366447774aa1988868492330eb5schwartz * fields enclosed by brackets "[]" replaced with your own identifying
ea1a228c80597366447774aa1988868492330eb5schwartz * information: Portions Copyright [yyyy] [name of copyright owner]
ea1a228c80597366447774aa1988868492330eb5schwartz *
ea1a228c80597366447774aa1988868492330eb5schwartz * CDDL HEADER END
ea1a228c80597366447774aa1988868492330eb5schwartz */
ea1a228c80597366447774aa1988868492330eb5schwartz
ea1a228c80597366447774aa1988868492330eb5schwartz/*
ea1a228c80597366447774aa1988868492330eb5schwartz * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
ea1a228c80597366447774aa1988868492330eb5schwartz * Use is subject to license terms.
ea1a228c80597366447774aa1988868492330eb5schwartz */
ea1a228c80597366447774aa1988868492330eb5schwartz
ea1a228c80597366447774aa1988868492330eb5schwartz#pragma ident "%Z%%M% %I% %E% SMI"
ea1a228c80597366447774aa1988868492330eb5schwartz
ea1a228c80597366447774aa1988868492330eb5schwartz/*
ea1a228c80597366447774aa1988868492330eb5schwartz * Assembly language support for the n2piupc N2 PIU performance counter driver.
ea1a228c80597366447774aa1988868492330eb5schwartz */
ea1a228c80597366447774aa1988868492330eb5schwartz
ea1a228c80597366447774aa1988868492330eb5schwartz#include <sys/asm_linkage.h>
ea1a228c80597366447774aa1988868492330eb5schwartz#include <sys/hypervisor_api.h>
ea1a228c80597366447774aa1988868492330eb5schwartz#include "n2piupc_acc.h"
ea1a228c80597366447774aa1988868492330eb5schwartz
ea1a228c80597366447774aa1988868492330eb5schwartz/*LINTLIBRARY*/
ea1a228c80597366447774aa1988868492330eb5schwartz
ea1a228c80597366447774aa1988868492330eb5schwartz#if defined(lint)
ea1a228c80597366447774aa1988868492330eb5schwartz
ea1a228c80597366447774aa1988868492330eb5schwartz/*ARGSUSED*/
ea1a228c80597366447774aa1988868492330eb5schwartzint
ea1a228c80597366447774aa1988868492330eb5schwartzn2piupc_get_perfreg(cntr_handle_t handle, int regid, uint64_t *data)
ea1a228c80597366447774aa1988868492330eb5schwartz{ return (0); }
ea1a228c80597366447774aa1988868492330eb5schwartz
ea1a228c80597366447774aa1988868492330eb5schwartz/*ARGSUSED*/
ea1a228c80597366447774aa1988868492330eb5schwartzint
ea1a228c80597366447774aa1988868492330eb5schwartzn2piupc_set_perfreg(cntr_handle_t handle, int regid, uint64_t data)
ea1a228c80597366447774aa1988868492330eb5schwartz{ return (0); }
ea1a228c80597366447774aa1988868492330eb5schwartz
ea1a228c80597366447774aa1988868492330eb5schwartz#else /* lint */
ea1a228c80597366447774aa1988868492330eb5schwartz
ea1a228c80597366447774aa1988868492330eb5schwartz ENTRY(n2piupc_get_perfreg)
ea1a228c80597366447774aa1988868492330eb5schwartz mov N2PIU_GET_PERFREG, %o5
ea1a228c80597366447774aa1988868492330eb5schwartz ta FAST_TRAP
ea1a228c80597366447774aa1988868492330eb5schwartz brz,a %o0, 1f
ea1a228c80597366447774aa1988868492330eb5schwartz stx %o1, [%o2]
ea1a228c80597366447774aa1988868492330eb5schwartz1: retl
ea1a228c80597366447774aa1988868492330eb5schwartz nop
ea1a228c80597366447774aa1988868492330eb5schwartz SET_SIZE(n2piupc_get_perfreg)
ea1a228c80597366447774aa1988868492330eb5schwartz
ea1a228c80597366447774aa1988868492330eb5schwartz ENTRY(n2piupc_set_perfreg)
ea1a228c80597366447774aa1988868492330eb5schwartz mov N2PIU_SET_PERFREG, %o5
ea1a228c80597366447774aa1988868492330eb5schwartz ta FAST_TRAP
ea1a228c80597366447774aa1988868492330eb5schwartz retl
ea1a228c80597366447774aa1988868492330eb5schwartz nop
ea1a228c80597366447774aa1988868492330eb5schwartz SET_SIZE(n2piupc_set_perfreg)
ea1a228c80597366447774aa1988868492330eb5schwartz
ea1a228c80597366447774aa1988868492330eb5schwartz#endif