80 static int segmap_kluster(struct seg *seg, caddr_t addr, ssize_t);
81 static int segmap_getprot(struct seg *seg, caddr_t addr, size_t len,
82 uint_t *protv);
83 static u_offset_t segmap_getoffset(struct seg *seg, caddr_t addr);
84 static int segmap_gettype(struct seg *seg, caddr_t addr);
85 static int segmap_getvp(struct seg *seg, caddr_t addr, struct vnode **vpp);
86 static void segmap_dump(struct seg *seg);
87 static int segmap_pagelock(struct seg *seg, caddr_t addr, size_t len,
88 struct page ***ppp, enum lock_type type,
89 enum seg_rw rw);
90 static void segmap_badop(void);
91 static int segmap_getmemid(struct seg *seg, caddr_t addr, memid_t *memidp);
92
93 /* segkpm support */
94 static caddr_t segmap_pagecreate_kpm(struct seg *, vnode_t *, u_offset_t,
95 struct smap *, enum seg_rw);
96 struct smap *get_smap_kpm(caddr_t, page_t **);
97
98 #define SEGMAP_BADOP(t) (t(*)())segmap_badop
99
100 static struct seg_ops segmap_ops = {
101 .dup = SEGMAP_BADOP(int),
102 .unmap = SEGMAP_BADOP(int),
103 .free = segmap_free,
104 .fault = segmap_fault,
105 .faulta = segmap_faulta,
106 .setprot = SEGMAP_BADOP(int),
107 .checkprot = segmap_checkprot,
108 .kluster = segmap_kluster,
109 .swapout = SEGMAP_BADOP(size_t),
110 .sync = SEGMAP_BADOP(int),
111 .incore = SEGMAP_BADOP(size_t),
112 .lockop = SEGMAP_BADOP(int),
113 .getprot = segmap_getprot,
114 .getoffset = segmap_getoffset,
115 .gettype = segmap_gettype,
116 .getvp = segmap_getvp,
117 .advise = SEGMAP_BADOP(int),
118 .dump = segmap_dump,
119 .pagelock = segmap_pagelock,
120 .setpagesize = SEGMAP_BADOP(int),
|
80 static int segmap_kluster(struct seg *seg, caddr_t addr, ssize_t);
81 static int segmap_getprot(struct seg *seg, caddr_t addr, size_t len,
82 uint_t *protv);
83 static u_offset_t segmap_getoffset(struct seg *seg, caddr_t addr);
84 static int segmap_gettype(struct seg *seg, caddr_t addr);
85 static int segmap_getvp(struct seg *seg, caddr_t addr, struct vnode **vpp);
86 static void segmap_dump(struct seg *seg);
87 static int segmap_pagelock(struct seg *seg, caddr_t addr, size_t len,
88 struct page ***ppp, enum lock_type type,
89 enum seg_rw rw);
90 static void segmap_badop(void);
91 static int segmap_getmemid(struct seg *seg, caddr_t addr, memid_t *memidp);
92
93 /* segkpm support */
94 static caddr_t segmap_pagecreate_kpm(struct seg *, vnode_t *, u_offset_t,
95 struct smap *, enum seg_rw);
96 struct smap *get_smap_kpm(caddr_t, page_t **);
97
98 #define SEGMAP_BADOP(t) (t(*)())segmap_badop
99
100 static const struct seg_ops segmap_ops = {
101 .dup = SEGMAP_BADOP(int),
102 .unmap = SEGMAP_BADOP(int),
103 .free = segmap_free,
104 .fault = segmap_fault,
105 .faulta = segmap_faulta,
106 .setprot = SEGMAP_BADOP(int),
107 .checkprot = segmap_checkprot,
108 .kluster = segmap_kluster,
109 .swapout = SEGMAP_BADOP(size_t),
110 .sync = SEGMAP_BADOP(int),
111 .incore = SEGMAP_BADOP(size_t),
112 .lockop = SEGMAP_BADOP(int),
113 .getprot = segmap_getprot,
114 .getoffset = segmap_getoffset,
115 .gettype = segmap_gettype,
116 .getvp = segmap_getvp,
117 .advise = SEGMAP_BADOP(int),
118 .dump = segmap_dump,
119 .pagelock = segmap_pagelock,
120 .setpagesize = SEGMAP_BADOP(int),
|