1845 struct segvn_data *svd;
1846 size_t swap = 0;
1847
1848 if (seg->s_ops == &segvn_ops) {
1849 svd = (struct segvn_data *)seg->s_data;
1850 if (svd->type == MAP_PRIVATE && svd->swresv > 0)
1851 swap = svd->swresv;
1852 }
1853 return (swap);
1854 }
1855
1856 /*
1857 * General not supported function for SEGOP_INHERIT
1858 */
1859 /* ARGSUSED */
1860 int
1861 seg_inherit_notsup(struct seg *seg, caddr_t addr, size_t len, uint_t op)
1862 {
1863 return (ENOTSUP);
1864 }
|
1845 struct segvn_data *svd;
1846 size_t swap = 0;
1847
1848 if (seg->s_ops == &segvn_ops) {
1849 svd = (struct segvn_data *)seg->s_data;
1850 if (svd->type == MAP_PRIVATE && svd->swresv > 0)
1851 swap = svd->swresv;
1852 }
1853 return (swap);
1854 }
1855
1856 /*
1857 * General not supported function for SEGOP_INHERIT
1858 */
1859 /* ARGSUSED */
1860 int
1861 seg_inherit_notsup(struct seg *seg, caddr_t addr, size_t len, uint_t op)
1862 {
1863 return (ENOTSUP);
1864 }
1865
1866 /*
1867 * segop wrappers
1868 */
1869 int
1870 segop_dup(struct seg *seg, struct seg *new)
1871 {
1872 VERIFY3P(seg->s_ops->dup, !=, NULL);
1873
1874 return (seg->s_ops->dup(seg, new));
1875 }
1876
1877 int
1878 segop_unmap(struct seg *seg, caddr_t addr, size_t len)
1879 {
1880 VERIFY3P(seg->s_ops->unmap, !=, NULL);
1881
1882 return (seg->s_ops->unmap(seg, addr, len));
1883 }
1884
1885 void
1886 segop_free(struct seg *seg)
1887 {
1888 VERIFY3P(seg->s_ops->free, !=, NULL);
1889
1890 seg->s_ops->free(seg);
1891 }
1892
1893 faultcode_t
1894 segop_fault(struct hat *hat, struct seg *seg, caddr_t addr, size_t len,
1895 enum fault_type type, enum seg_rw rw)
1896 {
1897 VERIFY3P(seg->s_ops->fault, !=, NULL);
1898
1899 return (seg->s_ops->fault(hat, seg, addr, len, type, rw));
1900 }
1901
1902 faultcode_t
1903 segop_faulta(struct seg *seg, caddr_t addr)
1904 {
1905 VERIFY3P(seg->s_ops->faulta, !=, NULL);
1906
1907 return (seg->s_ops->faulta(seg, addr));
1908 }
1909
1910 int
1911 segop_setprot(struct seg *seg, caddr_t addr, size_t len, uint_t prot)
1912 {
1913 VERIFY3P(seg->s_ops->setprot, !=, NULL);
1914
1915 return (seg->s_ops->setprot(seg, addr, len, prot));
1916 }
1917
1918 int
1919 segop_checkprot(struct seg *seg, caddr_t addr, size_t len, uint_t prot)
1920 {
1921 VERIFY3P(seg->s_ops->checkprot, !=, NULL);
1922
1923 return (seg->s_ops->checkprot(seg, addr, len, prot));
1924 }
1925
1926 int
1927 segop_kluster(struct seg *seg, caddr_t addr, ssize_t d)
1928 {
1929 VERIFY3P(seg->s_ops->kluster, !=, NULL);
1930
1931 return (seg->s_ops->kluster(seg, addr, d));
1932 }
1933
1934 int
1935 segop_sync(struct seg *seg, caddr_t addr, size_t len, int atr, uint_t f)
1936 {
1937 VERIFY3P(seg->s_ops->sync, !=, NULL);
1938
1939 return (seg->s_ops->sync(seg, addr, len, atr, f));
1940 }
1941
1942 size_t
1943 segop_incore(struct seg *seg, caddr_t addr, size_t len, char *v)
1944 {
1945 VERIFY3P(seg->s_ops->incore, !=, NULL);
1946
1947 return (seg->s_ops->incore(seg, addr, len, v));
1948 }
1949
1950 int
1951 segop_lockop(struct seg *seg, caddr_t addr, size_t len, int atr, int op,
1952 ulong_t *b, size_t p)
1953 {
1954 VERIFY3P(seg->s_ops->lockop, !=, NULL);
1955
1956 return (seg->s_ops->lockop(seg, addr, len, atr, op, b, p));
1957 }
1958
1959 int
1960 segop_getprot(struct seg *seg, caddr_t addr, size_t len, uint_t *p)
1961 {
1962 VERIFY3P(seg->s_ops->getprot, !=, NULL);
1963
1964 return (seg->s_ops->getprot(seg, addr, len, p));
1965 }
1966
1967 u_offset_t
1968 segop_getoffset(struct seg *seg, caddr_t addr)
1969 {
1970 VERIFY3P(seg->s_ops->getoffset, !=, NULL);
1971
1972 return (seg->s_ops->getoffset(seg, addr));
1973 }
1974
1975 int
1976 segop_gettype(struct seg *seg, caddr_t addr)
1977 {
1978 VERIFY3P(seg->s_ops->gettype, !=, NULL);
1979
1980 return (seg->s_ops->gettype(seg, addr));
1981 }
1982
1983 int
1984 segop_getvp(struct seg *seg, caddr_t addr, struct vnode **vpp)
1985 {
1986 VERIFY3P(seg->s_ops->getvp, !=, NULL);
1987
1988 return (seg->s_ops->getvp(seg, addr, vpp));
1989 }
1990
1991 int
1992 segop_advise(struct seg *seg, caddr_t addr, size_t len, uint_t b)
1993 {
1994 VERIFY3P(seg->s_ops->advise, !=, NULL);
1995
1996 return (seg->s_ops->advise(seg, addr, len, b));
1997 }
1998
1999 void
2000 segop_dump(struct seg *seg)
2001 {
2002 VERIFY3P(seg->s_ops->dump, !=, NULL);
2003
2004 seg->s_ops->dump(seg);
2005 }
2006
2007 int
2008 segop_pagelock(struct seg *seg, caddr_t addr, size_t len, struct page ***page,
2009 enum lock_type type, enum seg_rw rw)
2010 {
2011 VERIFY3P(seg->s_ops->pagelock, !=, NULL);
2012
2013 return (seg->s_ops->pagelock(seg, addr, len, page, type, rw));
2014 }
2015
2016 int
2017 segop_setpagesize(struct seg *seg, caddr_t addr, size_t len, uint_t szc)
2018 {
2019 VERIFY3P(seg->s_ops->setpagesize, !=, NULL);
2020
2021 return (seg->s_ops->setpagesize(seg, addr, len, szc));
2022 }
2023
2024 int
2025 segop_getmemid(struct seg *seg, caddr_t addr, memid_t *mp)
2026 {
2027 VERIFY3P(seg->s_ops->getmemid, !=, NULL);
2028
2029 return (seg->s_ops->getmemid(seg, addr, mp));
2030 }
2031
2032 struct lgrp_mem_policy_info *
2033 segop_getpolicy(struct seg *seg, caddr_t addr)
2034 {
2035 if (seg->s_ops->getpolicy == NULL)
2036 return (NULL);
2037
2038 return (seg->s_ops->getpolicy(seg, addr));
2039 }
2040
2041 int
2042 segop_capable(struct seg *seg, segcapability_t cap)
2043 {
2044 VERIFY3P(seg->s_ops->capable, !=, NULL);
2045
2046 return (seg->s_ops->capable(seg, cap));
2047 }
2048
2049 int
2050 segop_inherit(struct seg *seg, caddr_t addr, size_t len, uint_t op)
2051 {
2052 if (seg->s_ops->inherit == NULL)
2053 return (ENOTSUP);
2054
2055 return (seg->s_ops->inherit(seg, addr, len, op));
2056 }
|