Print this page
use NULL getmemid segop as a shorthand for ENODEV
Instead of forcing every segment driver to implement a dummy function to
return (hopefully) ENODEV, handle NULL getmemid segop function pointer as
"return ENODEV" shorthand.


 113         .pagelock       = segkpm_pagelock,
 114 //#ifndef SEGKPM_SUPPORT
 115 #if 0
 116 #error FIXME: define nop
 117         .dup            = nop,
 118         .unmap          = nop,
 119         .free           = nop,
 120         .faulta         = nop,
 121         .setprot        = nop,
 122         .checkprot      = nop,
 123         .kluster        = nop,
 124         .sync           = nop,
 125         .incore         = nop,
 126         .lockop         = nop,
 127         .getprot        = nop,
 128         .getoffset      = nop,
 129         .gettype        = nop,
 130         .getvp          = nop,
 131         .advise         = nop,
 132         .setpagesize    = nop,
 133         .getmemid       = nop,
 134         .getpolicy      = nop,
 135 #endif
 136 };
 137 
 138 /*
 139  * kpm_pgsz and kpm_pgshft are set by platform layer.
 140  */
 141 size_t          kpm_pgsz;       /* kpm page size */
 142 uint_t          kpm_pgshft;     /* kpm page shift */
 143 u_offset_t      kpm_pgoff;      /* kpm page offset mask */
 144 uint_t          kpmp2pshft;     /* kpm page to page shift */
 145 pgcnt_t         kpmpnpgs;       /* how many pages per kpm page */
 146 
 147 
 148 #ifdef  SEGKPM_SUPPORT
 149 
 150 int
 151 segkpm_create(struct seg *seg, void *argsp)
 152 {
 153         struct segkpm_data *skd;




 113         .pagelock       = segkpm_pagelock,
 114 //#ifndef SEGKPM_SUPPORT
 115 #if 0
 116 #error FIXME: define nop
 117         .dup            = nop,
 118         .unmap          = nop,
 119         .free           = nop,
 120         .faulta         = nop,
 121         .setprot        = nop,
 122         .checkprot      = nop,
 123         .kluster        = nop,
 124         .sync           = nop,
 125         .incore         = nop,
 126         .lockop         = nop,
 127         .getprot        = nop,
 128         .getoffset      = nop,
 129         .gettype        = nop,
 130         .getvp          = nop,
 131         .advise         = nop,
 132         .setpagesize    = nop,

 133         .getpolicy      = nop,
 134 #endif
 135 };
 136 
 137 /*
 138  * kpm_pgsz and kpm_pgshft are set by platform layer.
 139  */
 140 size_t          kpm_pgsz;       /* kpm page size */
 141 uint_t          kpm_pgshft;     /* kpm page shift */
 142 u_offset_t      kpm_pgoff;      /* kpm page offset mask */
 143 uint_t          kpmp2pshft;     /* kpm page to page shift */
 144 pgcnt_t         kpmpnpgs;       /* how many pages per kpm page */
 145 
 146 
 147 #ifdef  SEGKPM_SUPPORT
 148 
 149 int
 150 segkpm_create(struct seg *seg, void *argsp)
 151 {
 152         struct segkpm_data *skd;