xenguest.s revision 843e19887f64dde75055cf8842fc4db2171eff45
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync/*
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync * CDDL HEADER START
6d1a8b922859f63b629351cba4793043627d7c8fvboxsync *
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync * The contents of this file are subject to the terms of the
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync * Common Development and Distribution License (the "License").
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync * You may not use this file except in compliance with the License.
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync *
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * or http://www.opensolaris.org/os/licensing.
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * See the License for the specific language governing permissions
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * and limitations under the License.
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync *
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * When distributing Covered Code, include this CDDL HEADER in each
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * If applicable, add the following below this CDDL HEADER, with the
e90bc1b0a8fb83acc1c1dc65176f143163cbb1a4vboxsync * fields enclosed by brackets "[]" replaced with your own identifying
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * information: Portions Copyright [yyyy] [name of copyright owner]
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync *
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * CDDL HEADER END
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync */
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync
995825c1ba4ab8b5d5b52ce33327f4630ad7ca64vboxsync/*
27537ffef7291d0bb3a24e459a6b94c65586defevboxsync * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
7a39033381dbde37dc7b59b2440d643b1cbac21dvboxsync * Use is subject to license terms.
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync */
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync#pragma ident "%Z%%M% %I% %E% SMI"
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync#if defined(__lint)
37eed2e0302518c6f0e74856c39d52a9417a551cvboxsync
37eed2e0302518c6f0e74856c39d52a9417a551cvboxsync/*
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync * Stop lint complaining about an empty compilation unit!
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync * Sigh. There should be a better way to handle this.
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync */
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsyncint __lint_xen_guest;
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync#else /* __lint */
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync#include <xen/public/elfnote.h>
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync/*
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync * A note is a name/value pair that belongs to some class.
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync */
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync#define NOTE(class, id, type, value) \
4896726d903f56fe43eb13e2ba27ae1d63b8c40evboxsync .align 4; \
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync .4byte 2f - 1f; \
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync .4byte 4f - 3f; \
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync .4byte id; \
1c2c968fd241148110002d75b2c0fdeddc211e14vboxsync1: ; \
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync .string class; \
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync2: ; \
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync .align 4; \
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync3: ; \
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync type value; \
67b414aa650cb27688d387c2184f8488d801cd72vboxsync4: ;
67b414aa650cb27688d387c2184f8488d801cd72vboxsync
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync .section .note
67b414aa650cb27688d387c2184f8488d801cd72vboxsync NOTE("Xen", XEN_ELFNOTE_LOADER, .string, "generic")
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync NOTE("Xen", XEN_ELFNOTE_XEN_VERSION, .string, "xen-3.0")
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync NOTE("Xen", XEN_ELFNOTE_GUEST_OS, .string, "Solaris")
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync NOTE("Xen", XEN_ELFNOTE_VIRT_BASE, .4byte, 0x40000000)
a882c87b5d8115089725175d3d966f380f67a6afvboxsync NOTE("Xen", XEN_ELFNOTE_PADDR_OFFSET, .4byte, 0x40000000)
8887849668e69def9136d8d8a31766069a60d7f5vboxsync#if defined(__i386)
8887849668e69def9136d8d8a31766069a60d7f5vboxsync /*
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync * NB: If you want to build a kernel that works on a non-PAE
84d5d5272edbc1f41f963221b74a7eda71d0e2a2vboxsync * hypervisor, just comment out the next line and rebuild Solaris.
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync * It'll just work, the kernel figures everything out dynamically.
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync */
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync NOTE("Xen", XEN_ELFNOTE_PAE_MODE, .string, "yes,bimodal")
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync /*
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync * XXPV: implement XEN_ELFNOTE_HV_START_LOW
3f8fa562bb916e87b0beff9ec2a4e241c643dcc8vboxsync */
9e201d78ac6efdd08550263f2e146cdb76e9d49bvboxsync#endif
4e46eee5a96078ebec6cb36939b794a391f1ade0vboxsync
4e46eee5a96078ebec6cb36939b794a391f1ade0vboxsync#endif /* __lint */
4e46eee5a96078ebec6cb36939b794a391f1ade0vboxsync