Print this page
seg_inherit_notsup is redundant since segop_inherit checks for NULL properly


  95 /* segkpm support */
  96 static caddr_t  segmap_pagecreate_kpm(struct seg *, vnode_t *, u_offset_t,
  97                         struct smap *, enum seg_rw);
  98 struct smap     *get_smap_kpm(caddr_t, page_t **);
  99 
 100 static struct seg_ops segmap_ops = {
 101         .free           = segmap_free,
 102         .fault          = segmap_fault,
 103         .faulta         = segmap_faulta,
 104         .checkprot      = segmap_checkprot,
 105         .kluster        = segmap_kluster,
 106         .getprot        = segmap_getprot,
 107         .getoffset      = segmap_getoffset,
 108         .gettype        = segmap_gettype,
 109         .getvp          = segmap_getvp,
 110         .dump           = segmap_dump,
 111         .pagelock       = segmap_pagelock,
 112         .getmemid       = segmap_getmemid,
 113         .getpolicy      = segmap_getpolicy,
 114         .capable        = segmap_capable,
 115         .inherit        = seg_inherit_notsup,
 116 };
 117 
 118 /*
 119  * Private segmap routines.
 120  */
 121 static void     segmap_unlock(struct hat *hat, struct seg *seg, caddr_t addr,
 122                         size_t len, enum seg_rw rw, struct smap *smp);
 123 static void     segmap_smapadd(struct smap *smp);
 124 static struct smap *segmap_hashin(struct smap *smp, struct vnode *vp,
 125                         u_offset_t off, int hashid);
 126 static void     segmap_hashout(struct smap *smp);
 127 
 128 
 129 /*
 130  * Statistics for segmap operations.
 131  *
 132  * No explicit locking to protect these stats.
 133  */
 134 struct segmapcnt segmapcnt = {
 135         { "fault",              KSTAT_DATA_ULONG },




  95 /* segkpm support */
  96 static caddr_t  segmap_pagecreate_kpm(struct seg *, vnode_t *, u_offset_t,
  97                         struct smap *, enum seg_rw);
  98 struct smap     *get_smap_kpm(caddr_t, page_t **);
  99 
 100 static struct seg_ops segmap_ops = {
 101         .free           = segmap_free,
 102         .fault          = segmap_fault,
 103         .faulta         = segmap_faulta,
 104         .checkprot      = segmap_checkprot,
 105         .kluster        = segmap_kluster,
 106         .getprot        = segmap_getprot,
 107         .getoffset      = segmap_getoffset,
 108         .gettype        = segmap_gettype,
 109         .getvp          = segmap_getvp,
 110         .dump           = segmap_dump,
 111         .pagelock       = segmap_pagelock,
 112         .getmemid       = segmap_getmemid,
 113         .getpolicy      = segmap_getpolicy,
 114         .capable        = segmap_capable,

 115 };
 116 
 117 /*
 118  * Private segmap routines.
 119  */
 120 static void     segmap_unlock(struct hat *hat, struct seg *seg, caddr_t addr,
 121                         size_t len, enum seg_rw rw, struct smap *smp);
 122 static void     segmap_smapadd(struct smap *smp);
 123 static struct smap *segmap_hashin(struct smap *smp, struct vnode *vp,
 124                         u_offset_t off, int hashid);
 125 static void     segmap_hashout(struct smap *smp);
 126 
 127 
 128 /*
 129  * Statistics for segmap operations.
 130  *
 131  * No explicit locking to protect these stats.
 132  */
 133 struct segmapcnt segmapcnt = {
 134         { "fault",              KSTAT_DATA_ULONG },