2N/A#
2N/A# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
2N/A#
2N/A# CDDL HEADER START
2N/A#
2N/A# The contents of this file are subject to the terms of the
2N/A# Common Development and Distribution License (the "License").
2N/A# You may not use this file except in compliance with the License.
2N/A#
2N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2N/A# or http://www.opensolaris.org/os/licensing.
2N/A# See the License for the specific language governing permissions
2N/A# and limitations under the License.
2N/A#
2N/A# When distributing Covered Code, include this CDDL HEADER in each
2N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2N/A# If applicable, add the following below this CDDL HEADER, with the
2N/A# fields enclosed by brackets "[]" replaced with your own identifying
2N/A# information: Portions Copyright [yyyy] [name of copyright owner]
2N/A#
2N/A# CDDL HEADER END
2N/A#
2N/A
2N/A$mapfile_version 2
2N/A
2N/A# Kludge alert: SHA1 is used to identify SPARC-T4 platforms. The T4 optimized
2N/A# memmove/memcpy routines in sun4v-hwcap3 do not use sha1 instructions. Since
2N/A# the symbol capability platform names are not available for sun4v (CA_SUNW_PLAT
2N/A# is set to "sun4v" on all sun4v platforms), there is no clean mechanism to load
2N/A# processor specific capabilities. The SHA1 hwcap was arbitrarily chosen from the
2N/A# set of new SPARC-T4 hwcaps to identify SPARC-T4 platforms, since SHA1 is currently
2N/A# only set for SPARC-T4 platforms. Future derivative processor platforms that set
2N/A# SHA1 will also load the sun4v-hwcap3 optimized routines. Until a proper mechanism
2N/A# is implemented, these future platforms will need to define a new sun4v-hwcap if they
2N/A# need to override the sun4v-hwcap3 routines.
2N/A# Once that mechanism is implemented, one should also use it in
2N/A# usr/src/common/crypto/arcfour/sun4v/arcfour_crypt_sun4v.c
2N/A
2N/ACAPABILITY sun4v-hwcap3 {
2N/A MACHINE = sun4v;
2N/A HW += SHA1;
2N/A};
2N/A
2N/ASYMBOL_SCOPE {
2N/A global:
2N/A __align_cpy_1;
2N/A _memcpy;
2N/A _memmove;
2N/A _memset;
2N/A memcpy;
2N/A memmove;
2N/A memset;
2N/A local:
2N/A *;
2N/A};