Print this page
use C99 initializers in segment ops structures


 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         SEGKMEM_BADOP(int),             /* dup */
 778         SEGKMEM_BADOP(int),             /* unmap */
 779         SEGKMEM_BADOP(void),            /* free */
 780         segkmem_fault,
 781         SEGKMEM_BADOP(faultcode_t),     /* faulta */
 782         segkmem_setprot,
 783         segkmem_checkprot,
 784         segkmem_kluster,
 785         SEGKMEM_BADOP(int),             /* sync */
 786         SEGKMEM_BADOP(size_t),          /* incore */
 787         SEGKMEM_BADOP(int),             /* lockop */
 788         SEGKMEM_BADOP(int),             /* getprot */
 789         SEGKMEM_BADOP(u_offset_t),      /* getoffset */
 790         SEGKMEM_BADOP(int),             /* gettype */
 791         SEGKMEM_BADOP(int),             /* getvp */
 792         SEGKMEM_BADOP(int),             /* advise */
 793         segkmem_dump,
 794         segkmem_pagelock,
 795         SEGKMEM_BADOP(int),             /* setpgsz */
 796         segkmem_getmemid,
 797         segkmem_getpolicy,              /* getpolicy */
 798         segkmem_capable,                /* capable */
 799         seg_inherit_notsup              /* inherit */
 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;
 819         return (0);




 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         .sync           = SEGKMEM_BADOP(int),
 786         .incore         = SEGKMEM_BADOP(size_t),
 787         .lockop         = SEGKMEM_BADOP(int),
 788         .getprot        = SEGKMEM_BADOP(int),
 789         .getoffset      = SEGKMEM_BADOP(u_offset_t),
 790         .gettype        = SEGKMEM_BADOP(int),
 791         .getvp          = SEGKMEM_BADOP(int),
 792         .advise         = SEGKMEM_BADOP(int),
 793         .dump           = segkmem_dump,
 794         .pagelock       = segkmem_pagelock,
 795         .setpagesize    = SEGKMEM_BADOP(int),
 796         .getmemid       = segkmem_getmemid,
 797         .getpolicy      = segkmem_getpolicy,
 798         .capable        = segkmem_capable,
 799         .inherit        = seg_inherit_notsup,
 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;
 819         return (0);