Print this page
6152 use NULL dump segop as a shorthand for no-op

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/vm/seg_spt.c
          +++ new/usr/src/uts/common/vm/seg_spt.c
↓ open down ↓ 128 lines elided ↑ open up ↑
 129  129                          int attr, uint_t flags);
 130  130  static int segspt_shmlockop(struct seg *seg, caddr_t addr, size_t len,
 131  131                          int attr, int op, ulong_t *lockmap, size_t pos);
 132  132  static int segspt_shmgetprot(struct seg *seg, caddr_t addr, size_t len,
 133  133                          uint_t *protv);
 134  134  static u_offset_t segspt_shmgetoffset(struct seg *seg, caddr_t addr);
 135  135  static int segspt_shmgettype(struct seg *seg, caddr_t addr);
 136  136  static int segspt_shmgetvp(struct seg *seg, caddr_t addr, struct vnode **vpp);
 137  137  static int segspt_shmadvise(struct seg *seg, caddr_t addr, size_t len,
 138  138                          uint_t behav);
 139      -static void segspt_shmdump(struct seg *seg);
 140  139  static int segspt_shmpagelock(struct seg *, caddr_t, size_t,
 141  140                          struct page ***, enum lock_type, enum seg_rw);
 142  141  static int segspt_shmgetmemid(struct seg *, caddr_t, memid_t *);
 143  142  static lgrp_mem_policy_info_t *segspt_shmgetpolicy(struct seg *, caddr_t);
 144  143  
 145  144  struct seg_ops segspt_shmops = {
 146  145          .dup            = segspt_shmdup,
 147  146          .unmap          = segspt_shmunmap,
 148  147          .free           = segspt_shmfree,
 149  148          .fault          = segspt_shmfault,
↓ open down ↓ 3 lines elided ↑ open up ↑
 153  152          .kluster        = segspt_shmkluster,
 154  153          .swapout        = segspt_shmswapout,
 155  154          .sync           = segspt_shmsync,
 156  155          .incore         = segspt_shmincore,
 157  156          .lockop         = segspt_shmlockop,
 158  157          .getprot        = segspt_shmgetprot,
 159  158          .getoffset      = segspt_shmgetoffset,
 160  159          .gettype        = segspt_shmgettype,
 161  160          .getvp          = segspt_shmgetvp,
 162  161          .advise         = segspt_shmadvise,
 163      -        .dump           = segspt_shmdump,
 164  162          .pagelock       = segspt_shmpagelock,
 165  163          .getmemid       = segspt_shmgetmemid,
 166  164          .getpolicy      = segspt_shmgetpolicy,
 167  165  };
 168  166  
 169  167  static void segspt_purge(struct seg *seg);
 170  168  static int segspt_reclaim(void *, caddr_t, size_t, struct page **,
 171  169                  enum seg_rw, int);
 172  170  static int spt_anon_getpages(struct seg *seg, caddr_t addr, size_t len,
 173  171                  page_t **ppa);
↓ open down ↓ 2825 lines elided ↑ open up ↑
2999 2997                   * underlying segment to calculate anon index and get
3000 2998                   * anonmap and vnode pointer from
3001 2999                   */
3002 3000                  if (shmd->shm_softlockcnt > 0)
3003 3001                          segspt_purge(seg);
3004 3002  
3005 3003                  page_mark_migrate(seg, shm_addr, size, amp, 0, NULL, 0, 0);
3006 3004          }
3007 3005  
3008 3006          return (0);
3009      -}
3010      -
3011      -/*ARGSUSED*/
3012      -void
3013      -segspt_shmdump(struct seg *seg)
3014      -{
3015      -        /* no-op for ISM segment */
3016 3007  }
3017 3008  
3018 3009  /*
3019 3010   * get a memory ID for an addr in a given segment
3020 3011   */
3021 3012  static int
3022 3013  segspt_shmgetmemid(struct seg *seg, caddr_t addr, memid_t *memidp)
3023 3014  {
3024 3015          struct shm_data *shmd = (struct shm_data *)seg->s_data;
3025 3016          struct anon     *ap;
↓ open down ↓ 72 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX