89 * segmap_kpm -- separate on/off switch for segmap using segkpm:
90 * . Set by default.
91 * . Will be disabled when kpm_enable is zero.
92 * . Will be disabled when MAXBSIZE != PAGESIZE.
93 * . Can be disabled via /etc/system.
94 *
95 */
96 int kpm_enable = 1;
97 int kpm_smallpages = 0;
98 int segmap_kpm = 1;
99
100 /*
101 * Private seg op routines.
102 */
103 faultcode_t segkpm_fault(struct hat *hat, struct seg *seg, caddr_t addr,
104 size_t len, enum fault_type type, enum seg_rw rw);
105 static void segkpm_dump(struct seg *);
106 static int segkpm_pagelock(struct seg *seg, caddr_t addr, size_t len,
107 struct page ***page, enum lock_type type,
108 enum seg_rw rw);
109 static int segkpm_capable(struct seg *, segcapability_t);
110
111 static struct seg_ops segkpm_ops = {
112 .fault = segkpm_fault,
113 .dump = segkpm_dump,
114 .pagelock = segkpm_pagelock,
115 .capable = segkpm_capable,
116 //#ifndef SEGKPM_SUPPORT
117 #if 0
118 #error FIXME: define nop
119 .dup = nop,
120 .unmap = nop,
121 .free = nop,
122 .faulta = nop,
123 .setprot = nop,
124 .checkprot = nop,
125 .kluster = nop,
126 .sync = nop,
127 .incore = nop,
128 .lockop = nop,
129 .getprot = nop,
130 .getoffset = nop,
131 .gettype = nop,
132 .getvp = nop,
133 .advise = nop,
134 .setpagesize = nop,
135 .getmemid = nop,
313 {
314 }
315
316 #endif /* SEGKPM_SUPPORT */
317
318 /* ARGSUSED */
319 static int
320 segkpm_pagelock(struct seg *seg, caddr_t addr, size_t len,
321 struct page ***page, enum lock_type type, enum seg_rw rw)
322 {
323 return (ENOTSUP);
324 }
325
326 /*
327 * segkpm pages are not dumped, so we just return
328 */
329 /*ARGSUSED*/
330 static void
331 segkpm_dump(struct seg *seg)
332 {
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 }
|
89 * segmap_kpm -- separate on/off switch for segmap using segkpm:
90 * . Set by default.
91 * . Will be disabled when kpm_enable is zero.
92 * . Will be disabled when MAXBSIZE != PAGESIZE.
93 * . Can be disabled via /etc/system.
94 *
95 */
96 int kpm_enable = 1;
97 int kpm_smallpages = 0;
98 int segmap_kpm = 1;
99
100 /*
101 * Private seg op routines.
102 */
103 faultcode_t segkpm_fault(struct hat *hat, struct seg *seg, caddr_t addr,
104 size_t len, enum fault_type type, enum seg_rw rw);
105 static void segkpm_dump(struct seg *);
106 static int segkpm_pagelock(struct seg *seg, caddr_t addr, size_t len,
107 struct page ***page, enum lock_type type,
108 enum seg_rw rw);
109
110 static struct seg_ops segkpm_ops = {
111 .fault = segkpm_fault,
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 .getmemid = nop,
311 {
312 }
313
314 #endif /* SEGKPM_SUPPORT */
315
316 /* ARGSUSED */
317 static int
318 segkpm_pagelock(struct seg *seg, caddr_t addr, size_t len,
319 struct page ***page, enum lock_type type, enum seg_rw rw)
320 {
321 return (ENOTSUP);
322 }
323
324 /*
325 * segkpm pages are not dumped, so we just return
326 */
327 /*ARGSUSED*/
328 static void
329 segkpm_dump(struct seg *seg)
330 {
331 }
|