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


 112         .dump           = segkpm_dump,
 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;




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