e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * CDDL HEADER START
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * The contents of this file are subject to the terms of the
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * Common Development and Distribution License (the "License").
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * You may not use this file except in compliance with the License.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * or http://www.opensolaris.org/os/licensing.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * See the License for the specific language governing permissions
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * and limitations under the License.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * When distributing Covered Code, include this CDDL HEADER in each
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * If applicable, add the following below this CDDL HEADER, with the
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * fields enclosed by brackets "[]" replaced with your own identifying
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * information: Portions Copyright [yyyy] [name of copyright owner]
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * CDDL HEADER END
b49b27dcb66b2c7f4a23f7bc158e2dde5cd79030Theo Schlossnagle * Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved.
80e2ca8596e3435bc3b76f3c597833ea0a87f85e * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
80e2ca8596e3435bc3b76f3c597833ea0a87f85e#define S10_LIB64 BRAND_NATIVE_DIR "usr/lib/64/" S10_LIB_NAME
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek#define S10_LINKER64 "/lib/64/" S10_LINKER_NAME
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek#else /* !_LP64 */
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek#endif /* !_LP64 */
8f798d3afbe38d59cc0a708261dbb729f1b6b209Roger A. Faulkner * Solaris 10 value of _SIGRTMIN, _SIGRTMAX, MAXSIG, NSIG
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * Brand system call subcodes. 0-127 are reserved for generic subcodes.
ad601a0502a167436cd68b185fff0eb78c34777bjv * Versioning flags
ad601a0502a167436cd68b185fff0eb78c34777bjv * The first enum value must be zero. Place new enum values at the end of the
ad601a0502a167436cd68b185fff0eb78c34777bjv * list but before S10_NUM_EMUL_FEATURES, which must always come last.
ad601a0502a167436cd68b185fff0eb78c34777bjv * Enum values should start with "S10_FEATURE_" and be named after the
ad601a0502a167436cd68b185fff0eb78c34777bjv * fixes/backports that they represent. For example, an enum value representing
ad601a0502a167436cd68b185fff0eb78c34777bjv * a backport that changes a MNTFS ioctl could be named
ad601a0502a167436cd68b185fff0eb78c34777bjv * "S10_FEATURE_ALTERED_MNTFS_IOCTL".
ad601a0502a167436cd68b185fff0eb78c34777bjv * This string constant represents the path of the Solaris 10 directory
ad601a0502a167436cd68b185fff0eb78c34777bjv * containing emulation feature files.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * s10_brand_syscall_callback_common() needs to save 4 local registers so it
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek * can free them up for its own use.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek#define S10_CPU_REG_SAVE_SIZE (sizeof (ulong_t) * 4)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * S10 system call codes for S10 traps that have been removed or reassigned,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * or that are to be removed or reassigned after the dtrace syscall provider
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * has been reengineered to deal properly with syscall::open (for example).
ad601a0502a167436cd68b185fff0eb78c34777bjv * solaris10-brand-specific attributes
ad601a0502a167436cd68b185fff0eb78c34777bjv * These must start at ZONE_ATTR_BRAND_ATTRS.
ad601a0502a167436cd68b185fff0eb78c34777bjv * s10_emul_bitmap represents an emulation feature bitmap. Each constant
ad601a0502a167436cd68b185fff0eb78c34777bjv * in s10_emulated_features defines a bit index in this bitmap. If a bit is
ad601a0502a167436cd68b185fff0eb78c34777bjv * set, then the feature associated with the s10_emulated_features constant
ad601a0502a167436cd68b185fff0eb78c34777bjv * whose value is the bit's index is present in the associated zone's hosted
ad601a0502a167436cd68b185fff0eb78c34777bjv * Solaris 10 environment.
ad601a0502a167436cd68b185fff0eb78c34777bjv * NOTE: There must be at least one byte in the bitmap.
ad601a0502a167436cd68b185fff0eb78c34777bjv * We don't use the bitmap macros provided by usr/src/uts/common/sys/bitmap.h
ad601a0502a167436cd68b185fff0eb78c34777bjv * because they operate on ulong_t arrays. The size of a ulong_t depends on
ad601a0502a167436cd68b185fff0eb78c34777bjv * the data model in which the code that declares the ulong_t is compiled:
ad601a0502a167436cd68b185fff0eb78c34777bjv * four bytes on 32-bit architectures and eight bytes 64-bit architectures.
ad601a0502a167436cd68b185fff0eb78c34777bjv * If the kernel is 64-bit and a 32-bit process executes in a solaris10-
ad601a0502a167436cd68b185fff0eb78c34777bjv * branded zone, then if the process' emulation library, which is 32-bit,
ad601a0502a167436cd68b185fff0eb78c34777bjv * queries the kernel for the zone's emulation bitmap, then the kernel will
ad601a0502a167436cd68b185fff0eb78c34777bjv * refuse because the library will request a bitmap that's half as big
ad601a0502a167436cd68b185fff0eb78c34777bjv * as the bitmap the kernel provides. The 32-bit emulation library would need
ad601a0502a167436cd68b185fff0eb78c34777bjv * its own macros to define and operate on bitmaps with 64-bit array elements.
ad601a0502a167436cd68b185fff0eb78c34777bjv * Thus using the sys/bitmap.h macros is probably more troublesome than
ad601a0502a167436cd68b185fff0eb78c34777bjv * defining and using our own constants and macros for bitmap manipulations.
ad601a0502a167436cd68b185fff0eb78c34777bjvtypedef uint8_t s10_emul_bitmap_t[(S10_NUM_EMUL_FEATURES >> 3) + 1];
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek/* brand specific data */
ad601a0502a167436cd68b185fff0eb78c34777bjv * emul_bitmap specifies the features that are present in the
ad601a0502a167436cd68b185fff0eb78c34777bjv * associated zone.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek#endif /* !sparc */
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek#endif /* __amd64 */
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek#endif /* _KERNEL */
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek#endif /* _S10_BRAND_H */