Print this page
6149 use NULL capable segop as a shorthand for no-capabilities

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/vm/seg_map.c
          +++ new/usr/src/uts/common/vm/seg_map.c
↓ open down ↓ 81 lines elided ↑ open up ↑
  82   82                          uint_t *protv);
  83   83  static u_offset_t       segmap_getoffset(struct seg *seg, caddr_t addr);
  84   84  static int      segmap_gettype(struct seg *seg, caddr_t addr);
  85   85  static int      segmap_getvp(struct seg *seg, caddr_t addr, struct vnode **vpp);
  86   86  static void     segmap_dump(struct seg *seg);
  87   87  static int      segmap_pagelock(struct seg *seg, caddr_t addr, size_t len,
  88   88                          struct page ***ppp, enum lock_type type,
  89   89                          enum seg_rw rw);
  90   90  static void     segmap_badop(void);
  91   91  static int      segmap_getmemid(struct seg *seg, caddr_t addr, memid_t *memidp);
  92      -static int      segmap_capable(struct seg *seg, segcapability_t capability);
  93   92  
  94   93  /* segkpm support */
  95   94  static caddr_t  segmap_pagecreate_kpm(struct seg *, vnode_t *, u_offset_t,
  96   95                          struct smap *, enum seg_rw);
  97   96  struct smap     *get_smap_kpm(caddr_t, page_t **);
  98   97  
  99   98  #define SEGMAP_BADOP(t) (t(*)())segmap_badop
 100   99  
 101  100  static struct seg_ops segmap_ops = {
 102  101          .dup            = SEGMAP_BADOP(int),
↓ open down ↓ 10 lines elided ↑ open up ↑
 113  112          .lockop         = SEGMAP_BADOP(int),
 114  113          .getprot        = segmap_getprot,
 115  114          .getoffset      = segmap_getoffset,
 116  115          .gettype        = segmap_gettype,
 117  116          .getvp          = segmap_getvp,
 118  117          .advise         = SEGMAP_BADOP(int),
 119  118          .dump           = segmap_dump,
 120  119          .pagelock       = segmap_pagelock,
 121  120          .setpagesize    = SEGMAP_BADOP(int),
 122  121          .getmemid       = segmap_getmemid,
 123      -        .capable        = segmap_capable,
 124  122  };
 125  123  
 126  124  /*
 127  125   * Private segmap routines.
 128  126   */
 129  127  static void     segmap_unlock(struct hat *hat, struct seg *seg, caddr_t addr,
 130  128                          size_t len, enum seg_rw rw, struct smap *smp);
 131  129  static void     segmap_smapadd(struct smap *smp);
 132  130  static struct smap *segmap_hashin(struct smap *smp, struct vnode *vp,
 133  131                          u_offset_t off, int hashid);
↓ open down ↓ 2043 lines elided ↑ open up ↑
2177 2175          return (ENOTSUP);
2178 2176  }
2179 2177  
2180 2178  static int
2181 2179  segmap_getmemid(struct seg *seg, caddr_t addr, memid_t *memidp)
2182 2180  {
2183 2181          struct segmap_data *smd = (struct segmap_data *)seg->s_data;
2184 2182  
2185 2183          memidp->val[0] = (uintptr_t)smd->smd_sm->sm_vp;
2186 2184          memidp->val[1] = smd->smd_sm->sm_off + (uintptr_t)(addr - seg->s_base);
2187      -        return (0);
2188      -}
2189      -
2190      -/*ARGSUSED*/
2191      -static int
2192      -segmap_capable(struct seg *seg, segcapability_t capability)
2193      -{
2194 2185          return (0);
2195 2186  }
2196 2187  
2197 2188  
2198 2189  #ifdef  SEGKPM_SUPPORT
2199 2190  
2200 2191  /*
2201 2192   * segkpm support routines
2202 2193   */
2203 2194  
↓ open down ↓ 141 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX