6 .globl sun4v_devino_to_sysino
7 .type sun4v_devino_to_sysino,#function
8 sun4v_devino_to_sysino:
9 mov HV_FAST_INTR_DEVINO2SYSINO, %o5
13 .size sun4v_devino_to_sysino, .-sun4v_devino_to_sysino
17 * returns %o0: intr_enabled (HV_INTR_{DISABLED,ENABLED})
19 .globl sun4v_intr_getenabled
20 .type sun4v_intr_getenabled,#function
21 sun4v_intr_getenabled:
22 mov HV_FAST_INTR_GETENABLED, %o5
26 .size sun4v_intr_getenabled, .-sun4v_intr_getenabled
29 * %o1: intr_enabled (HV_INTR_{DISABLED,ENABLED})
31 .globl sun4v_intr_setenabled
32 .type sun4v_intr_setenabled,#function
33 sun4v_intr_setenabled:
34 mov HV_FAST_INTR_SETENABLED, %o5
38 .size sun4v_intr_setenabled, .-sun4v_intr_setenabled
42 * returns %o0: intr_state (HV_INTR_STATE_*)
44 .globl sun4v_intr_getstate
45 .type sun4v_intr_getstate,#function
47 mov HV_FAST_INTR_GETSTATE, %o5
51 .size sun4v_intr_getstate, .-sun4v_intr_getstate
54 * %o1: intr_state (HV_INTR_STATE_*)
56 .globl sun4v_intr_setstate
57 .type sun4v_intr_setstate,#function
59 mov HV_FAST_INTR_SETSTATE, %o5
63 .size sun4v_intr_setstate, .-sun4v_intr_setstate
69 .globl sun4v_intr_gettarget
70 .type sun4v_intr_gettarget,#function
72 mov HV_FAST_INTR_GETTARGET, %o5
76 .size sun4v_intr_gettarget, .-sun4v_intr_gettarget
81 .globl sun4v_intr_settarget
82 .type sun4v_intr_settarget,#function
84 mov HV_FAST_INTR_SETTARGET, %o5
88 .size sun4v_intr_settarget, .-sun4v_intr_settarget
97 .globl sun4v_cpu_start
98 .type sun4v_cpu_start,#function
100 mov HV_FAST_CPU_START, %o5
104 .size sun4v_cpu_start, .-sun4v_cpu_start
108 * returns %o0: status
110 .globl sun4v_cpu_stop
111 .type sun4v_cpu_stop,#function
113 mov HV_FAST_CPU_STOP, %o5
117 .size sun4v_cpu_stop, .-sun4v_cpu_stop
119 /* returns %o0: status */
120 .globl sun4v_cpu_yield
121 .type sun4v_cpu_yield, #function
123 mov HV_FAST_CPU_YIELD, %o5
127 .size sun4v_cpu_yield, .-sun4v_cpu_yield
131 * %o2: num queue entries
133 * returns %o0: status
135 .globl sun4v_cpu_qconf
136 .type sun4v_cpu_qconf,#function
138 mov HV_FAST_CPU_QCONF, %o5
142 .size sun4v_cpu_qconf, .-sun4v_cpu_qconf
144 /* %o0: num cpus in cpu list
145 * %o1: cpu list paddr
146 * %o2: mondo block paddr
148 * returns %o0: status
150 .globl sun4v_cpu_mondo_send
151 .type sun4v_cpu_mondo_send,#function
152 sun4v_cpu_mondo_send:
153 mov HV_FAST_CPU_MONDO_SEND, %o5
157 .size sun4v_cpu_mondo_send, .-sun4v_cpu_mondo_send
161 * returns %o0: -status if status non-zero, else
162 * %o0: cpu state as HV_CPU_STATE_*
164 .globl sun4v_cpu_state
165 .type sun4v_cpu_state,#function
167 mov HV_FAST_CPU_STATE, %o5
174 .size sun4v_cpu_state, .-sun4v_cpu_state
176 /* %o0: virtual address
179 * %o3: HV_MMU_* flags
181 * returns %o0: status
183 .globl 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
190 .size sun4v_mmu_map_perm_addr, .-sun4v_mmu_map_perm_addr
192 /* %o0: number of TSB descriptions
193 * %o1: TSB descriptions real address
195 * returns %o0: status
197 .globl sun4v_mmu_tsb_ctx0
198 .type sun4v_mmu_tsb_ctx0,#function
200 mov HV_FAST_MMU_TSB_CTX0, %o5
204 .size sun4v_mmu_tsb_ctx0, .-sun4v_mmu_tsb_ctx0
206 /* %o0: API group number
207 * %o1: pointer to unsigned long major number storage
208 * %o2: pointer to unsigned long minor number storage
210 * returns %o0: status
212 .globl sun4v_get_version
213 .type sun4v_get_version,#function
215 mov HV_CORE_GET_VER, %o5
222 .size sun4v_get_version, .-sun4v_get_version
224 /* %o0: API group number
225 * %o1: desired major number
226 * %o2: desired minor number
227 * %o3: pointer to unsigned long actual minor number storage
229 * returns %o0: status
231 .globl sun4v_set_version
232 .type sun4v_set_version,#function
234 mov HV_CORE_SET_VER, %o5
239 .size sun4v_set_version, .-sun4v_set_version
241 /* %o0: pointer to unsigned long time
243 * returns %o0: status
246 .type sun4v_tod_get,#function
249 mov HV_FAST_TOD_GET, %o5
254 .size sun4v_tod_get, .-sun4v_tod_get
258 * returns %o0: status
261 .type sun4v_tod_set,#function
263 mov HV_FAST_TOD_SET, %o5
267 .size sun4v_tod_set, .-sun4v_tod_set
269 /* %o0: pointer to unsigned long status
271 * returns %o0: signed character
273 .globl sun4v_con_getchar
274 .type sun4v_con_getchar,#function
277 mov HV_FAST_CONS_GETCHAR, %o5
284 .size sun4v_con_getchar, .-sun4v_con_getchar
286 /* %o0: signed long character
288 * returns %o0: status
290 .globl sun4v_con_putchar
291 .type sun4v_con_putchar,#function
293 mov HV_FAST_CONS_PUTCHAR, %o5
297 .size sun4v_con_putchar, .-sun4v_con_putchar
299 /* %o0: buffer real address
301 * %o2: pointer to unsigned long bytes_read
303 * returns %o0: status
305 .globl sun4v_con_read
306 .type sun4v_con_read,#function
309 mov HV_FAST_CONS_READ, %o5
312 cmp %o1, -1 /* break */
315 cmp %o1, -2 /* hup */
321 .size sun4v_con_read, .-sun4v_con_read
323 /* %o0: buffer real address
325 * %o2: pointer to unsigned long bytes_written
327 * returns %o0: status
329 .globl sun4v_con_write
330 .type sun4v_con_write,#function
333 mov HV_FAST_CONS_WRITE, %o5
338 .size sun4v_con_write, .-sun4v_con_write
341 * %o1: address of description string
343 * returns %o0: status
345 .globl 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
352 .size sun4v_mach_set_soft_state, .-sun4v_mach_set_soft_state
358 .globl sun4v_mach_exit
359 .type sun4v_mach_exit,#function
361 mov HV_FAST_MACH_EXIT, %o5
365 .size sun4v_mach_exit, .-sun4v_mach_exit
367 /* %o0: buffer real address
369 * %o2: pointer to unsigned long real_buf_len
371 * returns %o0: status
373 .globl sun4v_mach_desc
374 .type sun4v_mach_desc,#function
377 mov HV_FAST_MACH_DESC, %o5
382 .size sun4v_mach_desc, .-sun4v_mach_desc
384 /* %o0: new timeout in milliseconds
385 * %o1: pointer to unsigned long orig_timeout
387 * returns %o0: status
389 .globl sun4v_mach_set_watchdog
390 .type sun4v_mach_set_watchdog,#function
391 sun4v_mach_set_watchdog:
393 mov HV_FAST_MACH_SET_WATCHDOG, %o5
398 .size sun4v_mach_set_watchdog, .-sun4v_mach_set_watchdog
400 /* No inputs and does not return. */
401 .globl sun4v_mach_sir
402 .type sun4v_mach_sir,#function
405 mov HV_FAST_MACH_SIR, %o5
410 .size sun4v_mach_sir, .-sun4v_mach_sir
416 * returns %o0: status
418 .globl sun4v_ldc_tx_qconf
419 .type sun4v_ldc_tx_qconf,#function
421 mov HV_FAST_LDC_TX_QCONF, %o5
425 .size sun4v_ldc_tx_qconf, .-sun4v_ldc_tx_qconf
428 * %o1: pointer to unsigned long ra
429 * %o2: pointer to unsigned long num_entries
431 * returns %o0: status
433 .globl sun4v_ldc_tx_qinfo
434 .type sun4v_ldc_tx_qinfo,#function
438 mov HV_FAST_LDC_TX_QINFO, %o5
444 .size sun4v_ldc_tx_qinfo, .-sun4v_ldc_tx_qinfo
447 * %o1: pointer to unsigned long head_off
448 * %o2: pointer to unsigned long tail_off
449 * %o2: pointer to unsigned long chan_state
451 * returns %o0: status
453 .globl sun4v_ldc_tx_get_state
454 .type sun4v_ldc_tx_get_state,#function
455 sun4v_ldc_tx_get_state:
459 mov HV_FAST_LDC_TX_GET_STATE, %o5
466 .size sun4v_ldc_tx_get_state, .-sun4v_ldc_tx_get_state
471 * returns %o0: status
473 .globl 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
480 .size sun4v_ldc_tx_set_qtail, .-sun4v_ldc_tx_set_qtail
486 * returns %o0: status
488 .globl sun4v_ldc_rx_qconf
489 .type sun4v_ldc_rx_qconf,#function
491 mov HV_FAST_LDC_RX_QCONF, %o5
495 .size sun4v_ldc_rx_qconf, .-sun4v_ldc_rx_qconf
498 * %o1: pointer to unsigned long ra
499 * %o2: pointer to unsigned long num_entries
501 * returns %o0: status
503 .globl sun4v_ldc_rx_qinfo
504 .type sun4v_ldc_rx_qinfo,#function
508 mov HV_FAST_LDC_RX_QINFO, %o5
514 .size sun4v_ldc_rx_qinfo, .-sun4v_ldc_rx_qinfo
517 * %o1: pointer to unsigned long head_off
518 * %o2: pointer to unsigned long tail_off
519 * %o2: pointer to unsigned long chan_state
521 * returns %o0: status
523 .globl sun4v_ldc_rx_get_state
524 .type sun4v_ldc_rx_get_state,#function
525 sun4v_ldc_rx_get_state:
529 mov HV_FAST_LDC_RX_GET_STATE, %o5
536 .size sun4v_ldc_rx_get_state, .-sun4v_ldc_rx_get_state
541 * returns %o0: status
543 .globl 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
550 .size sun4v_ldc_rx_set_qhead, .-sun4v_ldc_rx_set_qhead
556 * returns %o0: status
558 .globl 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
565 .size sun4v_ldc_set_map_table, .-sun4v_ldc_set_map_table
568 * %o1: pointer to unsigned long ra
569 * %o2: pointer to unsigned long num_entries
571 * returns %o0: status
573 .globl sun4v_ldc_get_map_table
574 .type sun4v_ldc_get_map_table,#function
575 sun4v_ldc_get_map_table:
578 mov HV_FAST_LDC_GET_MAP_TABLE, %o5
584 .size sun4v_ldc_get_map_table, .-sun4v_ldc_get_map_table
591 * %o5: pointer to unsigned long actual_len
593 * returns %o0: status
595 .globl sun4v_ldc_copy
596 .type sun4v_ldc_copy,#function
599 mov HV_FAST_LDC_COPY, %o5
604 .size sun4v_ldc_copy, .-sun4v_ldc_copy
608 * %o2: pointer to unsigned long ra
609 * %o3: pointer to unsigned long perm
611 * returns %o0: status
613 .globl sun4v_ldc_mapin
614 .type sun4v_ldc_mapin,#function
618 mov HV_FAST_LDC_MAPIN, %o5
624 .size sun4v_ldc_mapin, .-sun4v_ldc_mapin
628 * returns %o0: status
630 .globl sun4v_ldc_unmap
631 .type sun4v_ldc_unmap,#function
633 mov HV_FAST_LDC_UNMAP, %o5
637 .size sun4v_ldc_unmap, .-sun4v_ldc_unmap
643 * returns %o0: status
645 .globl sun4v_ldc_revoke
646 .type sun4v_ldc_revoke,#function
648 mov HV_FAST_LDC_REVOKE, %o5
652 .size sun4v_ldc_revoke, .-sun4v_ldc_revoke
654 /* %o0: device handle
656 * %o2: pointer to unsigned long cookie
658 * returns %o0: status
660 .globl sun4v_vintr_get_cookie
661 .type sun4v_vintr_get_cookie,#function
662 sun4v_vintr_get_cookie:
664 mov HV_FAST_VINTR_GET_COOKIE, %o5
669 .size sun4v_vintr_get_cookie, .-sun4v_vintr_get_cookie
671 /* %o0: device handle
675 * returns %o0: status
677 .globl sun4v_vintr_set_cookie
678 .type sun4v_vintr_set_cookie,#function
679 sun4v_vintr_set_cookie:
680 mov HV_FAST_VINTR_SET_COOKIE, %o5
684 .size sun4v_vintr_set_cookie, .-sun4v_vintr_set_cookie
686 /* %o0: device handle
688 * %o2: pointer to unsigned long valid_state
690 * returns %o0: status
692 .globl sun4v_vintr_get_valid
693 .type sun4v_vintr_get_valid,#function
694 sun4v_vintr_get_valid:
696 mov HV_FAST_VINTR_GET_VALID, %o5
701 .size sun4v_vintr_get_valid, .-sun4v_vintr_get_valid
703 /* %o0: device handle
707 * returns %o0: status
709 .globl sun4v_vintr_set_valid
710 .type sun4v_vintr_set_valid,#function
711 sun4v_vintr_set_valid:
712 mov HV_FAST_VINTR_SET_VALID, %o5
716 .size sun4v_vintr_set_valid, .-sun4v_vintr_set_valid
718 /* %o0: device handle
720 * %o2: pointer to unsigned long state
722 * returns %o0: status
724 .globl sun4v_vintr_get_state
725 .type sun4v_vintr_get_state,#function
726 sun4v_vintr_get_state:
728 mov HV_FAST_VINTR_GET_STATE, %o5
733 .size sun4v_vintr_get_state, .-sun4v_vintr_get_state
735 /* %o0: device handle
739 * returns %o0: status
741 .globl sun4v_vintr_set_state
742 .type sun4v_vintr_set_state,#function
743 sun4v_vintr_set_state:
744 mov HV_FAST_VINTR_SET_STATE, %o5
748 .size sun4v_vintr_set_state, .-sun4v_vintr_set_state
750 /* %o0: device handle
752 * %o2: pointer to unsigned long cpuid
754 * returns %o0: status
756 .globl sun4v_vintr_get_target
757 .type sun4v_vintr_get_target,#function
758 sun4v_vintr_get_target:
760 mov HV_FAST_VINTR_GET_TARGET, %o5
765 .size sun4v_vintr_get_target, .-sun4v_vintr_get_target
767 /* %o0: device handle
771 * returns %o0: status
773 .globl sun4v_vintr_set_target
774 .type sun4v_vintr_set_target,#function
775 sun4v_vintr_set_target:
776 mov HV_FAST_VINTR_SET_TARGET, %o5
780 .size sun4v_vintr_set_target, .-sun4v_vintr_set_target
782 /* %o0: NCS sub-function
783 * %o1: sub-function arg real-address
784 * %o2: sub-function arg size
786 * returns %o0: status
788 .globl sun4v_ncs_request
789 .type sun4v_ncs_request,#function
791 mov HV_FAST_NCS_REQUEST, %o5
795 .size sun4v_ncs_request, .-sun4v_ncs_request
797 .globl sun4v_svc_send
798 .type sun4v_svc_send,#function
804 mov HV_FAST_SVC_SEND, %o5
809 .size sun4v_svc_send, .-sun4v_svc_send
811 .globl sun4v_svc_recv
812 .type sun4v_svc_recv,#function
818 mov HV_FAST_SVC_RECV, %o5
823 .size sun4v_svc_recv, .-sun4v_svc_recv
825 .globl sun4v_svc_getstatus
826 .type sun4v_svc_getstatus,#function
828 mov HV_FAST_SVC_GETSTATUS, %o5
834 .size sun4v_svc_getstatus, .-sun4v_svc_getstatus
836 .globl sun4v_svc_setstatus
837 .type sun4v_svc_setstatus,#function
839 mov HV_FAST_SVC_SETSTATUS, %o5
843 .size sun4v_svc_setstatus, .-sun4v_svc_setstatus
845 .globl sun4v_svc_clrstatus
846 .type sun4v_svc_clrstatus,#function
848 mov HV_FAST_SVC_CLRSTATUS, %o5
852 .size sun4v_svc_clrstatus, .-sun4v_svc_clrstatus
854 .globl sun4v_mmustat_conf
855 .type sun4v_mmustat_conf,#function
858 mov HV_FAST_MMUSTAT_CONF, %o5
863 .size sun4v_mmustat_conf, .-sun4v_mmustat_conf
865 .globl sun4v_mmustat_info
866 .type sun4v_mmustat_info,#function
869 mov HV_FAST_MMUSTAT_INFO, %o5
874 .size sun4v_mmustat_info, .-sun4v_mmustat_info
876 .globl sun4v_mmu_demap_all
877 .type sun4v_mmu_demap_all,#function
882 mov HV_FAST_MMU_DEMAP_ALL, %o5
886 .size sun4v_mmu_demap_all, .-sun4v_mmu_demap_all