diff options
author | David S. Miller <davem@davemloft.net> | 2008-09-01 06:13:17 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-09-01 06:13:17 -0400 |
commit | 687124dda0beeb8503ae27a1588e4705b3a588c2 (patch) | |
tree | ca0d75f3aa938d7d5252ba145cb3102079b0f46a /arch/sparc64/kernel/hvcalls.S | |
parent | 3d452e55ef905fc6fbf813a66c16de1293e243a1 (diff) |
sparc64: Use ENTRY/ENDPROC in hypervisor asm.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/hvcalls.S')
-rw-r--r-- | arch/sparc64/kernel/hvcalls.S | 354 |
1 files changed, 118 insertions, 236 deletions
diff --git a/arch/sparc64/kernel/hvcalls.S b/arch/sparc64/kernel/hvcalls.S index a2810f3ac70f..e066269d1594 100644 --- a/arch/sparc64/kernel/hvcalls.S +++ b/arch/sparc64/kernel/hvcalls.S | |||
@@ -3,89 +3,75 @@ | |||
3 | * | 3 | * |
4 | * returns %o0: sysino | 4 | * returns %o0: sysino |
5 | */ | 5 | */ |
6 | .globl sun4v_devino_to_sysino | 6 | ENTRY(sun4v_devino_to_sysino) |
7 | .type sun4v_devino_to_sysino,#function | ||
8 | sun4v_devino_to_sysino: | ||
9 | mov HV_FAST_INTR_DEVINO2SYSINO, %o5 | 7 | mov HV_FAST_INTR_DEVINO2SYSINO, %o5 |
10 | ta HV_FAST_TRAP | 8 | ta HV_FAST_TRAP |
11 | retl | 9 | retl |
12 | mov %o1, %o0 | 10 | mov %o1, %o0 |
13 | .size sun4v_devino_to_sysino, .-sun4v_devino_to_sysino | 11 | ENDPROC(sun4v_devino_to_sysino) |
14 | 12 | ||
15 | /* %o0: sysino | 13 | /* %o0: sysino |
16 | * | 14 | * |
17 | * returns %o0: intr_enabled (HV_INTR_{DISABLED,ENABLED}) | 15 | * returns %o0: intr_enabled (HV_INTR_{DISABLED,ENABLED}) |
18 | */ | 16 | */ |
19 | .globl sun4v_intr_getenabled | 17 | ENTRY(sun4v_intr_getenabled) |
20 | .type sun4v_intr_getenabled,#function | ||
21 | sun4v_intr_getenabled: | ||
22 | mov HV_FAST_INTR_GETENABLED, %o5 | 18 | mov HV_FAST_INTR_GETENABLED, %o5 |
23 | ta HV_FAST_TRAP | 19 | ta HV_FAST_TRAP |
24 | retl | 20 | retl |
25 | mov %o1, %o0 | 21 | mov %o1, %o0 |
26 | .size sun4v_intr_getenabled, .-sun4v_intr_getenabled | 22 | ENDPROC(sun4v_intr_getenabled) |
27 | 23 | ||
28 | /* %o0: sysino | 24 | /* %o0: sysino |
29 | * %o1: intr_enabled (HV_INTR_{DISABLED,ENABLED}) | 25 | * %o1: intr_enabled (HV_INTR_{DISABLED,ENABLED}) |
30 | */ | 26 | */ |
31 | .globl sun4v_intr_setenabled | 27 | ENTRY(sun4v_intr_setenabled) |
32 | .type sun4v_intr_setenabled,#function | ||
33 | sun4v_intr_setenabled: | ||
34 | mov HV_FAST_INTR_SETENABLED, %o5 | 28 | mov HV_FAST_INTR_SETENABLED, %o5 |
35 | ta HV_FAST_TRAP | 29 | ta HV_FAST_TRAP |
36 | retl | 30 | retl |
37 | nop | 31 | nop |
38 | .size sun4v_intr_setenabled, .-sun4v_intr_setenabled | 32 | ENDPROC(sun4v_intr_setenabled) |
39 | 33 | ||
40 | /* %o0: sysino | 34 | /* %o0: sysino |
41 | * | 35 | * |
42 | * returns %o0: intr_state (HV_INTR_STATE_*) | 36 | * returns %o0: intr_state (HV_INTR_STATE_*) |
43 | */ | 37 | */ |
44 | .globl sun4v_intr_getstate | 38 | ENTRY(sun4v_intr_getstate) |
45 | .type sun4v_intr_getstate,#function | ||
46 | sun4v_intr_getstate: | ||
47 | mov HV_FAST_INTR_GETSTATE, %o5 | 39 | mov HV_FAST_INTR_GETSTATE, %o5 |
48 | ta HV_FAST_TRAP | 40 | ta HV_FAST_TRAP |
49 | retl | 41 | retl |
50 | mov %o1, %o0 | 42 | mov %o1, %o0 |
51 | .size sun4v_intr_getstate, .-sun4v_intr_getstate | 43 | ENDPROC(sun4v_intr_getstate) |
52 | 44 | ||
53 | /* %o0: sysino | 45 | /* %o0: sysino |
54 | * %o1: intr_state (HV_INTR_STATE_*) | 46 | * %o1: intr_state (HV_INTR_STATE_*) |
55 | */ | 47 | */ |
56 | .globl sun4v_intr_setstate | 48 | ENTRY(sun4v_intr_setstate) |
57 | .type sun4v_intr_setstate,#function | ||
58 | sun4v_intr_setstate: | ||
59 | mov HV_FAST_INTR_SETSTATE, %o5 | 49 | mov HV_FAST_INTR_SETSTATE, %o5 |
60 | ta HV_FAST_TRAP | 50 | ta HV_FAST_TRAP |
61 | retl | 51 | retl |
62 | nop | 52 | nop |
63 | .size sun4v_intr_setstate, .-sun4v_intr_setstate | 53 | ENDPROC(sun4v_intr_setstate) |
64 | 54 | ||
65 | /* %o0: sysino | 55 | /* %o0: sysino |
66 | * | 56 | * |
67 | * returns %o0: cpuid | 57 | * returns %o0: cpuid |
68 | */ | 58 | */ |
69 | .globl sun4v_intr_gettarget | 59 | ENTRY(sun4v_intr_gettarget) |
70 | .type sun4v_intr_gettarget,#function | ||
71 | sun4v_intr_gettarget: | ||
72 | mov HV_FAST_INTR_GETTARGET, %o5 | 60 | mov HV_FAST_INTR_GETTARGET, %o5 |
73 | ta HV_FAST_TRAP | 61 | ta HV_FAST_TRAP |
74 | retl | 62 | retl |
75 | mov %o1, %o0 | 63 | mov %o1, %o0 |
76 | .size sun4v_intr_gettarget, .-sun4v_intr_gettarget | 64 | ENDPROC(sun4v_intr_gettarget) |
77 | 65 | ||
78 | /* %o0: sysino | 66 | /* %o0: sysino |
79 | * %o1: cpuid | 67 | * %o1: cpuid |
80 | */ | 68 | */ |
81 | .globl sun4v_intr_settarget | 69 | ENTRY(sun4v_intr_settarget) |
82 | .type sun4v_intr_settarget,#function | ||
83 | sun4v_intr_settarget: | ||
84 | mov HV_FAST_INTR_SETTARGET, %o5 | 70 | mov HV_FAST_INTR_SETTARGET, %o5 |
85 | ta HV_FAST_TRAP | 71 | ta HV_FAST_TRAP |
86 | retl | 72 | retl |
87 | nop | 73 | nop |
88 | .size sun4v_intr_settarget, .-sun4v_intr_settarget | 74 | ENDPROC(sun4v_intr_settarget) |
89 | 75 | ||
90 | /* %o0: cpuid | 76 | /* %o0: cpuid |
91 | * %o1: pc | 77 | * %o1: pc |
@@ -94,37 +80,31 @@ sun4v_intr_settarget: | |||
94 | * | 80 | * |
95 | * returns %o0: status | 81 | * returns %o0: status |
96 | */ | 82 | */ |
97 | .globl sun4v_cpu_start | 83 | ENTRY(sun4v_cpu_start) |
98 | .type sun4v_cpu_start,#function | ||
99 | sun4v_cpu_start: | ||
100 | mov HV_FAST_CPU_START, %o5 | 84 | mov HV_FAST_CPU_START, %o5 |
101 | ta HV_FAST_TRAP | 85 | ta HV_FAST_TRAP |
102 | retl | 86 | retl |
103 | nop | 87 | nop |
104 | .size sun4v_cpu_start, .-sun4v_cpu_start | 88 | ENDPROC(sun4v_cpu_start) |
105 | 89 | ||
106 | /* %o0: cpuid | 90 | /* %o0: cpuid |
107 | * | 91 | * |
108 | * returns %o0: status | 92 | * returns %o0: status |
109 | */ | 93 | */ |
110 | .globl sun4v_cpu_stop | 94 | ENTRY(sun4v_cpu_stop) |
111 | .type sun4v_cpu_stop,#function | ||
112 | sun4v_cpu_stop: | ||
113 | mov HV_FAST_CPU_STOP, %o5 | 95 | mov HV_FAST_CPU_STOP, %o5 |
114 | ta HV_FAST_TRAP | 96 | ta HV_FAST_TRAP |
115 | retl | 97 | retl |
116 | nop | 98 | nop |
117 | .size sun4v_cpu_stop, .-sun4v_cpu_stop | 99 | ENDPROC(sun4v_cpu_stop) |
118 | 100 | ||
119 | /* returns %o0: status */ | 101 | /* returns %o0: status */ |
120 | .globl sun4v_cpu_yield | 102 | ENTRY(sun4v_cpu_yield) |
121 | .type sun4v_cpu_yield, #function | ||
122 | sun4v_cpu_yield: | ||
123 | mov HV_FAST_CPU_YIELD, %o5 | 103 | mov HV_FAST_CPU_YIELD, %o5 |
124 | ta HV_FAST_TRAP | 104 | ta HV_FAST_TRAP |
125 | retl | 105 | retl |
126 | nop | 106 | nop |
127 | .size sun4v_cpu_yield, .-sun4v_cpu_yield | 107 | ENDPROC(sun4v_cpu_yield) |
128 | 108 | ||
129 | /* %o0: type | 109 | /* %o0: type |
130 | * %o1: queue paddr | 110 | * %o1: queue paddr |
@@ -132,14 +112,12 @@ sun4v_cpu_yield: | |||
132 | * | 112 | * |
133 | * returns %o0: status | 113 | * returns %o0: status |
134 | */ | 114 | */ |
135 | .globl sun4v_cpu_qconf | 115 | ENTRY(sun4v_cpu_qconf) |
136 | .type sun4v_cpu_qconf,#function | ||
137 | sun4v_cpu_qconf: | ||
138 | mov HV_FAST_CPU_QCONF, %o5 | 116 | mov HV_FAST_CPU_QCONF, %o5 |
139 | ta HV_FAST_TRAP | 117 | ta HV_FAST_TRAP |
140 | retl | 118 | retl |
141 | nop | 119 | nop |
142 | .size sun4v_cpu_qconf, .-sun4v_cpu_qconf | 120 | ENDPROC(sun4v_cpu_qconf) |
143 | 121 | ||
144 | /* %o0: num cpus in cpu list | 122 | /* %o0: num cpus in cpu list |
145 | * %o1: cpu list paddr | 123 | * %o1: cpu list paddr |
@@ -147,23 +125,19 @@ sun4v_cpu_qconf: | |||
147 | * | 125 | * |
148 | * returns %o0: status | 126 | * returns %o0: status |
149 | */ | 127 | */ |
150 | .globl sun4v_cpu_mondo_send | 128 | ENTRY(sun4v_cpu_mondo_send) |
151 | .type sun4v_cpu_mondo_send,#function | ||
152 | sun4v_cpu_mondo_send: | ||
153 | mov HV_FAST_CPU_MONDO_SEND, %o5 | 129 | mov HV_FAST_CPU_MONDO_SEND, %o5 |
154 | ta HV_FAST_TRAP | 130 | ta HV_FAST_TRAP |
155 | retl | 131 | retl |
156 | nop | 132 | nop |
157 | .size sun4v_cpu_mondo_send, .-sun4v_cpu_mondo_send | 133 | ENDPROC(sun4v_cpu_mondo_send) |
158 | 134 | ||
159 | /* %o0: CPU ID | 135 | /* %o0: CPU ID |
160 | * | 136 | * |
161 | * returns %o0: -status if status non-zero, else | 137 | * returns %o0: -status if status non-zero, else |
162 | * %o0: cpu state as HV_CPU_STATE_* | 138 | * %o0: cpu state as HV_CPU_STATE_* |
163 | */ | 139 | */ |
164 | .globl sun4v_cpu_state | 140 | ENTRY(sun4v_cpu_state) |
165 | .type sun4v_cpu_state,#function | ||
166 | sun4v_cpu_state: | ||
167 | mov HV_FAST_CPU_STATE, %o5 | 141 | mov HV_FAST_CPU_STATE, %o5 |
168 | ta HV_FAST_TRAP | 142 | ta HV_FAST_TRAP |
169 | brnz,pn %o0, 1f | 143 | brnz,pn %o0, 1f |
@@ -171,7 +145,7 @@ sun4v_cpu_state: | |||
171 | mov %o1, %o0 | 145 | mov %o1, %o0 |
172 | 1: retl | 146 | 1: retl |
173 | nop | 147 | nop |
174 | .size sun4v_cpu_state, .-sun4v_cpu_state | 148 | ENDPROC(sun4v_cpu_state) |
175 | 149 | ||
176 | /* %o0: virtual address | 150 | /* %o0: virtual address |
177 | * %o1: must be zero | 151 | * %o1: must be zero |
@@ -180,28 +154,24 @@ sun4v_cpu_state: | |||
180 | * | 154 | * |
181 | * returns %o0: status | 155 | * returns %o0: status |
182 | */ | 156 | */ |
183 | .globl sun4v_mmu_map_perm_addr | 157 | ENTRY(sun4v_mmu_map_perm_addr) |
184 | .type sun4v_mmu_map_perm_addr,#function | ||
185 | sun4v_mmu_map_perm_addr: | ||
186 | mov HV_FAST_MMU_MAP_PERM_ADDR, %o5 | 158 | mov HV_FAST_MMU_MAP_PERM_ADDR, %o5 |
187 | ta HV_FAST_TRAP | 159 | ta HV_FAST_TRAP |
188 | retl | 160 | retl |
189 | nop | 161 | nop |
190 | .size sun4v_mmu_map_perm_addr, .-sun4v_mmu_map_perm_addr | 162 | ENDPROC(sun4v_mmu_map_perm_addr) |
191 | 163 | ||
192 | /* %o0: number of TSB descriptions | 164 | /* %o0: number of TSB descriptions |
193 | * %o1: TSB descriptions real address | 165 | * %o1: TSB descriptions real address |
194 | * | 166 | * |
195 | * returns %o0: status | 167 | * returns %o0: status |
196 | */ | 168 | */ |
197 | .globl sun4v_mmu_tsb_ctx0 | 169 | ENTRY(sun4v_mmu_tsb_ctx0) |
198 | .type sun4v_mmu_tsb_ctx0,#function | ||
199 | sun4v_mmu_tsb_ctx0: | ||
200 | mov HV_FAST_MMU_TSB_CTX0, %o5 | 170 | mov HV_FAST_MMU_TSB_CTX0, %o5 |
201 | ta HV_FAST_TRAP | 171 | ta HV_FAST_TRAP |
202 | retl | 172 | retl |
203 | nop | 173 | nop |
204 | .size sun4v_mmu_tsb_ctx0, .-sun4v_mmu_tsb_ctx0 | 174 | ENDPROC(sun4v_mmu_tsb_ctx0) |
205 | 175 | ||
206 | /* %o0: API group number | 176 | /* %o0: API group number |
207 | * %o1: pointer to unsigned long major number storage | 177 | * %o1: pointer to unsigned long major number storage |
@@ -209,9 +179,7 @@ sun4v_mmu_tsb_ctx0: | |||
209 | * | 179 | * |
210 | * returns %o0: status | 180 | * returns %o0: status |
211 | */ | 181 | */ |
212 | .globl sun4v_get_version | 182 | ENTRY(sun4v_get_version) |
213 | .type sun4v_get_version,#function | ||
214 | sun4v_get_version: | ||
215 | mov HV_CORE_GET_VER, %o5 | 183 | mov HV_CORE_GET_VER, %o5 |
216 | mov %o1, %o3 | 184 | mov %o1, %o3 |
217 | mov %o2, %o4 | 185 | mov %o2, %o4 |
@@ -219,7 +187,7 @@ sun4v_get_version: | |||
219 | stx %o1, [%o3] | 187 | stx %o1, [%o3] |
220 | retl | 188 | retl |
221 | stx %o2, [%o4] | 189 | stx %o2, [%o4] |
222 | .size sun4v_get_version, .-sun4v_get_version | 190 | ENDPROC(sun4v_get_version) |
223 | 191 | ||
224 | /* %o0: API group number | 192 | /* %o0: API group number |
225 | * %o1: desired major number | 193 | * %o1: desired major number |
@@ -228,51 +196,43 @@ sun4v_get_version: | |||
228 | * | 196 | * |
229 | * returns %o0: status | 197 | * returns %o0: status |
230 | */ | 198 | */ |
231 | .globl sun4v_set_version | 199 | ENTRY(sun4v_set_version) |
232 | .type sun4v_set_version,#function | ||
233 | sun4v_set_version: | ||
234 | mov HV_CORE_SET_VER, %o5 | 200 | mov HV_CORE_SET_VER, %o5 |
235 | mov %o3, %o4 | 201 | mov %o3, %o4 |
236 | ta HV_CORE_TRAP | 202 | ta HV_CORE_TRAP |
237 | retl | 203 | retl |
238 | stx %o1, [%o4] | 204 | stx %o1, [%o4] |
239 | .size sun4v_set_version, .-sun4v_set_version | 205 | ENDPROC(sun4v_set_version) |
240 | 206 | ||
241 | /* %o0: pointer to unsigned long time | 207 | /* %o0: pointer to unsigned long time |
242 | * | 208 | * |
243 | * returns %o0: status | 209 | * returns %o0: status |
244 | */ | 210 | */ |
245 | .globl sun4v_tod_get | 211 | ENTRY(sun4v_tod_get) |
246 | .type sun4v_tod_get,#function | ||
247 | sun4v_tod_get: | ||
248 | mov %o0, %o4 | 212 | mov %o0, %o4 |
249 | mov HV_FAST_TOD_GET, %o5 | 213 | mov HV_FAST_TOD_GET, %o5 |
250 | ta HV_FAST_TRAP | 214 | ta HV_FAST_TRAP |
251 | stx %o1, [%o4] | 215 | stx %o1, [%o4] |
252 | retl | 216 | retl |
253 | nop | 217 | nop |
254 | .size sun4v_tod_get, .-sun4v_tod_get | 218 | ENDPROC(sun4v_tod_get) |
255 | 219 | ||
256 | /* %o0: time | 220 | /* %o0: time |
257 | * | 221 | * |
258 | * returns %o0: status | 222 | * returns %o0: status |
259 | */ | 223 | */ |
260 | .globl sun4v_tod_set | 224 | ENTRY(sun4v_tod_set) |
261 | .type sun4v_tod_set,#function | ||
262 | sun4v_tod_set: | ||
263 | mov HV_FAST_TOD_SET, %o5 | 225 | mov HV_FAST_TOD_SET, %o5 |
264 | ta HV_FAST_TRAP | 226 | ta HV_FAST_TRAP |
265 | retl | 227 | retl |
266 | nop | 228 | nop |
267 | .size sun4v_tod_set, .-sun4v_tod_set | 229 | ENDPROC(sun4v_tod_set) |
268 | 230 | ||
269 | /* %o0: pointer to unsigned long status | 231 | /* %o0: pointer to unsigned long status |
270 | * | 232 | * |
271 | * returns %o0: signed character | 233 | * returns %o0: signed character |
272 | */ | 234 | */ |
273 | .globl sun4v_con_getchar | 235 | ENTRY(sun4v_con_getchar) |
274 | .type sun4v_con_getchar,#function | ||
275 | sun4v_con_getchar: | ||
276 | mov %o0, %o4 | 236 | mov %o0, %o4 |
277 | mov HV_FAST_CONS_GETCHAR, %o5 | 237 | mov HV_FAST_CONS_GETCHAR, %o5 |
278 | clr %o0 | 238 | clr %o0 |
@@ -281,20 +241,18 @@ sun4v_con_getchar: | |||
281 | stx %o0, [%o4] | 241 | stx %o0, [%o4] |
282 | retl | 242 | retl |
283 | sra %o1, 0, %o0 | 243 | sra %o1, 0, %o0 |
284 | .size sun4v_con_getchar, .-sun4v_con_getchar | 244 | ENDPROC(sun4v_con_getchar) |
285 | 245 | ||
286 | /* %o0: signed long character | 246 | /* %o0: signed long character |
287 | * | 247 | * |
288 | * returns %o0: status | 248 | * returns %o0: status |
289 | */ | 249 | */ |
290 | .globl sun4v_con_putchar | 250 | ENTRY(sun4v_con_putchar) |
291 | .type sun4v_con_putchar,#function | ||
292 | sun4v_con_putchar: | ||
293 | mov HV_FAST_CONS_PUTCHAR, %o5 | 251 | mov HV_FAST_CONS_PUTCHAR, %o5 |
294 | ta HV_FAST_TRAP | 252 | ta HV_FAST_TRAP |
295 | retl | 253 | retl |
296 | sra %o0, 0, %o0 | 254 | sra %o0, 0, %o0 |
297 | .size sun4v_con_putchar, .-sun4v_con_putchar | 255 | ENDPROC(sun4v_con_putchar) |
298 | 256 | ||
299 | /* %o0: buffer real address | 257 | /* %o0: buffer real address |
300 | * %o1: buffer size | 258 | * %o1: buffer size |
@@ -302,9 +260,7 @@ sun4v_con_putchar: | |||
302 | * | 260 | * |
303 | * returns %o0: status | 261 | * returns %o0: status |
304 | */ | 262 | */ |
305 | .globl sun4v_con_read | 263 | ENTRY(sun4v_con_read) |
306 | .type sun4v_con_read,#function | ||
307 | sun4v_con_read: | ||
308 | mov %o2, %o4 | 264 | mov %o2, %o4 |
309 | mov HV_FAST_CONS_READ, %o5 | 265 | mov HV_FAST_CONS_READ, %o5 |
310 | ta HV_FAST_TRAP | 266 | ta HV_FAST_TRAP |
@@ -318,7 +274,7 @@ sun4v_con_read: | |||
318 | stx %o1, [%o4] | 274 | stx %o1, [%o4] |
319 | 1: retl | 275 | 1: retl |
320 | nop | 276 | nop |
321 | .size sun4v_con_read, .-sun4v_con_read | 277 | ENDPROC(sun4v_con_read) |
322 | 278 | ||
323 | /* %o0: buffer real address | 279 | /* %o0: buffer real address |
324 | * %o1: buffer size | 280 | * %o1: buffer size |
@@ -326,43 +282,37 @@ sun4v_con_read: | |||
326 | * | 282 | * |
327 | * returns %o0: status | 283 | * returns %o0: status |
328 | */ | 284 | */ |
329 | .globl sun4v_con_write | 285 | ENTRY(sun4v_con_write) |
330 | .type sun4v_con_write,#function | ||
331 | sun4v_con_write: | ||
332 | mov %o2, %o4 | 286 | mov %o2, %o4 |
333 | mov HV_FAST_CONS_WRITE, %o5 | 287 | mov HV_FAST_CONS_WRITE, %o5 |
334 | ta HV_FAST_TRAP | 288 | ta HV_FAST_TRAP |
335 | stx %o1, [%o4] | 289 | stx %o1, [%o4] |
336 | retl | 290 | retl |
337 | nop | 291 | nop |
338 | .size sun4v_con_write, .-sun4v_con_write | 292 | ENDPROC(sun4v_con_write) |
339 | 293 | ||
340 | /* %o0: soft state | 294 | /* %o0: soft state |
341 | * %o1: address of description string | 295 | * %o1: address of description string |
342 | * | 296 | * |
343 | * returns %o0: status | 297 | * returns %o0: status |
344 | */ | 298 | */ |
345 | .globl sun4v_mach_set_soft_state | 299 | ENTRY(sun4v_mach_set_soft_state) |
346 | .type sun4v_mach_set_soft_state,#function | ||
347 | sun4v_mach_set_soft_state: | ||
348 | mov HV_FAST_MACH_SET_SOFT_STATE, %o5 | 300 | mov HV_FAST_MACH_SET_SOFT_STATE, %o5 |
349 | ta HV_FAST_TRAP | 301 | ta HV_FAST_TRAP |
350 | retl | 302 | retl |
351 | nop | 303 | nop |
352 | .size sun4v_mach_set_soft_state, .-sun4v_mach_set_soft_state | 304 | ENDPROC(sun4v_mach_set_soft_state) |
353 | 305 | ||
354 | /* %o0: exit code | 306 | /* %o0: exit code |
355 | * | 307 | * |
356 | * Does not return. | 308 | * Does not return. |
357 | */ | 309 | */ |
358 | .globl sun4v_mach_exit | 310 | ENTRY(sun4v_mach_exit) |
359 | .type sun4v_mach_exit,#function | ||
360 | sun4v_mach_exit: | ||
361 | mov HV_FAST_MACH_EXIT, %o5 | 311 | mov HV_FAST_MACH_EXIT, %o5 |
362 | ta HV_FAST_TRAP | 312 | ta HV_FAST_TRAP |
363 | retl | 313 | retl |
364 | nop | 314 | nop |
365 | .size sun4v_mach_exit, .-sun4v_mach_exit | 315 | ENDPROC(sun4v_mach_exit) |
366 | 316 | ||
367 | /* %o0: buffer real address | 317 | /* %o0: buffer real address |
368 | * %o1: buffer length | 318 | * %o1: buffer length |
@@ -370,44 +320,38 @@ sun4v_mach_exit: | |||
370 | * | 320 | * |
371 | * returns %o0: status | 321 | * returns %o0: status |
372 | */ | 322 | */ |
373 | .globl sun4v_mach_desc | 323 | ENTRY(sun4v_mach_desc) |
374 | .type sun4v_mach_desc,#function | ||
375 | sun4v_mach_desc: | ||
376 | mov %o2, %o4 | 324 | mov %o2, %o4 |
377 | mov HV_FAST_MACH_DESC, %o5 | 325 | mov HV_FAST_MACH_DESC, %o5 |
378 | ta HV_FAST_TRAP | 326 | ta HV_FAST_TRAP |
379 | stx %o1, [%o4] | 327 | stx %o1, [%o4] |
380 | retl | 328 | retl |
381 | nop | 329 | nop |
382 | .size sun4v_mach_desc, .-sun4v_mach_desc | 330 | ENDPROC(sun4v_mach_desc) |
383 | 331 | ||
384 | /* %o0: new timeout in milliseconds | 332 | /* %o0: new timeout in milliseconds |
385 | * %o1: pointer to unsigned long orig_timeout | 333 | * %o1: pointer to unsigned long orig_timeout |
386 | * | 334 | * |
387 | * returns %o0: status | 335 | * returns %o0: status |
388 | */ | 336 | */ |
389 | .globl sun4v_mach_set_watchdog | 337 | ENTRY(sun4v_mach_set_watchdog) |
390 | .type sun4v_mach_set_watchdog,#function | ||
391 | sun4v_mach_set_watchdog: | ||
392 | mov %o1, %o4 | 338 | mov %o1, %o4 |
393 | mov HV_FAST_MACH_SET_WATCHDOG, %o5 | 339 | mov HV_FAST_MACH_SET_WATCHDOG, %o5 |
394 | ta HV_FAST_TRAP | 340 | ta HV_FAST_TRAP |
395 | stx %o1, [%o4] | 341 | stx %o1, [%o4] |
396 | retl | 342 | retl |
397 | nop | 343 | nop |
398 | .size sun4v_mach_set_watchdog, .-sun4v_mach_set_watchdog | 344 | ENDPROC(sun4v_mach_set_watchdog) |
399 | 345 | ||
400 | /* No inputs and does not return. */ | 346 | /* No inputs and does not return. */ |
401 | .globl sun4v_mach_sir | 347 | ENTRY(sun4v_mach_sir) |
402 | .type sun4v_mach_sir,#function | ||
403 | sun4v_mach_sir: | ||
404 | mov %o1, %o4 | 348 | mov %o1, %o4 |
405 | mov HV_FAST_MACH_SIR, %o5 | 349 | mov HV_FAST_MACH_SIR, %o5 |
406 | ta HV_FAST_TRAP | 350 | ta HV_FAST_TRAP |
407 | stx %o1, [%o4] | 351 | stx %o1, [%o4] |
408 | retl | 352 | retl |
409 | nop | 353 | nop |
410 | .size sun4v_mach_sir, .-sun4v_mach_sir | 354 | ENDPROC(sun4v_mach_sir) |
411 | 355 | ||
412 | /* %o0: channel | 356 | /* %o0: channel |
413 | * %o1: ra | 357 | * %o1: ra |
@@ -415,14 +359,12 @@ sun4v_mach_sir: | |||
415 | * | 359 | * |
416 | * returns %o0: status | 360 | * returns %o0: status |
417 | */ | 361 | */ |
418 | .globl sun4v_ldc_tx_qconf | 362 | ENTRY(sun4v_ldc_tx_qconf) |
419 | .type sun4v_ldc_tx_qconf,#function | ||
420 | sun4v_ldc_tx_qconf: | ||
421 | mov HV_FAST_LDC_TX_QCONF, %o5 | 363 | mov HV_FAST_LDC_TX_QCONF, %o5 |
422 | ta HV_FAST_TRAP | 364 | ta HV_FAST_TRAP |
423 | retl | 365 | retl |
424 | nop | 366 | nop |
425 | .size sun4v_ldc_tx_qconf, .-sun4v_ldc_tx_qconf | 367 | ENDPROC(sun4v_ldc_tx_qconf) |
426 | 368 | ||
427 | /* %o0: channel | 369 | /* %o0: channel |
428 | * %o1: pointer to unsigned long ra | 370 | * %o1: pointer to unsigned long ra |
@@ -430,9 +372,7 @@ sun4v_ldc_tx_qconf: | |||
430 | * | 372 | * |
431 | * returns %o0: status | 373 | * returns %o0: status |
432 | */ | 374 | */ |
433 | .globl sun4v_ldc_tx_qinfo | 375 | ENTRY(sun4v_ldc_tx_qinfo) |
434 | .type sun4v_ldc_tx_qinfo,#function | ||
435 | sun4v_ldc_tx_qinfo: | ||
436 | mov %o1, %g1 | 376 | mov %o1, %g1 |
437 | mov %o2, %g2 | 377 | mov %o2, %g2 |
438 | mov HV_FAST_LDC_TX_QINFO, %o5 | 378 | mov HV_FAST_LDC_TX_QINFO, %o5 |
@@ -441,7 +381,7 @@ sun4v_ldc_tx_qinfo: | |||
441 | stx %o2, [%g2] | 381 | stx %o2, [%g2] |
442 | retl | 382 | retl |
443 | nop | 383 | nop |
444 | .size sun4v_ldc_tx_qinfo, .-sun4v_ldc_tx_qinfo | 384 | ENDPROC(sun4v_ldc_tx_qinfo) |
445 | 385 | ||
446 | /* %o0: channel | 386 | /* %o0: channel |
447 | * %o1: pointer to unsigned long head_off | 387 | * %o1: pointer to unsigned long head_off |
@@ -450,9 +390,7 @@ sun4v_ldc_tx_qinfo: | |||
450 | * | 390 | * |
451 | * returns %o0: status | 391 | * returns %o0: status |
452 | */ | 392 | */ |
453 | .globl sun4v_ldc_tx_get_state | 393 | ENTRY(sun4v_ldc_tx_get_state) |
454 | .type sun4v_ldc_tx_get_state,#function | ||
455 | sun4v_ldc_tx_get_state: | ||
456 | mov %o1, %g1 | 394 | mov %o1, %g1 |
457 | mov %o2, %g2 | 395 | mov %o2, %g2 |
458 | mov %o3, %g3 | 396 | mov %o3, %g3 |
@@ -463,21 +401,19 @@ sun4v_ldc_tx_get_state: | |||
463 | stx %o3, [%g3] | 401 | stx %o3, [%g3] |
464 | retl | 402 | retl |
465 | nop | 403 | nop |
466 | .size sun4v_ldc_tx_get_state, .-sun4v_ldc_tx_get_state | 404 | ENDPROC(sun4v_ldc_tx_get_state) |
467 | 405 | ||
468 | /* %o0: channel | 406 | /* %o0: channel |
469 | * %o1: tail_off | 407 | * %o1: tail_off |
470 | * | 408 | * |
471 | * returns %o0: status | 409 | * returns %o0: status |
472 | */ | 410 | */ |
473 | .globl sun4v_ldc_tx_set_qtail | 411 | ENTRY(sun4v_ldc_tx_set_qtail) |
474 | .type sun4v_ldc_tx_set_qtail,#function | ||
475 | sun4v_ldc_tx_set_qtail: | ||
476 | mov HV_FAST_LDC_TX_SET_QTAIL, %o5 | 412 | mov HV_FAST_LDC_TX_SET_QTAIL, %o5 |
477 | ta HV_FAST_TRAP | 413 | ta HV_FAST_TRAP |
478 | retl | 414 | retl |
479 | nop | 415 | nop |
480 | .size sun4v_ldc_tx_set_qtail, .-sun4v_ldc_tx_set_qtail | 416 | ENDPROC(sun4v_ldc_tx_set_qtail) |
481 | 417 | ||
482 | /* %o0: channel | 418 | /* %o0: channel |
483 | * %o1: ra | 419 | * %o1: ra |
@@ -485,14 +421,12 @@ sun4v_ldc_tx_set_qtail: | |||
485 | * | 421 | * |
486 | * returns %o0: status | 422 | * returns %o0: status |
487 | */ | 423 | */ |
488 | .globl sun4v_ldc_rx_qconf | 424 | ENTRY(sun4v_ldc_rx_qconf) |
489 | .type sun4v_ldc_rx_qconf,#function | ||
490 | sun4v_ldc_rx_qconf: | ||
491 | mov HV_FAST_LDC_RX_QCONF, %o5 | 425 | mov HV_FAST_LDC_RX_QCONF, %o5 |
492 | ta HV_FAST_TRAP | 426 | ta HV_FAST_TRAP |
493 | retl | 427 | retl |
494 | nop | 428 | nop |
495 | .size sun4v_ldc_rx_qconf, .-sun4v_ldc_rx_qconf | 429 | ENDPROC(sun4v_ldc_rx_qconf) |
496 | 430 | ||
497 | /* %o0: channel | 431 | /* %o0: channel |
498 | * %o1: pointer to unsigned long ra | 432 | * %o1: pointer to unsigned long ra |
@@ -500,9 +434,7 @@ sun4v_ldc_rx_qconf: | |||
500 | * | 434 | * |
501 | * returns %o0: status | 435 | * returns %o0: status |
502 | */ | 436 | */ |
503 | .globl sun4v_ldc_rx_qinfo | 437 | ENTRY(sun4v_ldc_rx_qinfo) |
504 | .type sun4v_ldc_rx_qinfo,#function | ||
505 | sun4v_ldc_rx_qinfo: | ||
506 | mov %o1, %g1 | 438 | mov %o1, %g1 |
507 | mov %o2, %g2 | 439 | mov %o2, %g2 |
508 | mov HV_FAST_LDC_RX_QINFO, %o5 | 440 | mov HV_FAST_LDC_RX_QINFO, %o5 |
@@ -511,7 +443,7 @@ sun4v_ldc_rx_qinfo: | |||
511 | stx %o2, [%g2] | 443 | stx %o2, [%g2] |
512 | retl | 444 | retl |
513 | nop | 445 | nop |
514 | .size sun4v_ldc_rx_qinfo, .-sun4v_ldc_rx_qinfo | 446 | ENDPROC(sun4v_ldc_rx_qinfo) |
515 | 447 | ||
516 | /* %o0: channel | 448 | /* %o0: channel |
517 | * %o1: pointer to unsigned long head_off | 449 | * %o1: pointer to unsigned long head_off |
@@ -520,9 +452,7 @@ sun4v_ldc_rx_qinfo: | |||
520 | * | 452 | * |
521 | * returns %o0: status | 453 | * returns %o0: status |
522 | */ | 454 | */ |
523 | .globl sun4v_ldc_rx_get_state | 455 | ENTRY(sun4v_ldc_rx_get_state) |
524 | .type sun4v_ldc_rx_get_state,#function | ||
525 | sun4v_ldc_rx_get_state: | ||
526 | mov %o1, %g1 | 456 | mov %o1, %g1 |
527 | mov %o2, %g2 | 457 | mov %o2, %g2 |
528 | mov %o3, %g3 | 458 | mov %o3, %g3 |
@@ -533,21 +463,19 @@ sun4v_ldc_rx_get_state: | |||
533 | stx %o3, [%g3] | 463 | stx %o3, [%g3] |
534 | retl | 464 | retl |
535 | nop | 465 | nop |
536 | .size sun4v_ldc_rx_get_state, .-sun4v_ldc_rx_get_state | 466 | ENDPROC(sun4v_ldc_rx_get_state) |
537 | 467 | ||
538 | /* %o0: channel | 468 | /* %o0: channel |
539 | * %o1: head_off | 469 | * %o1: head_off |
540 | * | 470 | * |
541 | * returns %o0: status | 471 | * returns %o0: status |
542 | */ | 472 | */ |
543 | .globl sun4v_ldc_rx_set_qhead | 473 | ENTRY(sun4v_ldc_rx_set_qhead) |
544 | .type sun4v_ldc_rx_set_qhead,#function | ||
545 | sun4v_ldc_rx_set_qhead: | ||
546 | mov HV_FAST_LDC_RX_SET_QHEAD, %o5 | 474 | mov HV_FAST_LDC_RX_SET_QHEAD, %o5 |
547 | ta HV_FAST_TRAP | 475 | ta HV_FAST_TRAP |
548 | retl | 476 | retl |
549 | nop | 477 | nop |
550 | .size sun4v_ldc_rx_set_qhead, .-sun4v_ldc_rx_set_qhead | 478 | ENDPROC(sun4v_ldc_rx_set_qhead) |
551 | 479 | ||
552 | /* %o0: channel | 480 | /* %o0: channel |
553 | * %o1: ra | 481 | * %o1: ra |
@@ -555,14 +483,12 @@ sun4v_ldc_rx_set_qhead: | |||
555 | * | 483 | * |
556 | * returns %o0: status | 484 | * returns %o0: status |
557 | */ | 485 | */ |
558 | .globl sun4v_ldc_set_map_table | 486 | ENTRY(sun4v_ldc_set_map_table) |
559 | .type sun4v_ldc_set_map_table,#function | ||
560 | sun4v_ldc_set_map_table: | ||
561 | mov HV_FAST_LDC_SET_MAP_TABLE, %o5 | 487 | mov HV_FAST_LDC_SET_MAP_TABLE, %o5 |
562 | ta HV_FAST_TRAP | 488 | ta HV_FAST_TRAP |
563 | retl | 489 | retl |
564 | nop | 490 | nop |
565 | .size sun4v_ldc_set_map_table, .-sun4v_ldc_set_map_table | 491 | ENDPROC(sun4v_ldc_set_map_table) |
566 | 492 | ||
567 | /* %o0: channel | 493 | /* %o0: channel |
568 | * %o1: pointer to unsigned long ra | 494 | * %o1: pointer to unsigned long ra |
@@ -570,9 +496,7 @@ sun4v_ldc_set_map_table: | |||
570 | * | 496 | * |
571 | * returns %o0: status | 497 | * returns %o0: status |
572 | */ | 498 | */ |
573 | .globl sun4v_ldc_get_map_table | 499 | ENTRY(sun4v_ldc_get_map_table) |
574 | .type sun4v_ldc_get_map_table,#function | ||
575 | sun4v_ldc_get_map_table: | ||
576 | mov %o1, %g1 | 500 | mov %o1, %g1 |
577 | mov %o2, %g2 | 501 | mov %o2, %g2 |
578 | mov HV_FAST_LDC_GET_MAP_TABLE, %o5 | 502 | mov HV_FAST_LDC_GET_MAP_TABLE, %o5 |
@@ -581,7 +505,7 @@ sun4v_ldc_get_map_table: | |||
581 | stx %o2, [%g2] | 505 | stx %o2, [%g2] |
582 | retl | 506 | retl |
583 | nop | 507 | nop |
584 | .size sun4v_ldc_get_map_table, .-sun4v_ldc_get_map_table | 508 | ENDPROC(sun4v_ldc_get_map_table) |
585 | 509 | ||
586 | /* %o0: channel | 510 | /* %o0: channel |
587 | * %o1: dir_code | 511 | * %o1: dir_code |
@@ -592,16 +516,14 @@ sun4v_ldc_get_map_table: | |||
592 | * | 516 | * |
593 | * returns %o0: status | 517 | * returns %o0: status |
594 | */ | 518 | */ |
595 | .globl sun4v_ldc_copy | 519 | ENTRY(sun4v_ldc_copy) |
596 | .type sun4v_ldc_copy,#function | ||
597 | sun4v_ldc_copy: | ||
598 | mov %o5, %g1 | 520 | mov %o5, %g1 |
599 | mov HV_FAST_LDC_COPY, %o5 | 521 | mov HV_FAST_LDC_COPY, %o5 |
600 | ta HV_FAST_TRAP | 522 | ta HV_FAST_TRAP |
601 | stx %o1, [%g1] | 523 | stx %o1, [%g1] |
602 | retl | 524 | retl |
603 | nop | 525 | nop |
604 | .size sun4v_ldc_copy, .-sun4v_ldc_copy | 526 | ENDPROC(sun4v_ldc_copy) |
605 | 527 | ||
606 | /* %o0: channel | 528 | /* %o0: channel |
607 | * %o1: cookie | 529 | * %o1: cookie |
@@ -610,9 +532,7 @@ sun4v_ldc_copy: | |||
610 | * | 532 | * |
611 | * returns %o0: status | 533 | * returns %o0: status |
612 | */ | 534 | */ |
613 | .globl sun4v_ldc_mapin | 535 | ENTRY(sun4v_ldc_mapin) |
614 | .type sun4v_ldc_mapin,#function | ||
615 | sun4v_ldc_mapin: | ||
616 | mov %o2, %g1 | 536 | mov %o2, %g1 |
617 | mov %o3, %g2 | 537 | mov %o3, %g2 |
618 | mov HV_FAST_LDC_MAPIN, %o5 | 538 | mov HV_FAST_LDC_MAPIN, %o5 |
@@ -621,20 +541,18 @@ sun4v_ldc_mapin: | |||
621 | stx %o2, [%g2] | 541 | stx %o2, [%g2] |
622 | retl | 542 | retl |
623 | nop | 543 | nop |
624 | .size sun4v_ldc_mapin, .-sun4v_ldc_mapin | 544 | ENDPROC(sun4v_ldc_mapin) |
625 | 545 | ||
626 | /* %o0: ra | 546 | /* %o0: ra |
627 | * | 547 | * |
628 | * returns %o0: status | 548 | * returns %o0: status |
629 | */ | 549 | */ |
630 | .globl sun4v_ldc_unmap | 550 | ENTRY(sun4v_ldc_unmap) |
631 | .type sun4v_ldc_unmap,#function | ||
632 | sun4v_ldc_unmap: | ||
633 | mov HV_FAST_LDC_UNMAP, %o5 | 551 | mov HV_FAST_LDC_UNMAP, %o5 |
634 | ta HV_FAST_TRAP | 552 | ta HV_FAST_TRAP |
635 | retl | 553 | retl |
636 | nop | 554 | nop |
637 | .size sun4v_ldc_unmap, .-sun4v_ldc_unmap | 555 | ENDPROC(sun4v_ldc_unmap) |
638 | 556 | ||
639 | /* %o0: channel | 557 | /* %o0: channel |
640 | * %o1: cookie | 558 | * %o1: cookie |
@@ -642,14 +560,12 @@ sun4v_ldc_unmap: | |||
642 | * | 560 | * |
643 | * returns %o0: status | 561 | * returns %o0: status |
644 | */ | 562 | */ |
645 | .globl sun4v_ldc_revoke | 563 | ENTRY(sun4v_ldc_revoke) |
646 | .type sun4v_ldc_revoke,#function | ||
647 | sun4v_ldc_revoke: | ||
648 | mov HV_FAST_LDC_REVOKE, %o5 | 564 | mov HV_FAST_LDC_REVOKE, %o5 |
649 | ta HV_FAST_TRAP | 565 | ta HV_FAST_TRAP |
650 | retl | 566 | retl |
651 | nop | 567 | nop |
652 | .size sun4v_ldc_revoke, .-sun4v_ldc_revoke | 568 | ENDPROC(sun4v_ldc_revoke) |
653 | 569 | ||
654 | /* %o0: device handle | 570 | /* %o0: device handle |
655 | * %o1: device INO | 571 | * %o1: device INO |
@@ -657,16 +573,14 @@ sun4v_ldc_revoke: | |||
657 | * | 573 | * |
658 | * returns %o0: status | 574 | * returns %o0: status |
659 | */ | 575 | */ |
660 | .globl sun4v_vintr_get_cookie | 576 | ENTRY(sun4v_vintr_get_cookie) |
661 | .type sun4v_vintr_get_cookie,#function | ||
662 | sun4v_vintr_get_cookie: | ||
663 | mov %o2, %g1 | 577 | mov %o2, %g1 |
664 | mov HV_FAST_VINTR_GET_COOKIE, %o5 | 578 | mov HV_FAST_VINTR_GET_COOKIE, %o5 |
665 | ta HV_FAST_TRAP | 579 | ta HV_FAST_TRAP |
666 | stx %o1, [%g1] | 580 | stx %o1, [%g1] |
667 | retl | 581 | retl |
668 | nop | 582 | nop |
669 | .size sun4v_vintr_get_cookie, .-sun4v_vintr_get_cookie | 583 | ENDPROC(sun4v_vintr_get_cookie) |
670 | 584 | ||
671 | /* %o0: device handle | 585 | /* %o0: device handle |
672 | * %o1: device INO | 586 | * %o1: device INO |
@@ -674,14 +588,12 @@ sun4v_vintr_get_cookie: | |||
674 | * | 588 | * |
675 | * returns %o0: status | 589 | * returns %o0: status |
676 | */ | 590 | */ |
677 | .globl sun4v_vintr_set_cookie | 591 | ENTRY(sun4v_vintr_set_cookie) |
678 | .type sun4v_vintr_set_cookie,#function | ||
679 | sun4v_vintr_set_cookie: | ||
680 | mov HV_FAST_VINTR_SET_COOKIE, %o5 | 592 | mov HV_FAST_VINTR_SET_COOKIE, %o5 |
681 | ta HV_FAST_TRAP | 593 | ta HV_FAST_TRAP |
682 | retl | 594 | retl |
683 | nop | 595 | nop |
684 | .size sun4v_vintr_set_cookie, .-sun4v_vintr_set_cookie | 596 | ENDPROC(sun4v_vintr_set_cookie) |
685 | 597 | ||
686 | /* %o0: device handle | 598 | /* %o0: device handle |
687 | * %o1: device INO | 599 | * %o1: device INO |
@@ -689,16 +601,14 @@ sun4v_vintr_set_cookie: | |||
689 | * | 601 | * |
690 | * returns %o0: status | 602 | * returns %o0: status |
691 | */ | 603 | */ |
692 | .globl sun4v_vintr_get_valid | 604 | ENTRY(sun4v_vintr_get_valid) |
693 | .type sun4v_vintr_get_valid,#function | ||
694 | sun4v_vintr_get_valid: | ||
695 | mov %o2, %g1 | 605 | mov %o2, %g1 |
696 | mov HV_FAST_VINTR_GET_VALID, %o5 | 606 | mov HV_FAST_VINTR_GET_VALID, %o5 |
697 | ta HV_FAST_TRAP | 607 | ta HV_FAST_TRAP |
698 | stx %o1, [%g1] | 608 | stx %o1, [%g1] |
699 | retl | 609 | retl |
700 | nop | 610 | nop |
701 | .size sun4v_vintr_get_valid, .-sun4v_vintr_get_valid | 611 | ENDPROC(sun4v_vintr_get_valid) |
702 | 612 | ||
703 | /* %o0: device handle | 613 | /* %o0: device handle |
704 | * %o1: device INO | 614 | * %o1: device INO |
@@ -706,14 +616,12 @@ sun4v_vintr_get_valid: | |||
706 | * | 616 | * |
707 | * returns %o0: status | 617 | * returns %o0: status |
708 | */ | 618 | */ |
709 | .globl sun4v_vintr_set_valid | 619 | ENTRY(sun4v_vintr_set_valid) |
710 | .type sun4v_vintr_set_valid,#function | ||
711 | sun4v_vintr_set_valid: | ||
712 | mov HV_FAST_VINTR_SET_VALID, %o5 | 620 | mov HV_FAST_VINTR_SET_VALID, %o5 |
713 | ta HV_FAST_TRAP | 621 | ta HV_FAST_TRAP |
714 | retl | 622 | retl |
715 | nop | 623 | nop |
716 | .size sun4v_vintr_set_valid, .-sun4v_vintr_set_valid | 624 | ENDPROC(sun4v_vintr_set_valid) |
717 | 625 | ||
718 | /* %o0: device handle | 626 | /* %o0: device handle |
719 | * %o1: device INO | 627 | * %o1: device INO |
@@ -721,16 +629,14 @@ sun4v_vintr_set_valid: | |||
721 | * | 629 | * |
722 | * returns %o0: status | 630 | * returns %o0: status |
723 | */ | 631 | */ |
724 | .globl sun4v_vintr_get_state | 632 | ENTRY(sun4v_vintr_get_state) |
725 | .type sun4v_vintr_get_state,#function | ||
726 | sun4v_vintr_get_state: | ||
727 | mov %o2, %g1 | 633 | mov %o2, %g1 |
728 | mov HV_FAST_VINTR_GET_STATE, %o5 | 634 | mov HV_FAST_VINTR_GET_STATE, %o5 |
729 | ta HV_FAST_TRAP | 635 | ta HV_FAST_TRAP |
730 | stx %o1, [%g1] | 636 | stx %o1, [%g1] |
731 | retl | 637 | retl |
732 | nop | 638 | nop |
733 | .size sun4v_vintr_get_state, .-sun4v_vintr_get_state | 639 | ENDPROC(sun4v_vintr_get_state) |
734 | 640 | ||
735 | /* %o0: device handle | 641 | /* %o0: device handle |
736 | * %o1: device INO | 642 | * %o1: device INO |
@@ -738,14 +644,12 @@ sun4v_vintr_get_state: | |||
738 | * | 644 | * |
739 | * returns %o0: status | 645 | * returns %o0: status |
740 | */ | 646 | */ |
741 | .globl sun4v_vintr_set_state | 647 | ENTRY(sun4v_vintr_set_state) |
742 | .type sun4v_vintr_set_state,#function | ||
743 | sun4v_vintr_set_state: | ||
744 | mov HV_FAST_VINTR_SET_STATE, %o5 | 648 | mov HV_FAST_VINTR_SET_STATE, %o5 |
745 | ta HV_FAST_TRAP | 649 | ta HV_FAST_TRAP |
746 | retl | 650 | retl |
747 | nop | 651 | nop |
748 | .size sun4v_vintr_set_state, .-sun4v_vintr_set_state | 652 | ENDPROC(sun4v_vintr_set_state) |
749 | 653 | ||
750 | /* %o0: device handle | 654 | /* %o0: device handle |
751 | * %o1: device INO | 655 | * %o1: device INO |
@@ -753,16 +657,14 @@ sun4v_vintr_set_state: | |||
753 | * | 657 | * |
754 | * returns %o0: status | 658 | * returns %o0: status |
755 | */ | 659 | */ |
756 | .globl sun4v_vintr_get_target | 660 | ENTRY(sun4v_vintr_get_target) |
757 | .type sun4v_vintr_get_target,#function | ||
758 | sun4v_vintr_get_target: | ||
759 | mov %o2, %g1 | 661 | mov %o2, %g1 |
760 | mov HV_FAST_VINTR_GET_TARGET, %o5 | 662 | mov HV_FAST_VINTR_GET_TARGET, %o5 |
761 | ta HV_FAST_TRAP | 663 | ta HV_FAST_TRAP |
762 | stx %o1, [%g1] | 664 | stx %o1, [%g1] |
763 | retl | 665 | retl |
764 | nop | 666 | nop |
765 | .size sun4v_vintr_get_target, .-sun4v_vintr_get_target | 667 | ENDPROC(sun4v_vintr_get_target) |
766 | 668 | ||
767 | /* %o0: device handle | 669 | /* %o0: device handle |
768 | * %o1: device INO | 670 | * %o1: device INO |
@@ -770,14 +672,12 @@ sun4v_vintr_get_target: | |||
770 | * | 672 | * |
771 | * returns %o0: status | 673 | * returns %o0: status |
772 | */ | 674 | */ |
773 | .globl sun4v_vintr_set_target | 675 | ENTRY(sun4v_vintr_set_target) |
774 | .type sun4v_vintr_set_target,#function | ||
775 | sun4v_vintr_set_target: | ||
776 | mov HV_FAST_VINTR_SET_TARGET, %o5 | 676 | mov HV_FAST_VINTR_SET_TARGET, %o5 |
777 | ta HV_FAST_TRAP | 677 | ta HV_FAST_TRAP |
778 | retl | 678 | retl |
779 | nop | 679 | nop |
780 | .size sun4v_vintr_set_target, .-sun4v_vintr_set_target | 680 | ENDPROC(sun4v_vintr_set_target) |
781 | 681 | ||
782 | /* %o0: NCS sub-function | 682 | /* %o0: NCS sub-function |
783 | * %o1: sub-function arg real-address | 683 | * %o1: sub-function arg real-address |
@@ -785,18 +685,14 @@ sun4v_vintr_set_target: | |||
785 | * | 685 | * |
786 | * returns %o0: status | 686 | * returns %o0: status |
787 | */ | 687 | */ |
788 | .globl sun4v_ncs_request | 688 | ENTRY(sun4v_ncs_request) |
789 | .type sun4v_ncs_request,#function | ||
790 | sun4v_ncs_request: | ||
791 | mov HV_FAST_NCS_REQUEST, %o5 | 689 | mov HV_FAST_NCS_REQUEST, %o5 |
792 | ta HV_FAST_TRAP | 690 | ta HV_FAST_TRAP |
793 | retl | 691 | retl |
794 | nop | 692 | nop |
795 | .size sun4v_ncs_request, .-sun4v_ncs_request | 693 | ENDPROC(sun4v_ncs_request) |
796 | 694 | ||
797 | .globl sun4v_svc_send | 695 | ENTRY(sun4v_svc_send) |
798 | .type sun4v_svc_send,#function | ||
799 | sun4v_svc_send: | ||
800 | save %sp, -192, %sp | 696 | save %sp, -192, %sp |
801 | mov %i0, %o0 | 697 | mov %i0, %o0 |
802 | mov %i1, %o1 | 698 | mov %i1, %o1 |
@@ -806,11 +702,9 @@ sun4v_svc_send: | |||
806 | stx %o1, [%i3] | 702 | stx %o1, [%i3] |
807 | ret | 703 | ret |
808 | restore | 704 | restore |
809 | .size sun4v_svc_send, .-sun4v_svc_send | 705 | ENDPROC(sun4v_svc_send) |
810 | 706 | ||
811 | .globl sun4v_svc_recv | 707 | ENTRY(sun4v_svc_recv) |
812 | .type sun4v_svc_recv,#function | ||
813 | sun4v_svc_recv: | ||
814 | save %sp, -192, %sp | 708 | save %sp, -192, %sp |
815 | mov %i0, %o0 | 709 | mov %i0, %o0 |
816 | mov %i1, %o1 | 710 | mov %i1, %o1 |
@@ -820,62 +714,50 @@ sun4v_svc_recv: | |||
820 | stx %o1, [%i3] | 714 | stx %o1, [%i3] |
821 | ret | 715 | ret |
822 | restore | 716 | restore |
823 | .size sun4v_svc_recv, .-sun4v_svc_recv | 717 | ENDPROC(sun4v_svc_recv) |
824 | 718 | ||
825 | .globl sun4v_svc_getstatus | 719 | ENTRY(sun4v_svc_getstatus) |
826 | .type sun4v_svc_getstatus,#function | ||
827 | sun4v_svc_getstatus: | ||
828 | mov HV_FAST_SVC_GETSTATUS, %o5 | 720 | mov HV_FAST_SVC_GETSTATUS, %o5 |
829 | mov %o1, %o4 | 721 | mov %o1, %o4 |
830 | ta HV_FAST_TRAP | 722 | ta HV_FAST_TRAP |
831 | stx %o1, [%o4] | 723 | stx %o1, [%o4] |
832 | retl | 724 | retl |
833 | nop | 725 | nop |
834 | .size sun4v_svc_getstatus, .-sun4v_svc_getstatus | 726 | ENDPROC(sun4v_svc_getstatus) |
835 | 727 | ||
836 | .globl sun4v_svc_setstatus | 728 | ENTRY(sun4v_svc_setstatus) |
837 | .type sun4v_svc_setstatus,#function | ||
838 | sun4v_svc_setstatus: | ||
839 | mov HV_FAST_SVC_SETSTATUS, %o5 | 729 | mov HV_FAST_SVC_SETSTATUS, %o5 |
840 | ta HV_FAST_TRAP | 730 | ta HV_FAST_TRAP |
841 | retl | 731 | retl |
842 | nop | 732 | nop |
843 | .size sun4v_svc_setstatus, .-sun4v_svc_setstatus | 733 | ENDPROC(sun4v_svc_setstatus) |
844 | 734 | ||
845 | .globl sun4v_svc_clrstatus | 735 | ENTRY(sun4v_svc_clrstatus) |
846 | .type sun4v_svc_clrstatus,#function | ||
847 | sun4v_svc_clrstatus: | ||
848 | mov HV_FAST_SVC_CLRSTATUS, %o5 | 736 | mov HV_FAST_SVC_CLRSTATUS, %o5 |
849 | ta HV_FAST_TRAP | 737 | ta HV_FAST_TRAP |
850 | retl | 738 | retl |
851 | nop | 739 | nop |
852 | .size sun4v_svc_clrstatus, .-sun4v_svc_clrstatus | 740 | ENDPROC(sun4v_svc_clrstatus) |
853 | 741 | ||
854 | .globl sun4v_mmustat_conf | 742 | ENTRY(sun4v_mmustat_conf) |
855 | .type sun4v_mmustat_conf,#function | ||
856 | sun4v_mmustat_conf: | ||
857 | mov %o1, %o4 | 743 | mov %o1, %o4 |
858 | mov HV_FAST_MMUSTAT_CONF, %o5 | 744 | mov HV_FAST_MMUSTAT_CONF, %o5 |
859 | ta HV_FAST_TRAP | 745 | ta HV_FAST_TRAP |
860 | stx %o1, [%o4] | 746 | stx %o1, [%o4] |
861 | retl | 747 | retl |
862 | nop | 748 | nop |
863 | .size sun4v_mmustat_conf, .-sun4v_mmustat_conf | 749 | ENDPROC(sun4v_mmustat_conf) |
864 | 750 | ||
865 | .globl sun4v_mmustat_info | 751 | ENTRY(sun4v_mmustat_info) |
866 | .type sun4v_mmustat_info,#function | ||
867 | sun4v_mmustat_info: | ||
868 | mov %o0, %o4 | 752 | mov %o0, %o4 |
869 | mov HV_FAST_MMUSTAT_INFO, %o5 | 753 | mov HV_FAST_MMUSTAT_INFO, %o5 |
870 | ta HV_FAST_TRAP | 754 | ta HV_FAST_TRAP |
871 | stx %o1, [%o4] | 755 | stx %o1, [%o4] |
872 | retl | 756 | retl |
873 | nop | 757 | nop |
874 | .size sun4v_mmustat_info, .-sun4v_mmustat_info | 758 | ENDPROC(sun4v_mmustat_info) |
875 | 759 | ||
876 | .globl sun4v_mmu_demap_all | 760 | ENTRY(sun4v_mmu_demap_all) |
877 | .type sun4v_mmu_demap_all,#function | ||
878 | sun4v_mmu_demap_all: | ||
879 | clr %o0 | 761 | clr %o0 |
880 | clr %o1 | 762 | clr %o1 |
881 | mov HV_MMU_ALL, %o2 | 763 | mov HV_MMU_ALL, %o2 |
@@ -883,4 +765,4 @@ sun4v_mmu_demap_all: | |||
883 | ta HV_FAST_TRAP | 765 | ta HV_FAST_TRAP |
884 | retl | 766 | retl |
885 | nop | 767 | nop |
886 | .size sun4v_mmu_demap_all, .-sun4v_mmu_demap_all | 768 | ENDPROC(sun4v_mmu_demap_all) |