58 static int swap_putpage(struct vnode *vp, offset_t off, size_t len,
59 int flags, struct cred *cr, caller_context_t *ct);
60 static void swap_inactive(struct vnode *vp, struct cred *cr,
61 caller_context_t *ct);
62 static void swap_dispose(vnode_t *vp, page_t *pp, int fl, int dn,
63 cred_t *cr, caller_context_t *ct);
64
65 static int swap_getapage(struct vnode *vp, u_offset_t off, size_t len,
66 uint_t *protp, page_t **plarr, size_t plsz,
67 struct seg *seg, caddr_t addr, enum seg_rw rw, struct cred *cr);
68
69 int swap_getconpage(struct vnode *vp, u_offset_t off, size_t len,
70 uint_t *protp, page_t **plarr, size_t plsz, page_t *conpp,
71 uint_t *pszc, spgcnt_t *nreloc, struct seg *seg, caddr_t addr,
72 enum seg_rw rw, struct cred *cr);
73
74 static int swap_putapage(struct vnode *vp, page_t *pp, u_offset_t *off,
75 size_t *lenp, int flags, struct cred *cr);
76
77 const fs_operation_def_t swap_vnodeops_template[] = {
78 VOPNAME_INACTIVE, { .vop_inactive = swap_inactive },
79 VOPNAME_GETPAGE, { .vop_getpage = swap_getpage },
80 VOPNAME_PUTPAGE, { .vop_putpage = swap_putpage },
81 VOPNAME_DISPOSE, { .vop_dispose = swap_dispose },
82 VOPNAME_SETFL, { .error = fs_error },
83 VOPNAME_POLL, { .error = fs_error },
84 VOPNAME_PATHCONF, { .error = fs_error },
85 VOPNAME_GETSECATTR, { .error = fs_error },
86 VOPNAME_SHRLOCK, { .error = fs_error },
87 NULL, NULL
88 };
89
90 vnodeops_t *swap_vnodeops;
91
92 /* ARGSUSED */
93 static void
94 swap_inactive(
95 struct vnode *vp,
96 struct cred *cr,
97 caller_context_t *ct)
98 {
99 SWAPFS_PRINT(SWAP_VOPS, "swap_inactive: vp %x\n", vp, 0, 0, 0, 0);
100 }
101
102 /*
103 * Return all the pages from [off..off+len] in given file
104 */
105 /*ARGSUSED*/
106 static int
107 swap_getpage(
|
58 static int swap_putpage(struct vnode *vp, offset_t off, size_t len,
59 int flags, struct cred *cr, caller_context_t *ct);
60 static void swap_inactive(struct vnode *vp, struct cred *cr,
61 caller_context_t *ct);
62 static void swap_dispose(vnode_t *vp, page_t *pp, int fl, int dn,
63 cred_t *cr, caller_context_t *ct);
64
65 static int swap_getapage(struct vnode *vp, u_offset_t off, size_t len,
66 uint_t *protp, page_t **plarr, size_t plsz,
67 struct seg *seg, caddr_t addr, enum seg_rw rw, struct cred *cr);
68
69 int swap_getconpage(struct vnode *vp, u_offset_t off, size_t len,
70 uint_t *protp, page_t **plarr, size_t plsz, page_t *conpp,
71 uint_t *pszc, spgcnt_t *nreloc, struct seg *seg, caddr_t addr,
72 enum seg_rw rw, struct cred *cr);
73
74 static int swap_putapage(struct vnode *vp, page_t *pp, u_offset_t *off,
75 size_t *lenp, int flags, struct cred *cr);
76
77 const fs_operation_def_t swap_vnodeops_template[] = {
78 {VOPNAME_INACTIVE, { .vop_inactive = swap_inactive }},
79 {VOPNAME_GETPAGE, { .vop_getpage = swap_getpage }},
80 {VOPNAME_PUTPAGE, { .vop_putpage = swap_putpage }},
81 {VOPNAME_DISPOSE, { .vop_dispose = swap_dispose }},
82 {VOPNAME_SETFL, { .error = fs_error }},
83 {VOPNAME_POLL, { .error = fs_error }},
84 {VOPNAME_PATHCONF, { .error = fs_error }},
85 {VOPNAME_GETSECATTR, { .error = fs_error }},
86 {VOPNAME_SHRLOCK, { .error = fs_error }},
87 {NULL, {NULL}}
88 };
89
90 vnodeops_t *swap_vnodeops;
91
92 /* ARGSUSED */
93 static void
94 swap_inactive(
95 struct vnode *vp,
96 struct cred *cr,
97 caller_context_t *ct)
98 {
99 SWAPFS_PRINT(SWAP_VOPS, "swap_inactive: vp %x\n", vp, 0, 0, 0, 0);
100 }
101
102 /*
103 * Return all the pages from [off..off+len] in given file
104 */
105 /*ARGSUSED*/
106 static int
107 swap_getpage(
|