Print this page
use NULL capable segop as a shorthand for no-capabilities
Instead of forcing every segment driver to implement a dummy "return 0"
function, handle NULL capable segop function pointer as "no copabilities
supported" shorthand.

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/vm/seg_kpm.c
          +++ new/usr/src/uts/common/vm/seg_kpm.c
↓ open down ↓ 98 lines elided ↑ open up ↑
  99   99  
 100  100  /*
 101  101   * Private seg op routines.
 102  102   */
 103  103  faultcode_t segkpm_fault(struct hat *hat, struct seg *seg, caddr_t addr,
 104  104                          size_t len, enum fault_type type, enum seg_rw rw);
 105  105  static void     segkpm_dump(struct seg *);
 106  106  static int      segkpm_pagelock(struct seg *seg, caddr_t addr, size_t len,
 107  107                          struct page ***page, enum lock_type type,
 108  108                          enum seg_rw rw);
 109      -static int      segkpm_capable(struct seg *, segcapability_t);
 110  109  
 111  110  static struct seg_ops segkpm_ops = {
 112  111          .fault          = segkpm_fault,
 113  112          .dump           = segkpm_dump,
 114  113          .pagelock       = segkpm_pagelock,
 115      -        .capable        = segkpm_capable,
 116  114  //#ifndef SEGKPM_SUPPORT
 117  115  #if 0
 118  116  #error FIXME: define nop
 119  117          .dup            = nop,
 120  118          .unmap          = nop,
 121  119          .free           = nop,
 122  120          .faulta         = nop,
 123  121          .setprot        = nop,
 124  122          .checkprot      = nop,
 125  123          .kluster        = nop,
↓ open down ↓ 197 lines elided ↑ open up ↑
 323  321          return (ENOTSUP);
 324  322  }
 325  323  
 326  324  /*
 327  325   * segkpm pages are not dumped, so we just return
 328  326   */
 329  327  /*ARGSUSED*/
 330  328  static void
 331  329  segkpm_dump(struct seg *seg)
 332  330  {
 333      -}
 334      -
 335      -/*
 336      - * We claim to have no special capabilities.
 337      - */
 338      -/*ARGSUSED*/
 339      -static int
 340      -segkpm_capable(struct seg *seg, segcapability_t capability)
 341      -{
 342      -        return (0);
 343  331  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX