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) 346EXPORT_SYMBOL(sun4v_mach_set_watchdog) 347 348 /* No inputs and does not return. */ 349ENTRY(sun4v_mach_sir) 350 mov %o1, %o4 351 mov HV_FAST_MACH_SIR, %o5 352 ta HV_FAST_TRAP 353 stx %o1, [%o4] 354 retl 355 nop 356ENDPROC(sun4v_mach_sir) 357 358 /* %o0: channel 359 * %o1: ra 360 * %o2: num_entries 361 * 362 * returns %o0: status 363 */ 364ENTRY(sun4v_ldc_tx_qconf) 365 mov HV_FAST_LDC_TX_QCONF, %o5 366 ta HV_FAST_TRAP 367 retl 368 nop 369ENDPROC(sun4v_ldc_tx_qconf) 370 371 /* %o0: channel 372 * %o1: pointer to unsigned long ra 373 * %o2: pointer to unsigned long num_entries 374 * 375 * returns %o0: status 376 */ 377ENTRY(sun4v_ldc_tx_qinfo) 378 mov %o1, %g1 379 mov %o2, %g2 380 mov HV_FAST_LDC_TX_QINFO, %o5 381 ta HV_FAST_TRAP 382 stx %o1, [%g1] 383 stx %o2, [%g2] 384 retl 385 nop 386ENDPROC(sun4v_ldc_tx_qinfo) 387 388 /* %o0: channel 389 * %o1: pointer to unsigned long head_off 390 * %o2: pointer to unsigned long tail_off 391 * %o2: pointer to unsigned long chan_state 392 * 393 * returns %o0: status 394 */ 395ENTRY(sun4v_ldc_tx_get_state) 396 mov %o1, %g1 397 mov %o2, %g2 398 mov %o3, %g3 399 mov HV_FAST_LDC_TX_GET_STATE, %o5 400 ta HV_FAST_TRAP 401 stx %o1, [%g1] 402 stx %o2, [%g2] 403 stx %o3, [%g3] 404 retl 405 nop 406ENDPROC(sun4v_ldc_tx_get_state) 407 408 /* %o0: channel 409 * %o1: tail_off 410 * 411 * returns %o0: status 412 */ 413ENTRY(sun4v_ldc_tx_set_qtail) 414 mov HV_FAST_LDC_TX_SET_QTAIL, %o5 415 ta HV_FAST_TRAP 416 retl 417 nop 418ENDPROC(sun4v_ldc_tx_set_qtail) 419 420 /* %o0: channel 421 * %o1: ra 422 * %o2: num_entries 423 * 424 * returns %o0: status 425 */ 426ENTRY(sun4v_ldc_rx_qconf) 427 mov HV_FAST_LDC_RX_QCONF, %o5 428 ta HV_FAST_TRAP 429 retl 430 nop 431ENDPROC(sun4v_ldc_rx_qconf) 432 433 /* %o0: channel 434 * %o1: pointer to unsigned long ra 435 * %o2: pointer to unsigned long num_entries 436 * 437 * returns %o0: status 438 */ 439ENTRY(sun4v_ldc_rx_qinfo) 440 mov %o1, %g1 441 mov %o2, %g2 442 mov HV_FAST_LDC_RX_QINFO, %o5 443 ta HV_FAST_TRAP 444 stx %o1, [%g1] 445 stx %o2, [%g2] 446 retl 447 nop 448ENDPROC(sun4v_ldc_rx_qinfo) 449 450 /* %o0: channel 451 * %o1: pointer to unsigned long head_off 452 * %o2: pointer to unsigned long tail_off 453 * %o2: pointer to unsigned long chan_state 454 * 455 * returns %o0: status 456 */ 457ENTRY(sun4v_ldc_rx_get_state) 458 mov %o1, %g1 459 mov %o2, %g2 460 mov %o3, %g3 461 mov HV_FAST_LDC_RX_GET_STATE, %o5 462 ta HV_FAST_TRAP 463 stx %o1, [%g1] 464 stx %o2, [%g2] 465 stx %o3, [%g3] 466 retl 467 nop 468ENDPROC(sun4v_ldc_rx_get_state) 469 470 /* %o0: channel 471 * %o1: head_off 472 * 473 * returns %o0: status 474 */ 475ENTRY(sun4v_ldc_rx_set_qhead) 476 mov HV_FAST_LDC_RX_SET_QHEAD, %o5 477 ta HV_FAST_TRAP 478 retl 479 nop 480ENDPROC(sun4v_ldc_rx_set_qhead) 481 482 /* %o0: channel 483 * %o1: ra 484 * %o2: num_entries 485 * 486 * returns %o0: status 487 */ 488ENTRY(sun4v_ldc_set_map_table) 489 mov HV_FAST_LDC_SET_MAP_TABLE, %o5 490 ta HV_FAST_TRAP 491 retl 492 nop 493ENDPROC(sun4v_ldc_set_map_table) 494 495 /* %o0: channel 496 * %o1: pointer to unsigned long ra 497 * %o2: pointer to unsigned long num_entries 498 * 499 * returns %o0: status 500 */ 501ENTRY(sun4v_ldc_get_map_table) 502 mov %o1, %g1 503 mov %o2, %g2 504 mov HV_FAST_LDC_GET_MAP_TABLE, %o5 505 ta HV_FAST_TRAP 506 stx %o1, [%g1] 507 stx %o2, [%g2] 508 retl 509 nop 510ENDPROC(sun4v_ldc_get_map_table) 511 512 /* %o0: channel 513 * %o1: dir_code 514 * %o2: tgt_raddr 515 * %o3: lcl_raddr 516 * %o4: len 517 * %o5: pointer to unsigned long actual_len 518 * 519 * returns %o0: status 520 */ 521ENTRY(sun4v_ldc_copy) 522 mov %o5, %g1 523 mov HV_FAST_LDC_COPY, %o5 524 ta HV_FAST_TRAP 525 stx %o1, [%g1] 526 retl 527 nop 528ENDPROC(sun4v_ldc_copy) 529 530 /* %o0: channel 531 * %o1: cookie 532 * %o2: pointer to unsigned long ra 533 * %o3: pointer to unsigned long perm 534 * 535 * returns %o0: status 536 */ 537ENTRY(sun4v_ldc_mapin) 538 mov %o2, %g1 539 mov %o3, %g2 540 mov HV_FAST_LDC_MAPIN, %o5 541 ta HV_FAST_TRAP 542 stx %o1, [%g1] 543 stx %o2, [%g2] 544 retl 545 nop 546ENDPROC(sun4v_ldc_mapin) 547 548 /* %o0: ra 549 * 550 * returns %o0: status 551 */ 552ENTRY(sun4v_ldc_unmap) 553 mov HV_FAST_LDC_UNMAP, %o5 554 ta HV_FAST_TRAP 555 retl 556 nop 557ENDPROC(sun4v_ldc_unmap) 558 559 /* %o0: channel 560 * %o1: cookie 561 * %o2: mte_cookie 562 * 563 * returns %o0: status 564 */ 565ENTRY(sun4v_ldc_revoke) 566 mov HV_FAST_LDC_REVOKE, %o5 567 ta HV_FAST_TRAP 568 retl 569 nop 570ENDPROC(sun4v_ldc_revoke) 571 572 /* %o0: device handle 573 * %o1: device INO 574 * %o2: pointer to unsigned long cookie 575 * 576 * returns %o0: status 577 */ 578ENTRY(sun4v_vintr_get_cookie) 579 mov %o2, %g1 580 mov HV_FAST_VINTR_GET_COOKIE, %o5 581 ta HV_FAST_TRAP 582 stx %o1, [%g1] 583 retl 584 nop 585ENDPROC(sun4v_vintr_get_cookie) 586 587 /* %o0: device handle 588 * %o1: device INO 589 * %o2: cookie 590 * 591 * returns %o0: status 592 */ 593ENTRY(sun4v_vintr_set_cookie) 594 mov HV_FAST_VINTR_SET_COOKIE, %o5 595 ta HV_FAST_TRAP 596 retl 597 nop 598ENDPROC(sun4v_vintr_set_cookie) 599 600 /* %o0: device handle 601 * %o1: device INO 602 * %o2: pointer to unsigned long valid_state 603 * 604 * returns %o0: status 605 */ 606ENTRY(sun4v_vintr_get_valid) 607 mov %o2, %g1 608 mov HV_FAST_VINTR_GET_VALID, %o5 609 ta HV_FAST_TRAP 610 stx %o1, [%g1] 611 retl 612 nop 613ENDPROC(sun4v_vintr_get_valid) 614 615 /* %o0: device handle 616 * %o1: device INO 617 * %o2: valid_state 618 * 619 * returns %o0: status 620 */ 621ENTRY(sun4v_vintr_set_valid) 622 mov HV_FAST_VINTR_SET_VALID, %o5 623 ta HV_FAST_TRAP 624 retl 625 nop 626ENDPROC(sun4v_vintr_set_valid) 627 628 /* %o0: device handle 629 * %o1: device INO 630 * %o2: pointer to unsigned long state 631 * 632 * returns %o0: status 633 */ 634ENTRY(sun4v_vintr_get_state) 635 mov %o2, %g1 636 mov HV_FAST_VINTR_GET_STATE, %o5 637 ta HV_FAST_TRAP 638 stx %o1, [%g1] 639 retl 640 nop 641ENDPROC(sun4v_vintr_get_state) 642 643 /* %o0: device handle 644 * %o1: device INO 645 * %o2: state 646 * 647 * returns %o0: status 648 */ 649ENTRY(sun4v_vintr_set_state) 650 mov HV_FAST_VINTR_SET_STATE, %o5 651 ta HV_FAST_TRAP 652 retl 653 nop 654ENDPROC(sun4v_vintr_set_state) 655 656 /* %o0: device handle 657 * %o1: device INO 658 * %o2: pointer to unsigned long cpuid 659 * 660 * returns %o0: status 661 */ 662ENTRY(sun4v_vintr_get_target) 663 mov %o2, %g1 664 mov HV_FAST_VINTR_GET_TARGET, %o5 665 ta HV_FAST_TRAP 666 stx %o1, [%g1] 667 retl 668 nop 669ENDPROC(sun4v_vintr_get_target) 670 671 /* %o0: device handle 672 * %o1: device INO 673 * %o2: cpuid 674 * 675 * returns %o0: status 676 */ 677ENTRY(sun4v_vintr_set_target) 678 mov HV_FAST_VINTR_SET_TARGET, %o5 679 ta HV_FAST_TRAP 680 retl 681 nop 682ENDPROC(sun4v_vintr_set_target) 683 684 /* %o0: NCS sub-function 685 * %o1: sub-function arg real-address 686 * %o2: sub-function arg size 687 * 688 * returns %o0: status 689 */ 690ENTRY(sun4v_ncs_request) 691 mov HV_FAST_NCS_REQUEST, %o5 692 ta HV_FAST_TRAP 693 retl 694 nop 695ENDPROC(sun4v_ncs_request) 696 697ENTRY(sun4v_svc_send) 698 save %sp, -192, %sp 699 mov %i0, %o0 700 mov %i1, %o1 701 mov %i2, %o2 702 mov HV_FAST_SVC_SEND, %o5 703 ta HV_FAST_TRAP 704 stx %o1, [%i3] 705 ret 706 restore 707ENDPROC(sun4v_svc_send) 708 709ENTRY(sun4v_svc_recv) 710 save %sp, -192, %sp 711 mov %i0, %o0 712 mov %i1, %o1 713 mov %i2, %o2 714 mov HV_FAST_SVC_RECV, %o5 715 ta HV_FAST_TRAP 716 stx %o1, [%i3] 717 ret 718 restore 719ENDPROC(sun4v_svc_recv) 720 721ENTRY(sun4v_svc_getstatus) 722 mov HV_FAST_SVC_GETSTATUS, %o5 723 mov %o1, %o4 724 ta HV_FAST_TRAP 725 stx %o1, [%o4] 726 retl 727 nop 728ENDPROC(sun4v_svc_getstatus) 729 730ENTRY(sun4v_svc_setstatus) 731 mov HV_FAST_SVC_SETSTATUS, %o5 732 ta HV_FAST_TRAP 733 retl 734 nop 735ENDPROC(sun4v_svc_setstatus) 736 737ENTRY(sun4v_svc_clrstatus) 738 mov HV_FAST_SVC_CLRSTATUS, %o5 739 ta HV_FAST_TRAP 740 retl 741 nop 742ENDPROC(sun4v_svc_clrstatus) 743 744ENTRY(sun4v_mmustat_conf) 745 mov %o1, %o4 746 mov HV_FAST_MMUSTAT_CONF, %o5 747 ta HV_FAST_TRAP 748 stx %o1, [%o4] 749 retl 750 nop 751ENDPROC(sun4v_mmustat_conf) 752 753ENTRY(sun4v_mmustat_info) 754 mov %o0, %o4 755 mov HV_FAST_MMUSTAT_INFO, %o5 756 ta HV_FAST_TRAP 757 stx %o1, [%o4] 758 retl 759 nop 760ENDPROC(sun4v_mmustat_info) 761 762ENTRY(sun4v_mmu_demap_all) 763 clr %o0 764 clr %o1 765 mov HV_MMU_ALL, %o2 766 mov HV_FAST_MMU_DEMAP_ALL, %o5 767 ta HV_FAST_TRAP 768 retl 769 nop 770ENDPROC(sun4v_mmu_demap_all) 771 772ENTRY(sun4v_niagara_getperf) 773 mov %o0, %o4 774 mov HV_FAST_GET_PERFREG, %o5 775 ta HV_FAST_TRAP 776 stx %o1, [%o4] 777 retl 778 nop 779ENDPROC(sun4v_niagara_getperf) 780EXPORT_SYMBOL(sun4v_niagara_getperf) 781 782ENTRY(sun4v_niagara_setperf) 783 mov HV_FAST_SET_PERFREG, %o5 784 ta HV_FAST_TRAP 785 retl 786 nop 787ENDPROC(sun4v_niagara_setperf) 788EXPORT_SYMBOL(sun4v_niagara_setperf) 789 790ENTRY(sun4v_niagara2_getperf) 791 mov %o0, %o4 792 mov HV_FAST_N2_GET_PERFREG, %o5 793 ta HV_FAST_TRAP 794 stx %o1, [%o4] 795 retl 796 nop 797ENDPROC(sun4v_niagara2_getperf) 798EXPORT_SYMBOL(sun4v_niagara2_getperf) 799 800ENTRY(sun4v_niagara2_setperf) 801 mov HV_FAST_N2_SET_PERFREG, %o5 802 ta HV_FAST_TRAP 803 retl 804 nop 805ENDPROC(sun4v_niagara2_setperf) 806EXPORT_SYMBOL(sun4v_niagara2_setperf) 807 808ENTRY(sun4v_reboot_data_set) 809 mov HV_FAST_REBOOT_DATA_SET, %o5 810 ta HV_FAST_TRAP 811 retl 812 nop 813ENDPROC(sun4v_reboot_data_set) 814 815ENTRY(sun4v_vt_get_perfreg) 816 mov %o1, %o4 817 mov HV_FAST_VT_GET_PERFREG, %o5 818 ta HV_FAST_TRAP 819 stx %o1, [%o4] 820 retl 821 nop 822ENDPROC(sun4v_vt_get_perfreg) 823 824ENTRY(sun4v_vt_set_perfreg) 825 mov HV_FAST_VT_SET_PERFREG, %o5 826 ta HV_FAST_TRAP 827 retl 828 nop 829ENDPROC(sun4v_vt_set_perfreg) 830 831ENTRY(sun4v_t5_get_perfreg) 832 mov %o1, %o4 833 mov HV_FAST_T5_GET_PERFREG, %o5 834 ta HV_FAST_TRAP 835 stx %o1, [%o4] 836 retl 837 nop 838ENDPROC(sun4v_t5_get_perfreg) 839 840ENTRY(sun4v_t5_set_perfreg) 841 mov HV_FAST_T5_SET_PERFREG, %o5 842 ta HV_FAST_TRAP 843 retl 844 nop 845ENDPROC(sun4v_t5_set_perfreg) 846 847ENTRY(sun4v_m7_get_perfreg) 848 mov %o1, %o4 849 mov HV_FAST_M7_GET_PERFREG, %o5 850 ta HV_FAST_TRAP 851 stx %o1, [%o4] 852 retl 853 nop 854ENDPROC(sun4v_m7_get_perfreg) 855 856ENTRY(sun4v_m7_set_perfreg) 857 mov HV_FAST_M7_SET_PERFREG, %o5 858 ta HV_FAST_TRAP 859 retl 860 nop 861ENDPROC(sun4v_m7_set_perfreg) 862