6 ENTRY(sun4v_devino_to_sysino)
7 mov HV_FAST_INTR_DEVINO2SYSINO, %o5
11 ENDPROC(sun4v_devino_to_sysino)
15 * returns %o0: intr_enabled (HV_INTR_{DISABLED,ENABLED})
17 ENTRY(sun4v_intr_getenabled)
18 mov HV_FAST_INTR_GETENABLED, %o5
22 ENDPROC(sun4v_intr_getenabled)
25 * %o1: intr_enabled (HV_INTR_{DISABLED,ENABLED})
27 ENTRY(sun4v_intr_setenabled)
28 mov HV_FAST_INTR_SETENABLED, %o5
32 ENDPROC(sun4v_intr_setenabled)
36 * returns %o0: intr_state (HV_INTR_STATE_*)
38 ENTRY(sun4v_intr_getstate)
39 mov HV_FAST_INTR_GETSTATE, %o5
43 ENDPROC(sun4v_intr_getstate)
46 * %o1: intr_state (HV_INTR_STATE_*)
48 ENTRY(sun4v_intr_setstate)
49 mov HV_FAST_INTR_SETSTATE, %o5
53 ENDPROC(sun4v_intr_setstate)
59 ENTRY(sun4v_intr_gettarget)
60 mov HV_FAST_INTR_GETTARGET, %o5
64 ENDPROC(sun4v_intr_gettarget)
69 ENTRY(sun4v_intr_settarget)
70 mov HV_FAST_INTR_SETTARGET, %o5
74 ENDPROC(sun4v_intr_settarget)
83 ENTRY(sun4v_cpu_start)
84 mov HV_FAST_CPU_START, %o5
88 ENDPROC(sun4v_cpu_start)
95 mov HV_FAST_CPU_STOP, %o5
99 ENDPROC(sun4v_cpu_stop)
101 /* returns %o0: status */
102 ENTRY(sun4v_cpu_yield)
103 mov HV_FAST_CPU_YIELD, %o5
107 ENDPROC(sun4v_cpu_yield)
111 * %o2: num queue entries
113 * returns %o0: status
115 ENTRY(sun4v_cpu_qconf)
116 mov HV_FAST_CPU_QCONF, %o5
120 ENDPROC(sun4v_cpu_qconf)
122 /* %o0: num cpus in cpu list
123 * %o1: cpu list paddr
124 * %o2: mondo block paddr
126 * returns %o0: status
128 ENTRY(sun4v_cpu_mondo_send)
129 mov HV_FAST_CPU_MONDO_SEND, %o5
133 ENDPROC(sun4v_cpu_mondo_send)
137 * returns %o0: -status if status non-zero, else
138 * %o0: cpu state as HV_CPU_STATE_*
140 ENTRY(sun4v_cpu_state)
141 mov HV_FAST_CPU_STATE, %o5
148 ENDPROC(sun4v_cpu_state)
150 /* %o0: virtual address
153 * %o3: HV_MMU_* flags
155 * returns %o0: status
157 ENTRY(sun4v_mmu_map_perm_addr)
158 mov HV_FAST_MMU_MAP_PERM_ADDR, %o5
162 ENDPROC(sun4v_mmu_map_perm_addr)
164 /* %o0: number of TSB descriptions
165 * %o1: TSB descriptions real address
167 * returns %o0: status
169 ENTRY(sun4v_mmu_tsb_ctx0)
170 mov HV_FAST_MMU_TSB_CTX0, %o5
174 ENDPROC(sun4v_mmu_tsb_ctx0)
176 /* %o0: API group number
177 * %o1: pointer to unsigned long major number storage
178 * %o2: pointer to unsigned long minor number storage
180 * returns %o0: status
182 ENTRY(sun4v_get_version)
183 mov HV_CORE_GET_VER, %o5
190 ENDPROC(sun4v_get_version)
192 /* %o0: API group number
193 * %o1: desired major number
194 * %o2: desired minor number
195 * %o3: pointer to unsigned long actual minor number storage
197 * returns %o0: status
199 ENTRY(sun4v_set_version)
200 mov HV_CORE_SET_VER, %o5
205 ENDPROC(sun4v_set_version)
207 /* %o0: pointer to unsigned long time
209 * returns %o0: status
213 mov HV_FAST_TOD_GET, %o5
218 ENDPROC(sun4v_tod_get)
222 * returns %o0: status
225 mov HV_FAST_TOD_SET, %o5
229 ENDPROC(sun4v_tod_set)
231 /* %o0: pointer to unsigned long status
233 * returns %o0: signed character
235 ENTRY(sun4v_con_getchar)
237 mov HV_FAST_CONS_GETCHAR, %o5
244 ENDPROC(sun4v_con_getchar)
246 /* %o0: signed long character
248 * returns %o0: status
250 ENTRY(sun4v_con_putchar)
251 mov HV_FAST_CONS_PUTCHAR, %o5
255 ENDPROC(sun4v_con_putchar)
257 /* %o0: buffer real address
259 * %o2: pointer to unsigned long bytes_read
261 * returns %o0: status
263 ENTRY(sun4v_con_read)
265 mov HV_FAST_CONS_READ, %o5
268 cmp %o1, -1 /* break */
271 cmp %o1, -2 /* hup */
277 ENDPROC(sun4v_con_read)
279 /* %o0: buffer real address
281 * %o2: pointer to unsigned long bytes_written
283 * returns %o0: status
285 ENTRY(sun4v_con_write)
287 mov HV_FAST_CONS_WRITE, %o5
292 ENDPROC(sun4v_con_write)
295 * %o1: address of description string
297 * returns %o0: status
299 ENTRY(sun4v_mach_set_soft_state)
300 mov HV_FAST_MACH_SET_SOFT_STATE, %o5
304 ENDPROC(sun4v_mach_set_soft_state)
310 ENTRY(sun4v_mach_exit)
311 mov HV_FAST_MACH_EXIT, %o5
315 ENDPROC(sun4v_mach_exit)
317 /* %o0: buffer real address
319 * %o2: pointer to unsigned long real_buf_len
321 * returns %o0: status
323 ENTRY(sun4v_mach_desc)
325 mov HV_FAST_MACH_DESC, %o5
330 ENDPROC(sun4v_mach_desc)
332 /* %o0: new timeout in milliseconds
333 * %o1: pointer to unsigned long orig_timeout
335 * returns %o0: status
337 ENTRY(sun4v_mach_set_watchdog)
339 mov HV_FAST_MACH_SET_WATCHDOG, %o5
344 ENDPROC(sun4v_mach_set_watchdog)
346 /* No inputs and does not return. */
347 ENTRY(sun4v_mach_sir)
349 mov HV_FAST_MACH_SIR, %o5
354 ENDPROC(sun4v_mach_sir)
360 * returns %o0: status
362 ENTRY(sun4v_ldc_tx_qconf)
363 mov HV_FAST_LDC_TX_QCONF, %o5
367 ENDPROC(sun4v_ldc_tx_qconf)
370 * %o1: pointer to unsigned long ra
371 * %o2: pointer to unsigned long num_entries
373 * returns %o0: status
375 ENTRY(sun4v_ldc_tx_qinfo)
378 mov HV_FAST_LDC_TX_QINFO, %o5
384 ENDPROC(sun4v_ldc_tx_qinfo)
387 * %o1: pointer to unsigned long head_off
388 * %o2: pointer to unsigned long tail_off
389 * %o2: pointer to unsigned long chan_state
391 * returns %o0: status
393 ENTRY(sun4v_ldc_tx_get_state)
397 mov HV_FAST_LDC_TX_GET_STATE, %o5
404 ENDPROC(sun4v_ldc_tx_get_state)
409 * returns %o0: status
411 ENTRY(sun4v_ldc_tx_set_qtail)
412 mov HV_FAST_LDC_TX_SET_QTAIL, %o5
416 ENDPROC(sun4v_ldc_tx_set_qtail)
422 * returns %o0: status
424 ENTRY(sun4v_ldc_rx_qconf)
425 mov HV_FAST_LDC_RX_QCONF, %o5
429 ENDPROC(sun4v_ldc_rx_qconf)
432 * %o1: pointer to unsigned long ra
433 * %o2: pointer to unsigned long num_entries
435 * returns %o0: status
437 ENTRY(sun4v_ldc_rx_qinfo)
440 mov HV_FAST_LDC_RX_QINFO, %o5
446 ENDPROC(sun4v_ldc_rx_qinfo)
449 * %o1: pointer to unsigned long head_off
450 * %o2: pointer to unsigned long tail_off
451 * %o2: pointer to unsigned long chan_state
453 * returns %o0: status
455 ENTRY(sun4v_ldc_rx_get_state)
459 mov HV_FAST_LDC_RX_GET_STATE, %o5
466 ENDPROC(sun4v_ldc_rx_get_state)
471 * returns %o0: status
473 ENTRY(sun4v_ldc_rx_set_qhead)
474 mov HV_FAST_LDC_RX_SET_QHEAD, %o5
478 ENDPROC(sun4v_ldc_rx_set_qhead)
484 * returns %o0: status
486 ENTRY(sun4v_ldc_set_map_table)
487 mov HV_FAST_LDC_SET_MAP_TABLE, %o5
491 ENDPROC(sun4v_ldc_set_map_table)
494 * %o1: pointer to unsigned long ra
495 * %o2: pointer to unsigned long num_entries
497 * returns %o0: status
499 ENTRY(sun4v_ldc_get_map_table)
502 mov HV_FAST_LDC_GET_MAP_TABLE, %o5
508 ENDPROC(sun4v_ldc_get_map_table)
515 * %o5: pointer to unsigned long actual_len
517 * returns %o0: status
519 ENTRY(sun4v_ldc_copy)
521 mov HV_FAST_LDC_COPY, %o5
526 ENDPROC(sun4v_ldc_copy)
530 * %o2: pointer to unsigned long ra
531 * %o3: pointer to unsigned long perm
533 * returns %o0: status
535 ENTRY(sun4v_ldc_mapin)
538 mov HV_FAST_LDC_MAPIN, %o5
544 ENDPROC(sun4v_ldc_mapin)
548 * returns %o0: status
550 ENTRY(sun4v_ldc_unmap)
551 mov HV_FAST_LDC_UNMAP, %o5
555 ENDPROC(sun4v_ldc_unmap)
561 * returns %o0: status
563 ENTRY(sun4v_ldc_revoke)
564 mov HV_FAST_LDC_REVOKE, %o5
568 ENDPROC(sun4v_ldc_revoke)
570 /* %o0: device handle
572 * %o2: pointer to unsigned long cookie
574 * returns %o0: status
576 ENTRY(sun4v_vintr_get_cookie)
578 mov HV_FAST_VINTR_GET_COOKIE, %o5
583 ENDPROC(sun4v_vintr_get_cookie)
585 /* %o0: device handle
589 * returns %o0: status
591 ENTRY(sun4v_vintr_set_cookie)
592 mov HV_FAST_VINTR_SET_COOKIE, %o5
596 ENDPROC(sun4v_vintr_set_cookie)
598 /* %o0: device handle
600 * %o2: pointer to unsigned long valid_state
602 * returns %o0: status
604 ENTRY(sun4v_vintr_get_valid)
606 mov HV_FAST_VINTR_GET_VALID, %o5
611 ENDPROC(sun4v_vintr_get_valid)
613 /* %o0: device handle
617 * returns %o0: status
619 ENTRY(sun4v_vintr_set_valid)
620 mov HV_FAST_VINTR_SET_VALID, %o5
624 ENDPROC(sun4v_vintr_set_valid)
626 /* %o0: device handle
628 * %o2: pointer to unsigned long state
630 * returns %o0: status
632 ENTRY(sun4v_vintr_get_state)
634 mov HV_FAST_VINTR_GET_STATE, %o5
639 ENDPROC(sun4v_vintr_get_state)
641 /* %o0: device handle
645 * returns %o0: status
647 ENTRY(sun4v_vintr_set_state)
648 mov HV_FAST_VINTR_SET_STATE, %o5
652 ENDPROC(sun4v_vintr_set_state)
654 /* %o0: device handle
656 * %o2: pointer to unsigned long cpuid
658 * returns %o0: status
660 ENTRY(sun4v_vintr_get_target)
662 mov HV_FAST_VINTR_GET_TARGET, %o5
667 ENDPROC(sun4v_vintr_get_target)
669 /* %o0: device handle
673 * returns %o0: status
675 ENTRY(sun4v_vintr_set_target)
676 mov HV_FAST_VINTR_SET_TARGET, %o5
680 ENDPROC(sun4v_vintr_set_target)
682 /* %o0: NCS sub-function
683 * %o1: sub-function arg real-address
684 * %o2: sub-function arg size
686 * returns %o0: status
688 ENTRY(sun4v_ncs_request)
689 mov HV_FAST_NCS_REQUEST, %o5
693 ENDPROC(sun4v_ncs_request)
695 ENTRY(sun4v_svc_send)
700 mov HV_FAST_SVC_SEND, %o5
705 ENDPROC(sun4v_svc_send)
707 ENTRY(sun4v_svc_recv)
712 mov HV_FAST_SVC_RECV, %o5
717 ENDPROC(sun4v_svc_recv)
719 ENTRY(sun4v_svc_getstatus)
720 mov HV_FAST_SVC_GETSTATUS, %o5
726 ENDPROC(sun4v_svc_getstatus)
728 ENTRY(sun4v_svc_setstatus)
729 mov HV_FAST_SVC_SETSTATUS, %o5
733 ENDPROC(sun4v_svc_setstatus)
735 ENTRY(sun4v_svc_clrstatus)
736 mov HV_FAST_SVC_CLRSTATUS, %o5
740 ENDPROC(sun4v_svc_clrstatus)
742 ENTRY(sun4v_mmustat_conf)
744 mov HV_FAST_MMUSTAT_CONF, %o5
749 ENDPROC(sun4v_mmustat_conf)
751 ENTRY(sun4v_mmustat_info)
753 mov HV_FAST_MMUSTAT_INFO, %o5
758 ENDPROC(sun4v_mmustat_info)
760 ENTRY(sun4v_mmu_demap_all)
764 mov HV_FAST_MMU_DEMAP_ALL, %o5
768 ENDPROC(sun4v_mmu_demap_all)
770 ENTRY(sun4v_niagara_getperf)
772 mov HV_FAST_GET_PERFREG, %o5
777 ENDPROC(sun4v_niagara_getperf)
779 ENTRY(sun4v_niagara_setperf)
780 mov HV_FAST_SET_PERFREG, %o5
784 ENDPROC(sun4v_niagara_setperf)
786 ENTRY(sun4v_niagara2_getperf)
788 mov HV_FAST_N2_GET_PERFREG, %o5
793 ENDPROC(sun4v_niagara2_getperf)
795 ENTRY(sun4v_niagara2_setperf)
796 mov HV_FAST_N2_SET_PERFREG, %o5
800 ENDPROC(sun4v_niagara2_setperf)
802 ENTRY(sun4v_reboot_data_set)
803 mov HV_FAST_REBOOT_DATA_SET, %o5
807 ENDPROC(sun4v_reboot_data_set)