Print this page
patch lower-case-segops

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/vm/seg_kmem.c
          +++ new/usr/src/uts/common/vm/seg_kmem.c
↓ open down ↓ 449 lines elided ↑ open up ↑
 450  450  
 451  451          if (seg->s_as != &kas || size > seg->s_size ||
 452  452              addr < seg->s_base || addr + size > seg->s_base + seg->s_size)
 453  453                  panic("segkmem_fault: bad args");
 454  454  
 455  455          /*
 456  456           * If it is one of segkp pages, call segkp_fault.
 457  457           */
 458  458          if (segkp_bitmap && seg == &kvseg &&
 459  459              BT_TEST(segkp_bitmap, btop((uintptr_t)(addr - seg->s_base))))
 460      -                return (SEGOP_FAULT(hat, segkp, addr, size, type, rw));
      460 +                return (segop_fault(hat, segkp, addr, size, type, rw));
 461  461  
 462  462          if (rw != S_READ && rw != S_WRITE && rw != S_OTHER)
 463  463                  return (FC_NOSUPPORT);
 464  464  
 465  465          npages = btopr(size);
 466  466  
 467  467          switch (type) {
 468  468          case F_SOFTLOCK:        /* lock down already-loaded translations */
 469  469                  for (pg = 0; pg < npages; pg++) {
 470  470                          pp = page_lookup(vp, (u_offset_t)(uintptr_t)addr,
↓ open down ↓ 41 lines elided ↑ open up ↑
 512  512  
 513  513          if (seg->s_as != &kas || size > seg->s_size ||
 514  514              addr < seg->s_base || addr + size > seg->s_base + seg->s_size)
 515  515                  panic("segkmem_setprot: bad args");
 516  516  
 517  517          /*
 518  518           * If it is one of segkp pages, call segkp.
 519  519           */
 520  520          if (segkp_bitmap && seg == &kvseg &&
 521  521              BT_TEST(segkp_bitmap, btop((uintptr_t)(addr - seg->s_base))))
 522      -                return (SEGOP_SETPROT(segkp, addr, size, prot));
      522 +                return (segop_setprot(segkp, addr, size, prot));
 523  523  
 524  524          if (prot == 0)
 525  525                  hat_unload(kas.a_hat, addr, size, HAT_UNLOAD);
 526  526          else
 527  527                  hat_chgprot(kas.a_hat, addr, size, prot);
 528  528          return (0);
 529  529  }
 530  530  
 531  531  /*
 532  532   * This is a dummy segkmem function overloaded to call segkp
↓ open down ↓ 6 lines elided ↑ open up ↑
 539  539          ASSERT(RW_LOCK_HELD(&seg->s_as->a_lock));
 540  540  
 541  541          if (seg->s_as != &kas)
 542  542                  segkmem_badop();
 543  543  
 544  544          /*
 545  545           * If it is one of segkp pages, call into segkp.
 546  546           */
 547  547          if (segkp_bitmap && seg == &kvseg &&
 548  548              BT_TEST(segkp_bitmap, btop((uintptr_t)(addr - seg->s_base))))
 549      -                return (SEGOP_CHECKPROT(segkp, addr, size, prot));
      549 +                return (segop_checkprot(segkp, addr, size, prot));
 550  550  
 551  551          segkmem_badop();
 552  552          return (0);
 553  553  }
 554  554  
 555  555  /*
 556  556   * This is a dummy segkmem function overloaded to call segkp
 557  557   * when segkp is under the heap.
 558  558   */
 559  559  /* ARGSUSED */
↓ open down ↓ 3 lines elided ↑ open up ↑
 563  563          ASSERT(RW_LOCK_HELD(&seg->s_as->a_lock));
 564  564  
 565  565          if (seg->s_as != &kas)
 566  566                  segkmem_badop();
 567  567  
 568  568          /*
 569  569           * If it is one of segkp pages, call into segkp.
 570  570           */
 571  571          if (segkp_bitmap && seg == &kvseg &&
 572  572              BT_TEST(segkp_bitmap, btop((uintptr_t)(addr - seg->s_base))))
 573      -                return (SEGOP_KLUSTER(segkp, addr, delta));
      573 +                return (segop_kluster(segkp, addr, delta));
 574  574  
 575  575          segkmem_badop();
 576  576          return (0);
 577  577  }
 578  578  
 579  579  static void
 580  580  segkmem_xdump_range(void *arg, void *start, size_t size)
 581  581  {
 582  582          struct as *as = arg;
 583  583          caddr_t addr = start;
↓ open down ↓ 100 lines elided ↑ open up ↑
 684  684          size_t nb;
 685  685          struct vnode *vp = seg->s_data;
 686  686  
 687  687          ASSERT(ppp != NULL);
 688  688  
 689  689          /*
 690  690           * If it is one of segkp pages, call into segkp.
 691  691           */
 692  692          if (segkp_bitmap && seg == &kvseg &&
 693  693              BT_TEST(segkp_bitmap, btop((uintptr_t)(addr - seg->s_base))))
 694      -                return (SEGOP_PAGELOCK(segkp, addr, len, ppp, type, rw));
      694 +                return (segop_pagelock(segkp, addr, len, ppp, type, rw));
 695  695  
 696  696          npages = btopr(len);
 697  697          nb = sizeof (page_t *) * npages;
 698  698  
 699  699          if (type == L_PAGEUNLOCK) {
 700  700                  pplist = *ppp;
 701  701                  ASSERT(pplist != NULL);
 702  702  
 703  703                  for (pg = 0; pg < npages; pg++) {
 704  704                          pp = pplist[pg];
↓ open down ↓ 39 lines elided ↑ open up ↑
 744  744          ASSERT(RW_LOCK_HELD(&seg->s_as->a_lock));
 745  745  
 746  746          if (seg->s_as != &kas)
 747  747                  segkmem_badop();
 748  748  
 749  749          /*
 750  750           * If it is one of segkp pages, call into segkp.
 751  751           */
 752  752          if (segkp_bitmap && seg == &kvseg &&
 753  753              BT_TEST(segkp_bitmap, btop((uintptr_t)(addr - seg->s_base))))
 754      -                return (SEGOP_GETMEMID(segkp, addr, memidp));
      754 +                return (segop_getmemid(segkp, addr, memidp));
 755  755  
 756  756          segkmem_badop();
 757  757          return (0);
 758  758  }
 759  759  
 760  760  /*ARGSUSED*/
 761  761  static lgrp_mem_policy_info_t *
 762  762  segkmem_getpolicy(struct seg *seg, caddr_t addr)
 763  763  {
 764  764          return (NULL);
↓ open down ↓ 880 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX