Print this page
const-ify make segment ops structures
There is no reason to keep the segment ops structures writable.


 741         /*
 742          * If it is one of segkp pages, call into segkp.
 743          */
 744         if (segkp_bitmap && seg == &kvseg &&
 745             BT_TEST(segkp_bitmap, btop((uintptr_t)(addr - seg->s_base))))
 746                 return (segop_getmemid(segkp, addr, memidp));
 747 
 748         panic("segkmem badop");
 749         return (0);
 750 }
 751 
 752 /*ARGSUSED*/
 753 static int
 754 segkmem_capable(struct seg *seg, segcapability_t capability)
 755 {
 756         if (capability == S_CAPABILITY_NOMINFLT)
 757                 return (1);
 758         return (0);
 759 }
 760 
 761 static struct seg_ops segkmem_ops = {
 762         .fault          = segkmem_fault,
 763         .setprot        = segkmem_setprot,
 764         .checkprot      = segkmem_checkprot,
 765         .kluster        = segkmem_kluster,
 766         .dump           = segkmem_dump,
 767         .pagelock       = segkmem_pagelock,
 768         .getmemid       = segkmem_getmemid,
 769         .capable        = segkmem_capable,
 770 };
 771 
 772 int
 773 segkmem_zio_create(struct seg *seg)
 774 {
 775         ASSERT(seg->s_as == &kas && RW_WRITE_HELD(&kas.a_lock));
 776         seg->s_ops = &segkmem_ops;
 777         seg->s_data = &zvp;
 778         kas.a_size += seg->s_size;
 779         return (0);
 780 }
 781 




 741         /*
 742          * If it is one of segkp pages, call into segkp.
 743          */
 744         if (segkp_bitmap && seg == &kvseg &&
 745             BT_TEST(segkp_bitmap, btop((uintptr_t)(addr - seg->s_base))))
 746                 return (segop_getmemid(segkp, addr, memidp));
 747 
 748         panic("segkmem badop");
 749         return (0);
 750 }
 751 
 752 /*ARGSUSED*/
 753 static int
 754 segkmem_capable(struct seg *seg, segcapability_t capability)
 755 {
 756         if (capability == S_CAPABILITY_NOMINFLT)
 757                 return (1);
 758         return (0);
 759 }
 760 
 761 static const struct seg_ops segkmem_ops = {
 762         .fault          = segkmem_fault,
 763         .setprot        = segkmem_setprot,
 764         .checkprot      = segkmem_checkprot,
 765         .kluster        = segkmem_kluster,
 766         .dump           = segkmem_dump,
 767         .pagelock       = segkmem_pagelock,
 768         .getmemid       = segkmem_getmemid,
 769         .capable        = segkmem_capable,
 770 };
 771 
 772 int
 773 segkmem_zio_create(struct seg *seg)
 774 {
 775         ASSERT(seg->s_as == &kas && RW_WRITE_HELD(&kas.a_lock));
 776         seg->s_ops = &segkmem_ops;
 777         seg->s_data = &zvp;
 778         kas.a_size += seg->s_size;
 779         return (0);
 780 }
 781