Print this page
6144 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(size_t),          /* swapout */
 786         SEGKMEM_BADOP(int),             /* sync */
 787         SEGKMEM_BADOP(size_t),          /* incore */
 788         SEGKMEM_BADOP(int),             /* lockop */
 789         SEGKMEM_BADOP(int),             /* getprot */
 790         SEGKMEM_BADOP(u_offset_t),      /* getoffset */
 791         SEGKMEM_BADOP(int),             /* gettype */
 792         SEGKMEM_BADOP(int),             /* getvp */
 793         SEGKMEM_BADOP(int),             /* advise */
 794         segkmem_dump,
 795         segkmem_pagelock,
 796         SEGKMEM_BADOP(int),             /* setpgsz */
 797         segkmem_getmemid,
 798         segkmem_getpolicy,              /* getpolicy */
 799         segkmem_capable,                /* capable */
 800         seg_inherit_notsup              /* inherit */
 801 };
 802 
 803 int
 804 segkmem_zio_create(struct seg *seg)
 805 {
 806         ASSERT(seg->s_as == &kas && RW_WRITE_HELD(&kas.a_lock));
 807         seg->s_ops = &segkmem_ops;
 808         seg->s_data = &zvp;
 809         kas.a_size += seg->s_size;
 810         return (0);
 811 }
 812 
 813 int
 814 segkmem_create(struct seg *seg)
 815 {
 816         ASSERT(seg->s_as == &kas && RW_WRITE_HELD(&kas.a_lock));
 817         seg->s_ops = &segkmem_ops;
 818         seg->s_data = &kvp;
 819         kas.a_size += seg->s_size;
 820         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         .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         .inherit        = seg_inherit_notsup,
 801 };
 802 
 803 int
 804 segkmem_zio_create(struct seg *seg)
 805 {
 806         ASSERT(seg->s_as == &kas && RW_WRITE_HELD(&kas.a_lock));
 807         seg->s_ops = &segkmem_ops;
 808         seg->s_data = &zvp;
 809         kas.a_size += seg->s_size;
 810         return (0);
 811 }
 812 
 813 int
 814 segkmem_create(struct seg *seg)
 815 {
 816         ASSERT(seg->s_as == &kas && RW_WRITE_HELD(&kas.a_lock));
 817         seg->s_ops = &segkmem_ops;
 818         seg->s_data = &kvp;
 819         kas.a_size += seg->s_size;
 820         return (0);