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
345 ENDPROC(sun4v_mach_set_watchdog)
347 /* No inputs and does not return. */
348 ENTRY(sun4v_mach_sir)
350 mov HV_FAST_MACH_SIR, %o5
355 ENDPROC(sun4v_mach_sir)
361 * returns %o0: status
363 ENTRY(sun4v_ldc_tx_qconf)
364 mov HV_FAST_LDC_TX_QCONF, %o5
368 ENDPROC(sun4v_ldc_tx_qconf)
371 * %o1: pointer to unsigned long ra
372 * %o2: pointer to unsigned long num_entries
374 * returns %o0: status
376 ENTRY(sun4v_ldc_tx_qinfo)
379 mov HV_FAST_LDC_TX_QINFO, %o5
385 ENDPROC(sun4v_ldc_tx_qinfo)
388 * %o1: pointer to unsigned long head_off
389 * %o2: pointer to unsigned long tail_off
390 * %o2: pointer to unsigned long chan_state
392 * returns %o0: status
394 ENTRY(sun4v_ldc_tx_get_state)
398 mov HV_FAST_LDC_TX_GET_STATE, %o5
405 ENDPROC(sun4v_ldc_tx_get_state)
410 * returns %o0: status
412 ENTRY(sun4v_ldc_tx_set_qtail)
413 mov HV_FAST_LDC_TX_SET_QTAIL, %o5
417 ENDPROC(sun4v_ldc_tx_set_qtail)
423 * returns %o0: status
425 ENTRY(sun4v_ldc_rx_qconf)
426 mov HV_FAST_LDC_RX_QCONF, %o5
430 ENDPROC(sun4v_ldc_rx_qconf)
433 * %o1: pointer to unsigned long ra
434 * %o2: pointer to unsigned long num_entries
436 * returns %o0: status
438 ENTRY(sun4v_ldc_rx_qinfo)
441 mov HV_FAST_LDC_RX_QINFO, %o5
447 ENDPROC(sun4v_ldc_rx_qinfo)
450 * %o1: pointer to unsigned long head_off
451 * %o2: pointer to unsigned long tail_off
452 * %o2: pointer to unsigned long chan_state
454 * returns %o0: status
456 ENTRY(sun4v_ldc_rx_get_state)
460 mov HV_FAST_LDC_RX_GET_STATE, %o5
467 ENDPROC(sun4v_ldc_rx_get_state)
472 * returns %o0: status
474 ENTRY(sun4v_ldc_rx_set_qhead)
475 mov HV_FAST_LDC_RX_SET_QHEAD, %o5
479 ENDPROC(sun4v_ldc_rx_set_qhead)
485 * returns %o0: status
487 ENTRY(sun4v_ldc_set_map_table)
488 mov HV_FAST_LDC_SET_MAP_TABLE, %o5
492 ENDPROC(sun4v_ldc_set_map_table)
495 * %o1: pointer to unsigned long ra
496 * %o2: pointer to unsigned long num_entries
498 * returns %o0: status
500 ENTRY(sun4v_ldc_get_map_table)
503 mov HV_FAST_LDC_GET_MAP_TABLE, %o5
509 ENDPROC(sun4v_ldc_get_map_table)
516 * %o5: pointer to unsigned long actual_len
518 * returns %o0: status
520 ENTRY(sun4v_ldc_copy)
522 mov HV_FAST_LDC_COPY, %o5
527 ENDPROC(sun4v_ldc_copy)
531 * %o2: pointer to unsigned long ra
532 * %o3: pointer to unsigned long perm
534 * returns %o0: status
536 ENTRY(sun4v_ldc_mapin)
539 mov HV_FAST_LDC_MAPIN, %o5
545 ENDPROC(sun4v_ldc_mapin)
549 * returns %o0: status
551 ENTRY(sun4v_ldc_unmap)
552 mov HV_FAST_LDC_UNMAP, %o5
556 ENDPROC(sun4v_ldc_unmap)
562 * returns %o0: status
564 ENTRY(sun4v_ldc_revoke)
565 mov HV_FAST_LDC_REVOKE, %o5
569 ENDPROC(sun4v_ldc_revoke)
571 /* %o0: device handle
573 * %o2: pointer to unsigned long cookie
575 * returns %o0: status
577 ENTRY(sun4v_vintr_get_cookie)
579 mov HV_FAST_VINTR_GET_COOKIE, %o5
584 ENDPROC(sun4v_vintr_get_cookie)
586 /* %o0: device handle
590 * returns %o0: status
592 ENTRY(sun4v_vintr_set_cookie)
593 mov HV_FAST_VINTR_SET_COOKIE, %o5
597 ENDPROC(sun4v_vintr_set_cookie)
599 /* %o0: device handle
601 * %o2: pointer to unsigned long valid_state
603 * returns %o0: status
605 ENTRY(sun4v_vintr_get_valid)
607 mov HV_FAST_VINTR_GET_VALID, %o5
612 ENDPROC(sun4v_vintr_get_valid)
614 /* %o0: device handle
618 * returns %o0: status
620 ENTRY(sun4v_vintr_set_valid)
621 mov HV_FAST_VINTR_SET_VALID, %o5
625 ENDPROC(sun4v_vintr_set_valid)
627 /* %o0: device handle
629 * %o2: pointer to unsigned long state
631 * returns %o0: status
633 ENTRY(sun4v_vintr_get_state)
635 mov HV_FAST_VINTR_GET_STATE, %o5
640 ENDPROC(sun4v_vintr_get_state)
642 /* %o0: device handle
646 * returns %o0: status
648 ENTRY(sun4v_vintr_set_state)
649 mov HV_FAST_VINTR_SET_STATE, %o5
653 ENDPROC(sun4v_vintr_set_state)
655 /* %o0: device handle
657 * %o2: pointer to unsigned long cpuid
659 * returns %o0: status
661 ENTRY(sun4v_vintr_get_target)
663 mov HV_FAST_VINTR_GET_TARGET, %o5
668 ENDPROC(sun4v_vintr_get_target)
670 /* %o0: device handle
674 * returns %o0: status
676 ENTRY(sun4v_vintr_set_target)
677 mov HV_FAST_VINTR_SET_TARGET, %o5
681 ENDPROC(sun4v_vintr_set_target)
683 /* %o0: NCS sub-function
684 * %o1: sub-function arg real-address
685 * %o2: sub-function arg size
687 * returns %o0: status
689 ENTRY(sun4v_ncs_request)
690 mov HV_FAST_NCS_REQUEST, %o5
694 ENDPROC(sun4v_ncs_request)
696 ENTRY(sun4v_svc_send)
701 mov HV_FAST_SVC_SEND, %o5
706 ENDPROC(sun4v_svc_send)
708 ENTRY(sun4v_svc_recv)
713 mov HV_FAST_SVC_RECV, %o5
718 ENDPROC(sun4v_svc_recv)
720 ENTRY(sun4v_svc_getstatus)
721 mov HV_FAST_SVC_GETSTATUS, %o5
727 ENDPROC(sun4v_svc_getstatus)
729 ENTRY(sun4v_svc_setstatus)
730 mov HV_FAST_SVC_SETSTATUS, %o5
734 ENDPROC(sun4v_svc_setstatus)
736 ENTRY(sun4v_svc_clrstatus)
737 mov HV_FAST_SVC_CLRSTATUS, %o5
741 ENDPROC(sun4v_svc_clrstatus)
743 ENTRY(sun4v_mmustat_conf)
745 mov HV_FAST_MMUSTAT_CONF, %o5
750 ENDPROC(sun4v_mmustat_conf)
752 ENTRY(sun4v_mmustat_info)
754 mov HV_FAST_MMUSTAT_INFO, %o5
759 ENDPROC(sun4v_mmustat_info)
761 ENTRY(sun4v_mmu_demap_all)
765 mov HV_FAST_MMU_DEMAP_ALL, %o5
769 ENDPROC(sun4v_mmu_demap_all)
771 ENTRY(sun4v_niagara_getperf)
773 mov HV_FAST_GET_PERFREG, %o5
778 ENDPROC(sun4v_niagara_getperf)
780 ENTRY(sun4v_niagara_setperf)
781 mov HV_FAST_SET_PERFREG, %o5
785 ENDPROC(sun4v_niagara_setperf)
787 ENTRY(sun4v_niagara2_getperf)
789 mov HV_FAST_N2_GET_PERFREG, %o5
794 ENDPROC(sun4v_niagara2_getperf)
796 ENTRY(sun4v_niagara2_setperf)
797 mov HV_FAST_N2_SET_PERFREG, %o5
801 ENDPROC(sun4v_niagara2_setperf)
803 ENTRY(sun4v_reboot_data_set)
804 mov HV_FAST_REBOOT_DATA_SET, %o5
808 ENDPROC(sun4v_reboot_data_set)
810 ENTRY(sun4v_vt_get_perfreg)
812 mov HV_FAST_VT_GET_PERFREG, %o5
817 ENDPROC(sun4v_vt_get_perfreg)
819 ENTRY(sun4v_vt_set_perfreg)
820 mov HV_FAST_VT_SET_PERFREG, %o5
824 ENDPROC(sun4v_vt_set_perfreg)
826 ENTRY(sun4v_t5_get_perfreg)
828 mov HV_FAST_T5_GET_PERFREG, %o5
833 ENDPROC(sun4v_t5_get_perfreg)
835 ENTRY(sun4v_t5_set_perfreg)
836 mov HV_FAST_T5_SET_PERFREG, %o5
840 ENDPROC(sun4v_t5_set_perfreg)
842 ENTRY(sun4v_m7_get_perfreg)
844 mov HV_FAST_M7_GET_PERFREG, %o5
849 ENDPROC(sun4v_m7_get_perfreg)
851 ENTRY(sun4v_m7_set_perfreg)
852 mov HV_FAST_M7_SET_PERFREG, %o5
856 ENDPROC(sun4v_m7_set_perfreg)