Print this page
6147 segop_getpolicy already checks for a NULL op
Reviewed by: Garrett D'Amore <garrett@damore.org>


 741 static int
 742 segkmem_getmemid(struct seg *seg, caddr_t addr, memid_t *memidp)
 743 {
 744         ASSERT(RW_LOCK_HELD(&seg->s_as->a_lock));
 745 
 746         if (seg->s_as != &kas)
 747                 segkmem_badop();
 748 
 749         /*
 750          * If it is one of segkp pages, call into segkp.
 751          */
 752         if (segkp_bitmap && seg == &kvseg &&
 753             BT_TEST(segkp_bitmap, btop((uintptr_t)(addr - seg->s_base))))
 754                 return (segop_getmemid(segkp, addr, memidp));
 755 
 756         segkmem_badop();
 757         return (0);
 758 }
 759 
 760 /*ARGSUSED*/
 761 static lgrp_mem_policy_info_t *
 762 segkmem_getpolicy(struct seg *seg, caddr_t addr)
 763 {
 764         return (NULL);
 765 }
 766 
 767 /*ARGSUSED*/
 768 static int
 769 segkmem_capable(struct seg *seg, segcapability_t capability)
 770 {
 771         if (capability == S_CAPABILITY_NOMINFLT)
 772                 return (1);
 773         return (0);
 774 }
 775 
 776 static struct seg_ops segkmem_ops = {
 777         .dup            = SEGKMEM_BADOP(int),
 778         .unmap          = SEGKMEM_BADOP(int),
 779         .free           = SEGKMEM_BADOP(void),
 780         .fault          = segkmem_fault,
 781         .faulta         = SEGKMEM_BADOP(faultcode_t),
 782         .setprot        = segkmem_setprot,
 783         .checkprot      = segkmem_checkprot,
 784         .kluster        = segkmem_kluster,
 785         .swapout        = SEGKMEM_BADOP(size_t),
 786         .sync           = SEGKMEM_BADOP(int),
 787         .incore         = SEGKMEM_BADOP(size_t),
 788         .lockop         = SEGKMEM_BADOP(int),
 789         .getprot        = SEGKMEM_BADOP(int),
 790         .getoffset      = SEGKMEM_BADOP(u_offset_t),
 791         .gettype        = SEGKMEM_BADOP(int),
 792         .getvp          = SEGKMEM_BADOP(int),
 793         .advise         = SEGKMEM_BADOP(int),
 794         .dump           = segkmem_dump,
 795         .pagelock       = segkmem_pagelock,
 796         .setpagesize    = SEGKMEM_BADOP(int),
 797         .getmemid       = segkmem_getmemid,
 798         .getpolicy      = segkmem_getpolicy,
 799         .capable        = segkmem_capable,
 800 };
 801 
 802 int
 803 segkmem_zio_create(struct seg *seg)
 804 {
 805         ASSERT(seg->s_as == &kas && RW_WRITE_HELD(&kas.a_lock));
 806         seg->s_ops = &segkmem_ops;
 807         seg->s_data = &zvp;
 808         kas.a_size += seg->s_size;
 809         return (0);
 810 }
 811 
 812 int
 813 segkmem_create(struct seg *seg)
 814 {
 815         ASSERT(seg->s_as == &kas && RW_WRITE_HELD(&kas.a_lock));
 816         seg->s_ops = &segkmem_ops;
 817         seg->s_data = &kvp;
 818         kas.a_size += seg->s_size;




 741 static int
 742 segkmem_getmemid(struct seg *seg, caddr_t addr, memid_t *memidp)
 743 {
 744         ASSERT(RW_LOCK_HELD(&seg->s_as->a_lock));
 745 
 746         if (seg->s_as != &kas)
 747                 segkmem_badop();
 748 
 749         /*
 750          * If it is one of segkp pages, call into segkp.
 751          */
 752         if (segkp_bitmap && seg == &kvseg &&
 753             BT_TEST(segkp_bitmap, btop((uintptr_t)(addr - seg->s_base))))
 754                 return (segop_getmemid(segkp, addr, memidp));
 755 
 756         segkmem_badop();
 757         return (0);
 758 }
 759 
 760 /*ARGSUSED*/







 761 static int
 762 segkmem_capable(struct seg *seg, segcapability_t capability)
 763 {
 764         if (capability == S_CAPABILITY_NOMINFLT)
 765                 return (1);
 766         return (0);
 767 }
 768 
 769 static struct seg_ops segkmem_ops = {
 770         .dup            = SEGKMEM_BADOP(int),
 771         .unmap          = SEGKMEM_BADOP(int),
 772         .free           = SEGKMEM_BADOP(void),
 773         .fault          = segkmem_fault,
 774         .faulta         = SEGKMEM_BADOP(faultcode_t),
 775         .setprot        = segkmem_setprot,
 776         .checkprot      = segkmem_checkprot,
 777         .kluster        = segkmem_kluster,
 778         .swapout        = SEGKMEM_BADOP(size_t),
 779         .sync           = SEGKMEM_BADOP(int),
 780         .incore         = SEGKMEM_BADOP(size_t),
 781         .lockop         = SEGKMEM_BADOP(int),
 782         .getprot        = SEGKMEM_BADOP(int),
 783         .getoffset      = SEGKMEM_BADOP(u_offset_t),
 784         .gettype        = SEGKMEM_BADOP(int),
 785         .getvp          = SEGKMEM_BADOP(int),
 786         .advise         = SEGKMEM_BADOP(int),
 787         .dump           = segkmem_dump,
 788         .pagelock       = segkmem_pagelock,
 789         .setpagesize    = SEGKMEM_BADOP(int),
 790         .getmemid       = segkmem_getmemid,

 791         .capable        = segkmem_capable,
 792 };
 793 
 794 int
 795 segkmem_zio_create(struct seg *seg)
 796 {
 797         ASSERT(seg->s_as == &kas && RW_WRITE_HELD(&kas.a_lock));
 798         seg->s_ops = &segkmem_ops;
 799         seg->s_data = &zvp;
 800         kas.a_size += seg->s_size;
 801         return (0);
 802 }
 803 
 804 int
 805 segkmem_create(struct seg *seg)
 806 {
 807         ASSERT(seg->s_as == &kas && RW_WRITE_HELD(&kas.a_lock));
 808         seg->s_ops = &segkmem_ops;
 809         seg->s_data = &kvp;
 810         kas.a_size += seg->s_size;