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 * returns %o0: status
113 ENTRY(sun4v_cpu_poke)
114 mov HV_FAST_CPU_POKE, %o5
118 ENDPROC(sun4v_cpu_poke)
122 * %o2: num queue entries
124 * returns %o0: status
126 ENTRY(sun4v_cpu_qconf)
127 mov HV_FAST_CPU_QCONF, %o5
131 ENDPROC(sun4v_cpu_qconf)
133 /* %o0: num cpus in cpu list
134 * %o1: cpu list paddr
135 * %o2: mondo block paddr
137 * returns %o0: status
139 ENTRY(sun4v_cpu_mondo_send)
140 mov HV_FAST_CPU_MONDO_SEND, %o5
144 ENDPROC(sun4v_cpu_mondo_send)
148 * returns %o0: -status if status non-zero, else
149 * %o0: cpu state as HV_CPU_STATE_*
151 ENTRY(sun4v_cpu_state)
152 mov HV_FAST_CPU_STATE, %o5
159 ENDPROC(sun4v_cpu_state)
161 /* %o0: virtual address
164 * %o3: HV_MMU_* flags
166 * returns %o0: status
168 ENTRY(sun4v_mmu_map_perm_addr)
169 mov HV_FAST_MMU_MAP_PERM_ADDR, %o5
173 ENDPROC(sun4v_mmu_map_perm_addr)
175 /* %o0: number of TSB descriptions
176 * %o1: TSB descriptions real address
178 * returns %o0: status
180 ENTRY(sun4v_mmu_tsb_ctx0)
181 mov HV_FAST_MMU_TSB_CTX0, %o5
185 ENDPROC(sun4v_mmu_tsb_ctx0)
187 /* %o0: API group number
188 * %o1: pointer to unsigned long major number storage
189 * %o2: pointer to unsigned long minor number storage
191 * returns %o0: status
193 ENTRY(sun4v_get_version)
194 mov HV_CORE_GET_VER, %o5
201 ENDPROC(sun4v_get_version)
203 /* %o0: API group number
204 * %o1: desired major number
205 * %o2: desired minor number
206 * %o3: pointer to unsigned long actual minor number storage
208 * returns %o0: status
210 ENTRY(sun4v_set_version)
211 mov HV_CORE_SET_VER, %o5
216 ENDPROC(sun4v_set_version)
218 /* %o0: pointer to unsigned long time
220 * returns %o0: status
224 mov HV_FAST_TOD_GET, %o5
229 ENDPROC(sun4v_tod_get)
233 * returns %o0: status
236 mov HV_FAST_TOD_SET, %o5
240 ENDPROC(sun4v_tod_set)
242 /* %o0: pointer to unsigned long status
244 * returns %o0: signed character
246 ENTRY(sun4v_con_getchar)
248 mov HV_FAST_CONS_GETCHAR, %o5
255 ENDPROC(sun4v_con_getchar)
257 /* %o0: signed long character
259 * returns %o0: status
261 ENTRY(sun4v_con_putchar)
262 mov HV_FAST_CONS_PUTCHAR, %o5
266 ENDPROC(sun4v_con_putchar)
268 /* %o0: buffer real address
270 * %o2: pointer to unsigned long bytes_read
272 * returns %o0: status
274 ENTRY(sun4v_con_read)
276 mov HV_FAST_CONS_READ, %o5
279 cmp %o1, -1 /* break */
282 cmp %o1, -2 /* hup */
288 ENDPROC(sun4v_con_read)
290 /* %o0: buffer real address
292 * %o2: pointer to unsigned long bytes_written
294 * returns %o0: status
296 ENTRY(sun4v_con_write)
298 mov HV_FAST_CONS_WRITE, %o5
303 ENDPROC(sun4v_con_write)
306 * %o1: address of description string
308 * returns %o0: status
310 ENTRY(sun4v_mach_set_soft_state)
311 mov HV_FAST_MACH_SET_SOFT_STATE, %o5
315 ENDPROC(sun4v_mach_set_soft_state)
321 ENTRY(sun4v_mach_exit)
322 mov HV_FAST_MACH_EXIT, %o5
326 ENDPROC(sun4v_mach_exit)
328 /* %o0: buffer real address
330 * %o2: pointer to unsigned long real_buf_len
332 * returns %o0: status
334 ENTRY(sun4v_mach_desc)
336 mov HV_FAST_MACH_DESC, %o5
341 ENDPROC(sun4v_mach_desc)
343 /* %o0: new timeout in milliseconds
344 * %o1: pointer to unsigned long orig_timeout
346 * returns %o0: status
348 ENTRY(sun4v_mach_set_watchdog)
350 mov HV_FAST_MACH_SET_WATCHDOG, %o5
356 ENDPROC(sun4v_mach_set_watchdog)
357 EXPORT_SYMBOL(sun4v_mach_set_watchdog)
359 /* No inputs and does not return. */
360 ENTRY(sun4v_mach_sir)
362 mov HV_FAST_MACH_SIR, %o5
367 ENDPROC(sun4v_mach_sir)
373 * returns %o0: status
375 ENTRY(sun4v_ldc_tx_qconf)
376 mov HV_FAST_LDC_TX_QCONF, %o5
380 ENDPROC(sun4v_ldc_tx_qconf)
383 * %o1: pointer to unsigned long ra
384 * %o2: pointer to unsigned long num_entries
386 * returns %o0: status
388 ENTRY(sun4v_ldc_tx_qinfo)
391 mov HV_FAST_LDC_TX_QINFO, %o5
397 ENDPROC(sun4v_ldc_tx_qinfo)
400 * %o1: pointer to unsigned long head_off
401 * %o2: pointer to unsigned long tail_off
402 * %o2: pointer to unsigned long chan_state
404 * returns %o0: status
406 ENTRY(sun4v_ldc_tx_get_state)
410 mov HV_FAST_LDC_TX_GET_STATE, %o5
417 ENDPROC(sun4v_ldc_tx_get_state)
422 * returns %o0: status
424 ENTRY(sun4v_ldc_tx_set_qtail)
425 mov HV_FAST_LDC_TX_SET_QTAIL, %o5
429 ENDPROC(sun4v_ldc_tx_set_qtail)
435 * returns %o0: status
437 ENTRY(sun4v_ldc_rx_qconf)
438 mov HV_FAST_LDC_RX_QCONF, %o5
442 ENDPROC(sun4v_ldc_rx_qconf)
445 * %o1: pointer to unsigned long ra
446 * %o2: pointer to unsigned long num_entries
448 * returns %o0: status
450 ENTRY(sun4v_ldc_rx_qinfo)
453 mov HV_FAST_LDC_RX_QINFO, %o5
459 ENDPROC(sun4v_ldc_rx_qinfo)
462 * %o1: pointer to unsigned long head_off
463 * %o2: pointer to unsigned long tail_off
464 * %o2: pointer to unsigned long chan_state
466 * returns %o0: status
468 ENTRY(sun4v_ldc_rx_get_state)
472 mov HV_FAST_LDC_RX_GET_STATE, %o5
479 ENDPROC(sun4v_ldc_rx_get_state)
484 * returns %o0: status
486 ENTRY(sun4v_ldc_rx_set_qhead)
487 mov HV_FAST_LDC_RX_SET_QHEAD, %o5
491 ENDPROC(sun4v_ldc_rx_set_qhead)
497 * returns %o0: status
499 ENTRY(sun4v_ldc_set_map_table)
500 mov HV_FAST_LDC_SET_MAP_TABLE, %o5
504 ENDPROC(sun4v_ldc_set_map_table)
507 * %o1: pointer to unsigned long ra
508 * %o2: pointer to unsigned long num_entries
510 * returns %o0: status
512 ENTRY(sun4v_ldc_get_map_table)
515 mov HV_FAST_LDC_GET_MAP_TABLE, %o5
521 ENDPROC(sun4v_ldc_get_map_table)
528 * %o5: pointer to unsigned long actual_len
530 * returns %o0: status
532 ENTRY(sun4v_ldc_copy)
534 mov HV_FAST_LDC_COPY, %o5
539 ENDPROC(sun4v_ldc_copy)
543 * %o2: pointer to unsigned long ra
544 * %o3: pointer to unsigned long perm
546 * returns %o0: status
548 ENTRY(sun4v_ldc_mapin)
551 mov HV_FAST_LDC_MAPIN, %o5
557 ENDPROC(sun4v_ldc_mapin)
561 * returns %o0: status
563 ENTRY(sun4v_ldc_unmap)
564 mov HV_FAST_LDC_UNMAP, %o5
568 ENDPROC(sun4v_ldc_unmap)
574 * returns %o0: status
576 ENTRY(sun4v_ldc_revoke)
577 mov HV_FAST_LDC_REVOKE, %o5
581 ENDPROC(sun4v_ldc_revoke)
583 /* %o0: device handle
585 * %o2: pointer to unsigned long cookie
587 * returns %o0: status
589 ENTRY(sun4v_vintr_get_cookie)
591 mov HV_FAST_VINTR_GET_COOKIE, %o5
596 ENDPROC(sun4v_vintr_get_cookie)
598 /* %o0: device handle
602 * returns %o0: status
604 ENTRY(sun4v_vintr_set_cookie)
605 mov HV_FAST_VINTR_SET_COOKIE, %o5
609 ENDPROC(sun4v_vintr_set_cookie)
611 /* %o0: device handle
613 * %o2: pointer to unsigned long valid_state
615 * returns %o0: status
617 ENTRY(sun4v_vintr_get_valid)
619 mov HV_FAST_VINTR_GET_VALID, %o5
624 ENDPROC(sun4v_vintr_get_valid)
626 /* %o0: device handle
630 * returns %o0: status
632 ENTRY(sun4v_vintr_set_valid)
633 mov HV_FAST_VINTR_SET_VALID, %o5
637 ENDPROC(sun4v_vintr_set_valid)
639 /* %o0: device handle
641 * %o2: pointer to unsigned long state
643 * returns %o0: status
645 ENTRY(sun4v_vintr_get_state)
647 mov HV_FAST_VINTR_GET_STATE, %o5
652 ENDPROC(sun4v_vintr_get_state)
654 /* %o0: device handle
658 * returns %o0: status
660 ENTRY(sun4v_vintr_set_state)
661 mov HV_FAST_VINTR_SET_STATE, %o5
665 ENDPROC(sun4v_vintr_set_state)
667 /* %o0: device handle
669 * %o2: pointer to unsigned long cpuid
671 * returns %o0: status
673 ENTRY(sun4v_vintr_get_target)
675 mov HV_FAST_VINTR_GET_TARGET, %o5
680 ENDPROC(sun4v_vintr_get_target)
682 /* %o0: device handle
686 * returns %o0: status
688 ENTRY(sun4v_vintr_set_target)
689 mov HV_FAST_VINTR_SET_TARGET, %o5
693 ENDPROC(sun4v_vintr_set_target)
695 /* %o0: NCS sub-function
696 * %o1: sub-function arg real-address
697 * %o2: sub-function arg size
699 * returns %o0: status
701 ENTRY(sun4v_ncs_request)
702 mov HV_FAST_NCS_REQUEST, %o5
706 ENDPROC(sun4v_ncs_request)
708 ENTRY(sun4v_svc_send)
713 mov HV_FAST_SVC_SEND, %o5
718 ENDPROC(sun4v_svc_send)
720 ENTRY(sun4v_svc_recv)
725 mov HV_FAST_SVC_RECV, %o5
730 ENDPROC(sun4v_svc_recv)
732 ENTRY(sun4v_svc_getstatus)
733 mov HV_FAST_SVC_GETSTATUS, %o5
739 ENDPROC(sun4v_svc_getstatus)
741 ENTRY(sun4v_svc_setstatus)
742 mov HV_FAST_SVC_SETSTATUS, %o5
746 ENDPROC(sun4v_svc_setstatus)
748 ENTRY(sun4v_svc_clrstatus)
749 mov HV_FAST_SVC_CLRSTATUS, %o5
753 ENDPROC(sun4v_svc_clrstatus)
755 ENTRY(sun4v_mmustat_conf)
757 mov HV_FAST_MMUSTAT_CONF, %o5
762 ENDPROC(sun4v_mmustat_conf)
764 ENTRY(sun4v_mmustat_info)
766 mov HV_FAST_MMUSTAT_INFO, %o5
771 ENDPROC(sun4v_mmustat_info)
773 ENTRY(sun4v_mmu_demap_all)
777 mov HV_FAST_MMU_DEMAP_ALL, %o5
781 ENDPROC(sun4v_mmu_demap_all)
783 ENTRY(sun4v_niagara_getperf)
785 mov HV_FAST_GET_PERFREG, %o5
790 ENDPROC(sun4v_niagara_getperf)
791 EXPORT_SYMBOL(sun4v_niagara_getperf)
793 ENTRY(sun4v_niagara_setperf)
794 mov HV_FAST_SET_PERFREG, %o5
798 ENDPROC(sun4v_niagara_setperf)
799 EXPORT_SYMBOL(sun4v_niagara_setperf)
801 ENTRY(sun4v_niagara2_getperf)
803 mov HV_FAST_N2_GET_PERFREG, %o5
808 ENDPROC(sun4v_niagara2_getperf)
809 EXPORT_SYMBOL(sun4v_niagara2_getperf)
811 ENTRY(sun4v_niagara2_setperf)
812 mov HV_FAST_N2_SET_PERFREG, %o5
816 ENDPROC(sun4v_niagara2_setperf)
817 EXPORT_SYMBOL(sun4v_niagara2_setperf)
819 ENTRY(sun4v_reboot_data_set)
820 mov HV_FAST_REBOOT_DATA_SET, %o5
824 ENDPROC(sun4v_reboot_data_set)
826 ENTRY(sun4v_vt_get_perfreg)
828 mov HV_FAST_VT_GET_PERFREG, %o5
833 ENDPROC(sun4v_vt_get_perfreg)
835 ENTRY(sun4v_vt_set_perfreg)
836 mov HV_FAST_VT_SET_PERFREG, %o5
840 ENDPROC(sun4v_vt_set_perfreg)
842 ENTRY(sun4v_t5_get_perfreg)
844 mov HV_FAST_T5_GET_PERFREG, %o5
849 ENDPROC(sun4v_t5_get_perfreg)
851 ENTRY(sun4v_t5_set_perfreg)
852 mov HV_FAST_T5_SET_PERFREG, %o5
856 ENDPROC(sun4v_t5_set_perfreg)
858 ENTRY(sun4v_m7_get_perfreg)
860 mov HV_FAST_M7_GET_PERFREG, %o5
865 ENDPROC(sun4v_m7_get_perfreg)
867 ENTRY(sun4v_m7_set_perfreg)
868 mov HV_FAST_M7_SET_PERFREG, %o5
872 ENDPROC(sun4v_m7_set_perfreg)