4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
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 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26 #pragma ident "%Z%%M% %I% %E% SMI"
27
28 /*
29 * exit routine from linker/loader to kernel
30 */
31
32 #include <sys/asm_linkage.h>
33 #include <sys/reboot.h>
34
35 /*
36 * exitto is called from main() and does 1 things
37 * It then jumps directly to the just-loaded standalone.
38 * There is NO RETURN from exitto().
39 */
40
41 #if defined(lint)
42
43 /* ARGSUSED */
44 void
45 exitto(caddr_t entrypoint)
46 {}
47
48 #else /* lint */
49
50
51 ENTRY(exitto)
52
53 /preserve destination in temporary register %r11
54 movq %rdi, %r11
55
56 /holds address of array of pointers to functions
57 / $arg1
58 movq $romp, %rax
59 movq (%rax), %rdi
60
61 /holds address of bootops structure
62 / $arg2
63 movq $ops, %rax
64 movq (%rax), %rdx
65
66 / Call destination
67 call *%r11
68
69 SET_SIZE(exitto)
70
71 #endif
72
|
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
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 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 * Copyright 2019 Joyent, Inc.
25 */
26
27 /*
28 * exit routine from linker/loader to kernel
29 */
30
31 #include <sys/asm_linkage.h>
32 #include <sys/reboot.h>
33
34 /*
35 * exitto is called from main() and does 1 things
36 * It then jumps directly to the just-loaded standalone.
37 * There is NO RETURN from exitto().
38 */
39
40 #if defined(lint)
41
42 /* ARGSUSED */
43 void
44 exitto(caddr_t entrypoint)
45 {}
46
47 #else /* lint */
48
49
50 ENTRY(exitto)
51
52 /preserve destination in temporary register %r11
53 movq %rdi, %r11
54
55 /holds address of array of pointers to functions
56 / $arg1
57 movq $romp, %rax
58 movq (%rax), %rdi
59
60 /holds address of bootops structure
61 / $arg2
62 movq $ops, %rax
63 movq (%rax), %rdx
64
65 / Call destination
66 INDIRECT_CALL_REG(r11)
67
68 SET_SIZE(exitto)
69
70 #endif
71
|