1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22/* 23 * Copyright (c) 1996 by Sun Microsystems, Inc. 24 */ 25 26#pragma ident "%Z%%M% %I% %E% SMI" 27 28/* 29 * General machine architecture & implementation specific 30 * assembly language routines. 31 */ 32#if defined(lint) 33#include <sys/types.h> 34#include <sys/machsystm.h> 35#include <sys/t_lock.h> 36#else /* lint */ 37#include "assym.h" 38#endif /* lint */ 39 40#include <sys/asm_linkage.h> 41#include <sys/eeprom.h> 42#include <sys/param.h> 43#include <sys/async.h> 44#include <sys/intreg.h> 45#include <sys/machthread.h> 46#include <sys/iocache.h> 47#include <sys/privregs.h> 48#include <sys/archsystm.h> 49 50#if defined(lint) 51 52/*ARGSUSED*/ 53void 54memscrub_read(caddr_t vaddr, u_int blks) 55{} 56 57#else /* lint */ 58 59 ! 60 ! void memscrub_read(caddr_t src, u_int blks) 61 ! 62 63 .seg ".text" 64 .align 4 65 66 ENTRY(memscrub_read) 67 srl %o1, 0, %o1 ! clear upper word of blk count 68 rd %fprs, %o2 ! get the status of fp 69 wr %g0, FPRS_FEF, %fprs ! enable fp 70 711: 72 ldda [%o0]ASI_BLK_P, %d0 73 add %o0, 64, %o0 74 ldda [%o0]ASI_BLK_P, %d16 75 add %o0, 64, %o0 76 ldda [%o0]ASI_BLK_P, %d32 77 add %o0, 64, %o0 78 ldda [%o0]ASI_BLK_P, %d48 79 dec %o1 80 brnz,a %o1, 1b 81 add %o0, 64, %o0 82 83 retl 84 wr %o2, 0, %fprs ! restore fprs (disabled) 85 SET_SIZE(memscrub_read) 86 87#endif /* lint */ 88