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