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);
|