03831d35f7499c87d51205817c93e9a8d42c4baestevel * CDDL HEADER START
03831d35f7499c87d51205817c93e9a8d42c4baestevel * The contents of this file are subject to the terms of the
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Common Development and Distribution License (the "License").
03831d35f7499c87d51205817c93e9a8d42c4baestevel * You may not use this file except in compliance with the License.
03831d35f7499c87d51205817c93e9a8d42c4baestevel * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
03831d35f7499c87d51205817c93e9a8d42c4baestevel * See the License for the specific language governing permissions
03831d35f7499c87d51205817c93e9a8d42c4baestevel * and limitations under the License.
03831d35f7499c87d51205817c93e9a8d42c4baestevel * When distributing Covered Code, include this CDDL HEADER in each
03831d35f7499c87d51205817c93e9a8d42c4baestevel * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
03831d35f7499c87d51205817c93e9a8d42c4baestevel * If applicable, add the following below this CDDL HEADER, with the
03831d35f7499c87d51205817c93e9a8d42c4baestevel * fields enclosed by brackets "[]" replaced with your own identifying
03831d35f7499c87d51205817c93e9a8d42c4baestevel * information: Portions Copyright [yyyy] [name of copyright owner]
03831d35f7499c87d51205817c93e9a8d42c4baestevel * CDDL HEADER END
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Use is subject to license terms.
03831d35f7499c87d51205817c93e9a8d42c4baestevel#pragma ident "%Z%%M% %I% %E% SMI"
03831d35f7499c87d51205817c93e9a8d42c4baestevel * This file is through cpp before being used as
03831d35f7499c87d51205817c93e9a8d42c4baestevel * an inline. It contains support routines used
03831d35f7499c87d51205817c93e9a8d42c4baestevel * only by DR for the copy-rename sequence.
03831d35f7499c87d51205817c93e9a8d42c4baestevel#if defined(lint)
03831d35f7499c87d51205817c93e9a8d42c4baestevel#endif /* lint */
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Invalidating the E$ tags is only needed on Cheetah following
03831d35f7499c87d51205817c93e9a8d42c4baestevel * the manual displacement flush. The internal flush ASI used by
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Cheetahplus, Jaguar, and Panther will invalidate the cache lines.
03831d35f7499c87d51205817c93e9a8d42c4baestevel * arg1 = ecache_size
03831d35f7499c87d51205817c93e9a8d42c4baestevel * arg2 = ecache_linesize
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Returns icache size and linesize in reg1 and reg2, respectively.
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Panther has a larger icache compared to Cheetahplus and Jaguar.
03831d35f7499c87d51205817c93e9a8d42c4baestevel#endif /* !lint */
03831d35f7499c87d51205817c93e9a8d42c4baestevel#if defined(lint)
03831d35f7499c87d51205817c93e9a8d42c4baestevel/*ARGSUSED*/
03831d35f7499c87d51205817c93e9a8d42c4baestevel#else /* lint */
03831d35f7499c87d51205817c93e9a8d42c4baestevel ! %o0 = address of sbdp_shutdown_t structure passed in
03831d35f7499c87d51205817c93e9a8d42c4baestevel#endif /* lint */
03831d35f7499c87d51205817c93e9a8d42c4baestevel#if defined(lint)
03831d35f7499c87d51205817c93e9a8d42c4baestevel#else /* lint */
03831d35f7499c87d51205817c93e9a8d42c4baestevel#endif /* lint */
03831d35f7499c87d51205817c93e9a8d42c4baestevel#if defined(lint)
03831d35f7499c87d51205817c93e9a8d42c4baestevel/* ARGSUSED */
03831d35f7499c87d51205817c93e9a8d42c4baestevelsgdr_mem_blkcopy(caddr_t src, caddr_t dst, u_int linecount, u_int linesize)
03831d35f7499c87d51205817c93e9a8d42c4baestevel#else /* !lint */
03831d35f7499c87d51205817c93e9a8d42c4baestevel! Move a single cache line of data. Survive UE and CE on the read
03831d35f7499c87d51205817c93e9a8d42c4baestevel ! void stdmcdecode(uint64_t physaddr, uint64_t value)
03831d35f7499c87d51205817c93e9a8d42c4baestevel * disable interrupts, clear Address Mask to access 64 bit physaddr
03831d35f7499c87d51205817c93e9a8d42c4baestevel wrpr %g0, %o4, %pstate ! restore earlier pstate register value
03831d35f7499c87d51205817c93e9a8d42c4baestevel#endif /* lint */