Print this page
use NULL setpagesize segop as a shorthand for ENOTSUP
Instead of forcing every segment driver to implement a dummp function to
return (hopefully) ENOTSUP, handle NULL setpagesize segop function pointer
as "return ENOTSUP" shorthand.


1989 void
1990 segop_dump(struct seg *seg)
1991 {
1992         VERIFY3P(seg->s_ops->dump, !=, NULL);
1993 
1994         seg->s_ops->dump(seg);
1995 }
1996 
1997 int
1998 segop_pagelock(struct seg *seg, caddr_t addr, size_t len, struct page ***page,
1999     enum lock_type type, enum seg_rw rw)
2000 {
2001         VERIFY3P(seg->s_ops->pagelock, !=, NULL);
2002 
2003         return (seg->s_ops->pagelock(seg, addr, len, page, type, rw));
2004 }
2005 
2006 int
2007 segop_setpagesize(struct seg *seg, caddr_t addr, size_t len, uint_t szc)
2008 {
2009         VERIFY3P(seg->s_ops->setpagesize, !=, NULL);

2010 
2011         return (seg->s_ops->setpagesize(seg, addr, len, szc));
2012 }
2013 
2014 int
2015 segop_getmemid(struct seg *seg, caddr_t addr, memid_t *mp)
2016 {
2017         if (seg->s_ops->getmemid == NULL)
2018                 return (ENODEV);
2019 
2020         return (seg->s_ops->getmemid(seg, addr, mp));
2021 }
2022 
2023 struct lgrp_mem_policy_info *
2024 segop_getpolicy(struct seg *seg, caddr_t addr)
2025 {
2026         if (seg->s_ops->getpolicy == NULL)
2027                 return (NULL);
2028 
2029         return (seg->s_ops->getpolicy(seg, addr));


1989 void
1990 segop_dump(struct seg *seg)
1991 {
1992         VERIFY3P(seg->s_ops->dump, !=, NULL);
1993 
1994         seg->s_ops->dump(seg);
1995 }
1996 
1997 int
1998 segop_pagelock(struct seg *seg, caddr_t addr, size_t len, struct page ***page,
1999     enum lock_type type, enum seg_rw rw)
2000 {
2001         VERIFY3P(seg->s_ops->pagelock, !=, NULL);
2002 
2003         return (seg->s_ops->pagelock(seg, addr, len, page, type, rw));
2004 }
2005 
2006 int
2007 segop_setpagesize(struct seg *seg, caddr_t addr, size_t len, uint_t szc)
2008 {
2009         if (seg->s_ops->setpagesize == NULL)
2010                 return (ENOTSUP);
2011 
2012         return (seg->s_ops->setpagesize(seg, addr, len, szc));
2013 }
2014 
2015 int
2016 segop_getmemid(struct seg *seg, caddr_t addr, memid_t *mp)
2017 {
2018         if (seg->s_ops->getmemid == NULL)
2019                 return (ENODEV);
2020 
2021         return (seg->s_ops->getmemid(seg, addr, mp));
2022 }
2023 
2024 struct lgrp_mem_policy_info *
2025 segop_getpolicy(struct seg *seg, caddr_t addr)
2026 {
2027         if (seg->s_ops->getpolicy == NULL)
2028                 return (NULL);
2029 
2030         return (seg->s_ops->getpolicy(seg, addr));