Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | /* |
2 | * ========== Copyright Header Begin ========================================== | |
3 | * | |
4 | * Hypervisor Software File: hcalls.s | |
5 | * | |
6 | * Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved. | |
7 | * | |
8 | * - Do no alter or remove copyright notices | |
9 | * | |
10 | * - Redistribution and use of this software in source and binary forms, with | |
11 | * or without modification, are permitted provided that the following | |
12 | * conditions are met: | |
13 | * | |
14 | * - Redistribution of source code must retain the above copyright notice, | |
15 | * this list of conditions and the following disclaimer. | |
16 | * | |
17 | * - Redistribution in binary form must reproduce the above copyright notice, | |
18 | * this list of conditions and the following disclaimer in the | |
19 | * documentation and/or other materials provided with the distribution. | |
20 | * | |
21 | * Neither the name of Sun Microsystems, Inc. or the names of contributors | |
22 | * may be used to endorse or promote products derived from this software | |
23 | * without specific prior written permission. | |
24 | * | |
25 | * This software is provided "AS IS," without a warranty of any kind. | |
26 | * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, | |
27 | * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A | |
28 | * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN | |
29 | * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR | |
30 | * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR | |
31 | * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN | |
32 | * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR | |
33 | * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE | |
34 | * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, | |
35 | * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF | |
36 | * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. | |
37 | * | |
38 | * You acknowledge that this software is not designed, licensed or | |
39 | * intended for use in the design, construction, operation or maintenance of | |
40 | * any nuclear facility. | |
41 | * | |
42 | * ========== Copyright Header End ============================================ | |
43 | */ | |
44 | /* | |
45 | * Copyright 2007 Sun Microsystems, Inc. All rights reserved. | |
46 | * Use is subject to license terms. | |
47 | */ | |
48 | ||
49 | .ident "@(#)hcalls.s 1.7 07/04/22 SMI" | |
50 | ||
51 | .file "hcalls.s" | |
52 | ||
53 | #include <sys/asm_linkage.h> | |
54 | #include <sys/privregs.h> | |
55 | #include <sys/stack.h> | |
56 | ||
57 | #include <hypervisor.h> | |
58 | ||
59 | #if defined(lint) | |
60 | /* ARGSUSED */ | |
61 | int | |
62 | hv_core_trap(uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, | |
63 | uint64_t a4, int func) | |
64 | { | |
65 | return -1; | |
66 | } | |
67 | #else | |
68 | ENTRY(hv_core_trap) | |
69 | ta CORE_TRAP | |
70 | retl | |
71 | addc %g0, 0, %o0 | |
72 | SET_SIZE(hv_core_trap) | |
73 | #endif | |
74 | ||
75 | #if defined(lint) | |
76 | /* ARGSUSED */ | |
77 | int | |
78 | hv_fast_trap(uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, | |
79 | uint64_t a4, int func) | |
80 | { | |
81 | return -1; | |
82 | } | |
83 | #else | |
84 | ENTRY(hv_fast_trap) | |
85 | ta FAST_TRAP | |
86 | retl | |
87 | addc %g0, 0, %o0 | |
88 | SET_SIZE(hv_fast_trap) | |
89 | #endif | |
90 | ||
91 | #if defined(lint) | |
92 | /* ARGSUSED */ | |
93 | int | |
94 | hv_trap(uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, | |
95 | uint64_t a4, int trap) | |
96 | { | |
97 | return -1; | |
98 | } | |
99 | #else | |
100 | ENTRY(hv_trap) | |
101 | ta %o5 | |
102 | retl | |
103 | addc %g0, 0, %o0 | |
104 | SET_SIZE(hv_trap) | |
105 | #endif | |
106 | ||
107 | #if 0 | |
108 | ||
109 | ENTRY(soft_trap) | |
110 | subcc %g0, %g0, %g0 | |
111 | mov %o0, %g1 | |
112 | mov %o1, %o0 | |
113 | mov %o2, %o1 | |
114 | mov %o3, %o2 | |
115 | mov %o4, %o3 | |
116 | mov %o5, %o4 | |
117 | ta %g1 | |
118 | retl | |
119 | addc %g0, 0, %o0 | |
120 | SET_SIZE(soft_trap) | |
121 | ||
122 | ENTRY(htrap) | |
123 | subcc %g0, %g0, %g0 | |
124 | mov %o0, %g1 | |
125 | mov %o1, %o0 | |
126 | mov %o2, %o1 | |
127 | mov %o3, %o2 | |
128 | mov %o4, %o3 | |
129 | mov %o5, %o4 | |
130 | ta %g1+0x80 | |
131 | retl | |
132 | addc %g0, 0, %o0 | |
133 | SET_SIZE(htrap) | |
134 | ||
135 | ENTRY(legion_debug) | |
136 | ta %xcc, 0x70 | |
137 | retl | |
138 | nop | |
139 | SET_SIZE(legion_debug) | |
140 | ||
141 | #endif |