7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26
27 #pragma ident "%Z%%M% %I% %E% SMI"
28
29 #include <sys/asm_linkage.h>
30 #include <sys/asm_misc.h>
31 #include "dboot_xboot.h"
32
33 #if defined(__lint)
34
35 #else /* __lint */
36
37 #if defined(__amd64)
38
39 ENTRY_NP(_start)
40 /*
41 * At entry we are passed a (start_info_t *) in %rsi.
42 */
43 movq %rsi, xen_info(%rip)
44
45 /*
46 * make sure we have sane processor state
47 */
48 xorw %ax, %ax
49 movw %ax, %fs
50 movw %ax, %gs
51 pushq $0
52 popfq
53 pushq $0
54
55 /*
56 * go off and unpack the kernel bits, adjust page tables, etc.
108 */
109 movl $stack_space, %esp /* load my stack pointer */
110 addl $STACK_SIZE, %esp
111
112 pushl $0x0 /* push a dead-end frame */
113 pushl $0x0
114 movl %esp, %ebp
115
116 /*
117 * when we get back, load the kernel entry point and jump to it
118 * The address of the xboot_info is the kernel's only argument.
119 */
120 movl entry_addr_low, %esi
121 movl bi, %eax
122 pushl %eax
123 call *%esi
124 SET_SIZE(_start)
125
126 #endif /* __i386 */
127
128 #endif /* __lint */
|
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26
27 #include <sys/asm_linkage.h>
28 #include <sys/asm_misc.h>
29 #include "dboot_xboot.h"
30
31 #if defined(__amd64)
32
33 ENTRY_NP(_start)
34 /*
35 * At entry we are passed a (start_info_t *) in %rsi.
36 */
37 movq %rsi, xen_info(%rip)
38
39 /*
40 * make sure we have sane processor state
41 */
42 xorw %ax, %ax
43 movw %ax, %fs
44 movw %ax, %gs
45 pushq $0
46 popfq
47 pushq $0
48
49 /*
50 * go off and unpack the kernel bits, adjust page tables, etc.
102 */
103 movl $stack_space, %esp /* load my stack pointer */
104 addl $STACK_SIZE, %esp
105
106 pushl $0x0 /* push a dead-end frame */
107 pushl $0x0
108 movl %esp, %ebp
109
110 /*
111 * when we get back, load the kernel entry point and jump to it
112 * The address of the xboot_info is the kernel's only argument.
113 */
114 movl entry_addr_low, %esi
115 movl bi, %eax
116 pushl %eax
117 call *%esi
118 SET_SIZE(_start)
119
120 #endif /* __i386 */
121
|