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