Home | History | Annotate | Line # | Download | only in rumpvfs
      1  1.20     pooka /*	$NetBSD: rumpvnode_if.c,v 1.41 2023/06/15 09:15:13 hannken Exp $	*/
      2   1.1     pooka 
      3   1.1     pooka /*
      4   1.1     pooka  * Warning: DO NOT EDIT! This file is automatically generated!
      5   1.1     pooka  * (Modifications made here may easily be lost!)
      6   1.1     pooka  *
      7   1.1     pooka  * Created from the file:
      8  1.41   hannken  *	NetBSD: vnode_if.src,v 1.85 2023/06/15 09:13:36 hannken Exp
      9   1.1     pooka  * by the script:
     10  1.41   hannken  *	NetBSD: vnode_if.sh,v 1.77 2022/10/26 23:39:43 riastradh Exp
     11   1.1     pooka  */
     12   1.1     pooka 
     13   1.1     pooka /*
     14   1.1     pooka  * Copyright (c) 1992, 1993, 1994, 1995
     15   1.1     pooka  *	The Regents of the University of California.  All rights reserved.
     16   1.1     pooka  *
     17   1.1     pooka  * Redistribution and use in source and binary forms, with or without
     18   1.1     pooka  * modification, are permitted provided that the following conditions
     19   1.1     pooka  * are met:
     20   1.1     pooka  * 1. Redistributions of source code must retain the above copyright
     21   1.1     pooka  *    notice, this list of conditions and the following disclaimer.
     22   1.1     pooka  * 2. Redistributions in binary form must reproduce the above copyright
     23   1.1     pooka  *    notice, this list of conditions and the following disclaimer in the
     24   1.1     pooka  *    documentation and/or other materials provided with the distribution.
     25   1.1     pooka  * 3. Neither the name of the University nor the names of its contributors
     26   1.1     pooka  *    may be used to endorse or promote products derived from this software
     27   1.1     pooka  *    without specific prior written permission.
     28   1.1     pooka  *
     29   1.1     pooka  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     30   1.1     pooka  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     31   1.1     pooka  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     32   1.1     pooka  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     33   1.1     pooka  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     34   1.1     pooka  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     35   1.1     pooka  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     36   1.1     pooka  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     37   1.1     pooka  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     38   1.1     pooka  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     39   1.1     pooka  * SUCH DAMAGE.
     40   1.1     pooka  */
     41   1.1     pooka 
     42   1.1     pooka #include <sys/cdefs.h>
     43  1.20     pooka __KERNEL_RCSID(0, "$NetBSD: rumpvnode_if.c,v 1.41 2023/06/15 09:15:13 hannken Exp $");
     44   1.1     pooka 
     45   1.1     pooka #include <sys/param.h>
     46   1.1     pooka #include <sys/mount.h>
     47   1.1     pooka #include <sys/buf.h>
     48  1.37   thorpej #include <sys/fcntl.h>
     49   1.1     pooka #include <sys/vnode.h>
     50   1.1     pooka #include <sys/lock.h>
     51  1.20     pooka #include <rump/rumpvnode_if.h>
     52  1.19     pooka #include <rump-sys/kern.h>
     53  1.19     pooka 
     54   1.1     pooka int
     55  1.10   hannken RUMP_VOP_BWRITE(struct vnode *vp,
     56  1.10   hannken     struct buf *bp)
     57   1.1     pooka {
     58   1.1     pooka 	int error;
     59   1.6     pooka 
     60   1.6     pooka 	rump_schedule();
     61  1.10   hannken 	error = VOP_BWRITE(vp, bp);
     62   1.3     pooka 	rump_unschedule();
     63   1.6     pooka 
     64   1.1     pooka 	return error;
     65   1.1     pooka }
     66   1.1     pooka 
     67   1.1     pooka int
     68  1.35  dholland RUMP_VOP_PARSEPATH(struct vnode *dvp,
     69  1.35  dholland     const char *name,
     70  1.35  dholland     size_t *retval)
     71  1.35  dholland {
     72  1.35  dholland 	int error;
     73  1.35  dholland 
     74  1.35  dholland 	rump_schedule();
     75  1.35  dholland 	error = VOP_PARSEPATH(dvp, name, retval);
     76  1.35  dholland 	rump_unschedule();
     77  1.35  dholland 
     78  1.35  dholland 	return error;
     79  1.35  dholland }
     80  1.35  dholland 
     81  1.35  dholland int
     82   1.1     pooka RUMP_VOP_LOOKUP(struct vnode *dvp,
     83   1.1     pooka     struct vnode **vpp,
     84   1.1     pooka     struct componentname *cnp)
     85   1.1     pooka {
     86   1.1     pooka 	int error;
     87   1.6     pooka 
     88   1.6     pooka 	rump_schedule();
     89   1.6     pooka 	error = VOP_LOOKUP(dvp, vpp, cnp);
     90   1.6     pooka 	rump_unschedule();
     91   1.6     pooka 
     92   1.1     pooka 	return error;
     93   1.1     pooka }
     94   1.1     pooka 
     95   1.1     pooka int
     96   1.1     pooka RUMP_VOP_CREATE(struct vnode *dvp,
     97   1.1     pooka     struct vnode **vpp,
     98   1.1     pooka     struct componentname *cnp,
     99   1.1     pooka     struct vattr *vap)
    100   1.1     pooka {
    101   1.1     pooka 	int error;
    102   1.6     pooka 
    103   1.6     pooka 	rump_schedule();
    104   1.6     pooka 	error = VOP_CREATE(dvp, vpp, cnp, vap);
    105   1.6     pooka 	rump_unschedule();
    106   1.6     pooka 
    107   1.1     pooka 	return error;
    108   1.1     pooka }
    109   1.1     pooka 
    110   1.1     pooka int
    111   1.1     pooka RUMP_VOP_MKNOD(struct vnode *dvp,
    112   1.1     pooka     struct vnode **vpp,
    113   1.1     pooka     struct componentname *cnp,
    114   1.1     pooka     struct vattr *vap)
    115   1.1     pooka {
    116   1.1     pooka 	int error;
    117   1.6     pooka 
    118   1.6     pooka 	rump_schedule();
    119   1.6     pooka 	error = VOP_MKNOD(dvp, vpp, cnp, vap);
    120   1.6     pooka 	rump_unschedule();
    121   1.6     pooka 
    122   1.1     pooka 	return error;
    123   1.1     pooka }
    124   1.1     pooka 
    125   1.1     pooka int
    126   1.1     pooka RUMP_VOP_OPEN(struct vnode *vp,
    127   1.1     pooka     int mode,
    128   1.6     pooka     struct kauth_cred *cred)
    129   1.1     pooka {
    130   1.1     pooka 	int error;
    131   1.6     pooka 
    132   1.6     pooka 	rump_schedule();
    133   1.6     pooka 	error = VOP_OPEN(vp, mode, cred);
    134   1.3     pooka 	rump_unschedule();
    135   1.6     pooka 
    136   1.1     pooka 	return error;
    137   1.1     pooka }
    138   1.1     pooka 
    139   1.1     pooka int
    140   1.1     pooka RUMP_VOP_CLOSE(struct vnode *vp,
    141   1.1     pooka     int fflag,
    142   1.6     pooka     struct kauth_cred *cred)
    143   1.1     pooka {
    144   1.1     pooka 	int error;
    145   1.6     pooka 
    146   1.6     pooka 	rump_schedule();
    147   1.6     pooka 	error = VOP_CLOSE(vp, fflag, cred);
    148   1.3     pooka 	rump_unschedule();
    149   1.6     pooka 
    150   1.1     pooka 	return error;
    151   1.1     pooka }
    152   1.1     pooka 
    153   1.1     pooka int
    154   1.1     pooka RUMP_VOP_ACCESS(struct vnode *vp,
    155  1.34  christos     accmode_t accmode,
    156   1.6     pooka     struct kauth_cred *cred)
    157   1.1     pooka {
    158   1.1     pooka 	int error;
    159   1.6     pooka 
    160   1.6     pooka 	rump_schedule();
    161  1.34  christos 	error = VOP_ACCESS(vp, accmode, cred);
    162  1.34  christos 	rump_unschedule();
    163  1.34  christos 
    164  1.34  christos 	return error;
    165  1.34  christos }
    166  1.34  christos 
    167  1.34  christos int
    168  1.34  christos RUMP_VOP_ACCESSX(struct vnode *vp,
    169  1.34  christos     accmode_t accmode,
    170  1.34  christos     struct kauth_cred *cred)
    171  1.34  christos {
    172  1.34  christos 	int error;
    173  1.34  christos 
    174  1.34  christos 	rump_schedule();
    175  1.34  christos 	error = VOP_ACCESSX(vp, accmode, cred);
    176   1.3     pooka 	rump_unschedule();
    177   1.6     pooka 
    178   1.1     pooka 	return error;
    179   1.1     pooka }
    180   1.1     pooka 
    181   1.1     pooka int
    182   1.1     pooka RUMP_VOP_GETATTR(struct vnode *vp,
    183   1.1     pooka     struct vattr *vap,
    184   1.6     pooka     struct kauth_cred *cred)
    185   1.1     pooka {
    186   1.1     pooka 	int error;
    187   1.6     pooka 
    188   1.6     pooka 	rump_schedule();
    189   1.6     pooka 	error = VOP_GETATTR(vp, vap, cred);
    190   1.3     pooka 	rump_unschedule();
    191   1.6     pooka 
    192   1.1     pooka 	return error;
    193   1.1     pooka }
    194   1.1     pooka 
    195   1.1     pooka int
    196   1.1     pooka RUMP_VOP_SETATTR(struct vnode *vp,
    197   1.1     pooka     struct vattr *vap,
    198   1.6     pooka     struct kauth_cred *cred)
    199   1.1     pooka {
    200   1.1     pooka 	int error;
    201   1.6     pooka 
    202   1.6     pooka 	rump_schedule();
    203   1.6     pooka 	error = VOP_SETATTR(vp, vap, cred);
    204   1.3     pooka 	rump_unschedule();
    205   1.6     pooka 
    206   1.1     pooka 	return error;
    207   1.1     pooka }
    208   1.1     pooka 
    209   1.1     pooka int
    210   1.1     pooka RUMP_VOP_READ(struct vnode *vp,
    211   1.1     pooka     struct uio *uio,
    212   1.1     pooka     int ioflag,
    213   1.6     pooka     struct kauth_cred *cred)
    214   1.1     pooka {
    215   1.1     pooka 	int error;
    216   1.6     pooka 
    217   1.6     pooka 	rump_schedule();
    218   1.6     pooka 	error = VOP_READ(vp, uio, ioflag, cred);
    219   1.3     pooka 	rump_unschedule();
    220   1.6     pooka 
    221   1.1     pooka 	return error;
    222   1.1     pooka }
    223   1.1     pooka 
    224   1.1     pooka int
    225   1.1     pooka RUMP_VOP_WRITE(struct vnode *vp,
    226   1.1     pooka     struct uio *uio,
    227   1.1     pooka     int ioflag,
    228   1.6     pooka     struct kauth_cred *cred)
    229   1.1     pooka {
    230   1.1     pooka 	int error;
    231   1.6     pooka 
    232   1.6     pooka 	rump_schedule();
    233   1.6     pooka 	error = VOP_WRITE(vp, uio, ioflag, cred);
    234   1.3     pooka 	rump_unschedule();
    235   1.6     pooka 
    236   1.1     pooka 	return error;
    237   1.1     pooka }
    238   1.1     pooka 
    239   1.1     pooka int
    240  1.16  dholland RUMP_VOP_FALLOCATE(struct vnode *vp,
    241  1.16  dholland     off_t pos,
    242  1.16  dholland     off_t len)
    243  1.16  dholland {
    244  1.16  dholland 	int error;
    245  1.16  dholland 
    246  1.16  dholland 	rump_schedule();
    247  1.16  dholland 	error = VOP_FALLOCATE(vp, pos, len);
    248  1.16  dholland 	rump_unschedule();
    249  1.16  dholland 
    250  1.16  dholland 	return error;
    251  1.16  dholland }
    252  1.16  dholland 
    253  1.16  dholland int
    254  1.16  dholland RUMP_VOP_FDISCARD(struct vnode *vp,
    255  1.16  dholland     off_t pos,
    256  1.16  dholland     off_t len)
    257  1.16  dholland {
    258  1.16  dholland 	int error;
    259  1.16  dholland 
    260  1.16  dholland 	rump_schedule();
    261  1.16  dholland 	error = VOP_FDISCARD(vp, pos, len);
    262  1.16  dholland 	rump_unschedule();
    263  1.16  dholland 
    264  1.16  dholland 	return error;
    265  1.16  dholland }
    266  1.16  dholland 
    267  1.16  dholland int
    268   1.1     pooka RUMP_VOP_IOCTL(struct vnode *vp,
    269   1.1     pooka     u_long command,
    270   1.1     pooka     void *data,
    271   1.1     pooka     int fflag,
    272   1.6     pooka     struct kauth_cred *cred)
    273   1.1     pooka {
    274   1.1     pooka 	int error;
    275   1.6     pooka 
    276   1.6     pooka 	rump_schedule();
    277   1.6     pooka 	error = VOP_IOCTL(vp, command, data, fflag, cred);
    278   1.3     pooka 	rump_unschedule();
    279   1.6     pooka 
    280   1.1     pooka 	return error;
    281   1.1     pooka }
    282   1.1     pooka 
    283   1.1     pooka int
    284   1.1     pooka RUMP_VOP_FCNTL(struct vnode *vp,
    285   1.1     pooka     u_int command,
    286   1.1     pooka     void *data,
    287   1.1     pooka     int fflag,
    288   1.6     pooka     struct kauth_cred *cred)
    289   1.1     pooka {
    290   1.1     pooka 	int error;
    291   1.6     pooka 
    292   1.6     pooka 	rump_schedule();
    293   1.6     pooka 	error = VOP_FCNTL(vp, command, data, fflag, cred);
    294   1.3     pooka 	rump_unschedule();
    295   1.6     pooka 
    296   1.1     pooka 	return error;
    297   1.1     pooka }
    298   1.1     pooka 
    299   1.1     pooka int
    300   1.1     pooka RUMP_VOP_POLL(struct vnode *vp,
    301   1.1     pooka     int events)
    302   1.1     pooka {
    303   1.1     pooka 	int error;
    304   1.6     pooka 
    305   1.6     pooka 	rump_schedule();
    306   1.6     pooka 	error = VOP_POLL(vp, events);
    307   1.3     pooka 	rump_unschedule();
    308   1.6     pooka 
    309   1.1     pooka 	return error;
    310   1.1     pooka }
    311   1.1     pooka 
    312   1.1     pooka int
    313   1.1     pooka RUMP_VOP_KQFILTER(struct vnode *vp,
    314   1.1     pooka     struct knote *kn)
    315   1.1     pooka {
    316   1.1     pooka 	int error;
    317   1.6     pooka 
    318   1.6     pooka 	rump_schedule();
    319   1.6     pooka 	error = VOP_KQFILTER(vp, kn);
    320   1.3     pooka 	rump_unschedule();
    321   1.6     pooka 
    322   1.1     pooka 	return error;
    323   1.1     pooka }
    324   1.1     pooka 
    325   1.1     pooka int
    326   1.1     pooka RUMP_VOP_REVOKE(struct vnode *vp,
    327   1.1     pooka     int flags)
    328   1.1     pooka {
    329   1.1     pooka 	int error;
    330   1.6     pooka 
    331   1.6     pooka 	rump_schedule();
    332   1.6     pooka 	error = VOP_REVOKE(vp, flags);
    333   1.3     pooka 	rump_unschedule();
    334   1.6     pooka 
    335   1.1     pooka 	return error;
    336   1.1     pooka }
    337   1.1     pooka 
    338   1.1     pooka int
    339   1.1     pooka RUMP_VOP_MMAP(struct vnode *vp,
    340   1.1     pooka     int prot,
    341   1.6     pooka     struct kauth_cred *cred)
    342   1.1     pooka {
    343   1.1     pooka 	int error;
    344   1.6     pooka 
    345   1.6     pooka 	rump_schedule();
    346   1.6     pooka 	error = VOP_MMAP(vp, prot, cred);
    347   1.3     pooka 	rump_unschedule();
    348   1.6     pooka 
    349   1.1     pooka 	return error;
    350   1.1     pooka }
    351   1.1     pooka 
    352   1.1     pooka int
    353   1.1     pooka RUMP_VOP_FSYNC(struct vnode *vp,
    354   1.6     pooka     struct kauth_cred *cred,
    355   1.1     pooka     int flags,
    356   1.1     pooka     off_t offlo,
    357   1.1     pooka     off_t offhi)
    358   1.1     pooka {
    359   1.1     pooka 	int error;
    360   1.6     pooka 
    361   1.6     pooka 	rump_schedule();
    362   1.6     pooka 	error = VOP_FSYNC(vp, cred, flags, offlo, offhi);
    363   1.3     pooka 	rump_unschedule();
    364   1.6     pooka 
    365   1.1     pooka 	return error;
    366   1.1     pooka }
    367   1.1     pooka 
    368   1.1     pooka int
    369   1.1     pooka RUMP_VOP_SEEK(struct vnode *vp,
    370   1.1     pooka     off_t oldoff,
    371   1.1     pooka     off_t newoff,
    372   1.6     pooka     struct kauth_cred *cred)
    373   1.1     pooka {
    374   1.1     pooka 	int error;
    375   1.6     pooka 
    376   1.6     pooka 	rump_schedule();
    377   1.6     pooka 	error = VOP_SEEK(vp, oldoff, newoff, cred);
    378   1.3     pooka 	rump_unschedule();
    379   1.6     pooka 
    380   1.1     pooka 	return error;
    381   1.1     pooka }
    382   1.1     pooka 
    383   1.1     pooka int
    384   1.1     pooka RUMP_VOP_REMOVE(struct vnode *dvp,
    385   1.1     pooka     struct vnode *vp,
    386   1.1     pooka     struct componentname *cnp)
    387   1.1     pooka {
    388   1.1     pooka 	int error;
    389   1.6     pooka 
    390   1.6     pooka 	rump_schedule();
    391   1.6     pooka 	error = VOP_REMOVE(dvp, vp, cnp);
    392   1.3     pooka 	rump_unschedule();
    393   1.6     pooka 
    394   1.1     pooka 	return error;
    395   1.1     pooka }
    396   1.1     pooka 
    397   1.1     pooka int
    398   1.1     pooka RUMP_VOP_LINK(struct vnode *dvp,
    399   1.1     pooka     struct vnode *vp,
    400   1.1     pooka     struct componentname *cnp)
    401   1.1     pooka {
    402   1.1     pooka 	int error;
    403   1.6     pooka 
    404   1.6     pooka 	rump_schedule();
    405   1.6     pooka 	error = VOP_LINK(dvp, vp, cnp);
    406   1.3     pooka 	rump_unschedule();
    407   1.6     pooka 
    408   1.1     pooka 	return error;
    409   1.1     pooka }
    410   1.1     pooka 
    411   1.1     pooka int
    412   1.1     pooka RUMP_VOP_RENAME(struct vnode *fdvp,
    413   1.1     pooka     struct vnode *fvp,
    414   1.1     pooka     struct componentname *fcnp,
    415   1.1     pooka     struct vnode *tdvp,
    416   1.1     pooka     struct vnode *tvp,
    417   1.1     pooka     struct componentname *tcnp)
    418   1.1     pooka {
    419   1.1     pooka 	int error;
    420   1.6     pooka 
    421   1.6     pooka 	rump_schedule();
    422   1.6     pooka 	error = VOP_RENAME(fdvp, fvp, fcnp, tdvp, tvp, tcnp);
    423   1.3     pooka 	rump_unschedule();
    424   1.6     pooka 
    425   1.1     pooka 	return error;
    426   1.1     pooka }
    427   1.1     pooka 
    428   1.1     pooka int
    429   1.1     pooka RUMP_VOP_MKDIR(struct vnode *dvp,
    430   1.1     pooka     struct vnode **vpp,
    431   1.1     pooka     struct componentname *cnp,
    432   1.1     pooka     struct vattr *vap)
    433   1.1     pooka {
    434   1.1     pooka 	int error;
    435   1.6     pooka 
    436   1.6     pooka 	rump_schedule();
    437   1.6     pooka 	error = VOP_MKDIR(dvp, vpp, cnp, vap);
    438   1.6     pooka 	rump_unschedule();
    439   1.6     pooka 
    440   1.1     pooka 	return error;
    441   1.1     pooka }
    442   1.1     pooka 
    443   1.1     pooka int
    444   1.1     pooka RUMP_VOP_RMDIR(struct vnode *dvp,
    445   1.1     pooka     struct vnode *vp,
    446   1.1     pooka     struct componentname *cnp)
    447   1.1     pooka {
    448   1.1     pooka 	int error;
    449   1.6     pooka 
    450   1.6     pooka 	rump_schedule();
    451   1.6     pooka 	error = VOP_RMDIR(dvp, vp, cnp);
    452   1.3     pooka 	rump_unschedule();
    453   1.6     pooka 
    454   1.1     pooka 	return error;
    455   1.1     pooka }
    456   1.1     pooka 
    457   1.1     pooka int
    458   1.1     pooka RUMP_VOP_SYMLINK(struct vnode *dvp,
    459   1.1     pooka     struct vnode **vpp,
    460   1.1     pooka     struct componentname *cnp,
    461   1.1     pooka     struct vattr *vap,
    462   1.1     pooka     char *target)
    463   1.1     pooka {
    464   1.1     pooka 	int error;
    465   1.6     pooka 
    466   1.6     pooka 	rump_schedule();
    467   1.6     pooka 	error = VOP_SYMLINK(dvp, vpp, cnp, vap, target);
    468   1.6     pooka 	rump_unschedule();
    469   1.6     pooka 
    470   1.1     pooka 	return error;
    471   1.1     pooka }
    472   1.1     pooka 
    473   1.1     pooka int
    474   1.1     pooka RUMP_VOP_READDIR(struct vnode *vp,
    475   1.1     pooka     struct uio *uio,
    476   1.6     pooka     struct kauth_cred *cred,
    477   1.1     pooka     int *eofflag,
    478   1.1     pooka     off_t **cookies,
    479   1.1     pooka     int *ncookies)
    480   1.1     pooka {
    481   1.1     pooka 	int error;
    482   1.6     pooka 
    483   1.6     pooka 	rump_schedule();
    484   1.6     pooka 	error = VOP_READDIR(vp, uio, cred, eofflag, cookies, ncookies);
    485   1.3     pooka 	rump_unschedule();
    486   1.6     pooka 
    487   1.1     pooka 	return error;
    488   1.1     pooka }
    489   1.1     pooka 
    490   1.1     pooka int
    491   1.1     pooka RUMP_VOP_READLINK(struct vnode *vp,
    492   1.1     pooka     struct uio *uio,
    493   1.6     pooka     struct kauth_cred *cred)
    494   1.1     pooka {
    495   1.1     pooka 	int error;
    496   1.6     pooka 
    497   1.6     pooka 	rump_schedule();
    498   1.6     pooka 	error = VOP_READLINK(vp, uio, cred);
    499   1.3     pooka 	rump_unschedule();
    500   1.6     pooka 
    501   1.1     pooka 	return error;
    502   1.1     pooka }
    503   1.1     pooka 
    504   1.1     pooka int
    505   1.1     pooka RUMP_VOP_ABORTOP(struct vnode *dvp,
    506   1.1     pooka     struct componentname *cnp)
    507   1.1     pooka {
    508   1.1     pooka 	int error;
    509   1.6     pooka 
    510   1.6     pooka 	rump_schedule();
    511   1.6     pooka 	error = VOP_ABORTOP(dvp, cnp);
    512   1.3     pooka 	rump_unschedule();
    513   1.6     pooka 
    514   1.1     pooka 	return error;
    515   1.1     pooka }
    516   1.1     pooka 
    517   1.1     pooka int
    518   1.1     pooka RUMP_VOP_INACTIVE(struct vnode *vp,
    519   1.1     pooka     bool *recycle)
    520   1.1     pooka {
    521   1.1     pooka 	int error;
    522   1.6     pooka 
    523   1.6     pooka 	rump_schedule();
    524   1.6     pooka 	error = VOP_INACTIVE(vp, recycle);
    525   1.3     pooka 	rump_unschedule();
    526   1.6     pooka 
    527   1.1     pooka 	return error;
    528   1.1     pooka }
    529   1.1     pooka 
    530   1.1     pooka int
    531   1.1     pooka RUMP_VOP_RECLAIM(struct vnode *vp)
    532   1.1     pooka {
    533   1.1     pooka 	int error;
    534   1.6     pooka 
    535   1.6     pooka 	rump_schedule();
    536   1.6     pooka 	error = VOP_RECLAIM(vp);
    537   1.3     pooka 	rump_unschedule();
    538   1.6     pooka 
    539   1.1     pooka 	return error;
    540   1.1     pooka }
    541   1.1     pooka 
    542   1.1     pooka int
    543   1.1     pooka RUMP_VOP_LOCK(struct vnode *vp,
    544   1.1     pooka     int flags)
    545   1.1     pooka {
    546   1.1     pooka 	int error;
    547   1.6     pooka 
    548   1.6     pooka 	rump_schedule();
    549   1.6     pooka 	error = VOP_LOCK(vp, flags);
    550   1.3     pooka 	rump_unschedule();
    551   1.6     pooka 
    552   1.1     pooka 	return error;
    553   1.1     pooka }
    554   1.1     pooka 
    555   1.1     pooka int
    556   1.7   hannken RUMP_VOP_UNLOCK(struct vnode *vp)
    557   1.1     pooka {
    558   1.1     pooka 	int error;
    559   1.6     pooka 
    560   1.6     pooka 	rump_schedule();
    561   1.7   hannken 	error = VOP_UNLOCK(vp);
    562   1.3     pooka 	rump_unschedule();
    563   1.6     pooka 
    564   1.1     pooka 	return error;
    565   1.1     pooka }
    566   1.1     pooka 
    567   1.1     pooka int
    568   1.1     pooka RUMP_VOP_BMAP(struct vnode *vp,
    569  1.12     pooka     int64_t bn,
    570   1.1     pooka     struct vnode **vpp,
    571  1.12     pooka     int64_t *bnp,
    572   1.1     pooka     int *runp)
    573   1.1     pooka {
    574   1.1     pooka 	int error;
    575   1.6     pooka 
    576   1.6     pooka 	rump_schedule();
    577   1.6     pooka 	error = VOP_BMAP(vp, bn, vpp, bnp, runp);
    578   1.3     pooka 	rump_unschedule();
    579   1.6     pooka 
    580   1.1     pooka 	return error;
    581   1.1     pooka }
    582   1.1     pooka 
    583   1.1     pooka int
    584   1.1     pooka RUMP_VOP_STRATEGY(struct vnode *vp,
    585   1.1     pooka     struct buf *bp)
    586   1.1     pooka {
    587   1.1     pooka 	int error;
    588   1.6     pooka 
    589   1.6     pooka 	rump_schedule();
    590   1.6     pooka 	error = VOP_STRATEGY(vp, bp);
    591   1.3     pooka 	rump_unschedule();
    592   1.6     pooka 
    593   1.1     pooka 	return error;
    594   1.1     pooka }
    595   1.1     pooka 
    596   1.1     pooka int
    597   1.1     pooka RUMP_VOP_PRINT(struct vnode *vp)
    598   1.1     pooka {
    599   1.1     pooka 	int error;
    600   1.6     pooka 
    601   1.6     pooka 	rump_schedule();
    602   1.6     pooka 	error = VOP_PRINT(vp);
    603   1.3     pooka 	rump_unschedule();
    604   1.6     pooka 
    605   1.1     pooka 	return error;
    606   1.1     pooka }
    607   1.1     pooka 
    608   1.1     pooka int
    609   1.1     pooka RUMP_VOP_ISLOCKED(struct vnode *vp)
    610   1.1     pooka {
    611   1.1     pooka 	int error;
    612   1.6     pooka 
    613   1.6     pooka 	rump_schedule();
    614   1.6     pooka 	error = VOP_ISLOCKED(vp);
    615   1.3     pooka 	rump_unschedule();
    616   1.6     pooka 
    617   1.1     pooka 	return error;
    618   1.1     pooka }
    619   1.1     pooka 
    620   1.1     pooka int
    621   1.1     pooka RUMP_VOP_PATHCONF(struct vnode *vp,
    622   1.1     pooka     int name,
    623   1.1     pooka     register_t *retval)
    624   1.1     pooka {
    625   1.1     pooka 	int error;
    626   1.6     pooka 
    627   1.6     pooka 	rump_schedule();
    628   1.6     pooka 	error = VOP_PATHCONF(vp, name, retval);
    629   1.3     pooka 	rump_unschedule();
    630   1.6     pooka 
    631   1.1     pooka 	return error;
    632   1.1     pooka }
    633   1.1     pooka 
    634   1.1     pooka int
    635   1.1     pooka RUMP_VOP_ADVLOCK(struct vnode *vp,
    636   1.1     pooka     void *id,
    637   1.1     pooka     int op,
    638   1.1     pooka     struct flock *fl,
    639   1.1     pooka     int flags)
    640   1.1     pooka {
    641   1.1     pooka 	int error;
    642   1.6     pooka 
    643   1.6     pooka 	rump_schedule();
    644   1.6     pooka 	error = VOP_ADVLOCK(vp, id, op, fl, flags);
    645   1.3     pooka 	rump_unschedule();
    646   1.6     pooka 
    647   1.1     pooka 	return error;
    648   1.1     pooka }
    649   1.1     pooka 
    650   1.1     pooka int
    651   1.1     pooka RUMP_VOP_WHITEOUT(struct vnode *dvp,
    652   1.1     pooka     struct componentname *cnp,
    653   1.1     pooka     int flags)
    654   1.1     pooka {
    655   1.1     pooka 	int error;
    656   1.6     pooka 
    657   1.6     pooka 	rump_schedule();
    658   1.6     pooka 	error = VOP_WHITEOUT(dvp, cnp, flags);
    659   1.3     pooka 	rump_unschedule();
    660   1.6     pooka 
    661   1.1     pooka 	return error;
    662   1.1     pooka }
    663   1.1     pooka 
    664   1.1     pooka int
    665   1.1     pooka RUMP_VOP_GETPAGES(struct vnode *vp,
    666   1.1     pooka     off_t offset,
    667   1.1     pooka     struct vm_page **m,
    668   1.1     pooka     int *count,
    669   1.1     pooka     int centeridx,
    670   1.1     pooka     int access_type,
    671   1.1     pooka     int advice,
    672   1.1     pooka     int flags)
    673   1.1     pooka {
    674   1.1     pooka 	int error;
    675   1.6     pooka 
    676   1.6     pooka 	rump_schedule();
    677   1.6     pooka 	error = VOP_GETPAGES(vp, offset, m, count, centeridx, access_type, advice, flags);
    678   1.3     pooka 	rump_unschedule();
    679   1.6     pooka 
    680   1.1     pooka 	return error;
    681   1.1     pooka }
    682   1.1     pooka 
    683   1.1     pooka int
    684   1.1     pooka RUMP_VOP_PUTPAGES(struct vnode *vp,
    685   1.1     pooka     off_t offlo,
    686   1.1     pooka     off_t offhi,
    687   1.1     pooka     int flags)
    688   1.1     pooka {
    689   1.1     pooka 	int error;
    690   1.6     pooka 
    691   1.6     pooka 	rump_schedule();
    692   1.6     pooka 	error = VOP_PUTPAGES(vp, offlo, offhi, flags);
    693   1.3     pooka 	rump_unschedule();
    694   1.6     pooka 
    695   1.1     pooka 	return error;
    696   1.1     pooka }
    697   1.1     pooka 
    698   1.1     pooka int
    699  1.34  christos RUMP_VOP_GETACL(struct vnode *vp,
    700  1.34  christos     acl_type_t type,
    701  1.34  christos     struct acl *aclp,
    702  1.34  christos     struct kauth_cred *cred)
    703  1.34  christos {
    704  1.34  christos 	int error;
    705  1.34  christos 
    706  1.34  christos 	rump_schedule();
    707  1.34  christos 	error = VOP_GETACL(vp, type, aclp, cred);
    708  1.34  christos 	rump_unschedule();
    709  1.34  christos 
    710  1.34  christos 	return error;
    711  1.34  christos }
    712  1.34  christos 
    713  1.34  christos int
    714  1.34  christos RUMP_VOP_SETACL(struct vnode *vp,
    715  1.34  christos     acl_type_t type,
    716  1.34  christos     struct acl *aclp,
    717  1.34  christos     struct kauth_cred *cred)
    718  1.34  christos {
    719  1.34  christos 	int error;
    720  1.34  christos 
    721  1.34  christos 	rump_schedule();
    722  1.34  christos 	error = VOP_SETACL(vp, type, aclp, cred);
    723  1.34  christos 	rump_unschedule();
    724  1.34  christos 
    725  1.34  christos 	return error;
    726  1.34  christos }
    727  1.34  christos 
    728  1.34  christos int
    729  1.34  christos RUMP_VOP_ACLCHECK(struct vnode *vp,
    730  1.34  christos     acl_type_t type,
    731  1.34  christos     struct acl *aclp,
    732  1.34  christos     struct kauth_cred *cred)
    733  1.34  christos {
    734  1.34  christos 	int error;
    735  1.34  christos 
    736  1.34  christos 	rump_schedule();
    737  1.34  christos 	error = VOP_ACLCHECK(vp, type, aclp, cred);
    738  1.34  christos 	rump_unschedule();
    739  1.34  christos 
    740  1.34  christos 	return error;
    741  1.34  christos }
    742  1.34  christos 
    743  1.34  christos int
    744   1.1     pooka RUMP_VOP_CLOSEEXTATTR(struct vnode *vp,
    745   1.1     pooka     int commit,
    746   1.6     pooka     struct kauth_cred *cred)
    747   1.1     pooka {
    748   1.1     pooka 	int error;
    749   1.6     pooka 
    750   1.6     pooka 	rump_schedule();
    751   1.6     pooka 	error = VOP_CLOSEEXTATTR(vp, commit, cred);
    752   1.3     pooka 	rump_unschedule();
    753   1.6     pooka 
    754   1.1     pooka 	return error;
    755   1.1     pooka }
    756   1.1     pooka 
    757   1.1     pooka int
    758   1.1     pooka RUMP_VOP_GETEXTATTR(struct vnode *vp,
    759   1.1     pooka     int attrnamespace,
    760   1.1     pooka     const char *name,
    761   1.1     pooka     struct uio *uio,
    762   1.1     pooka     size_t *size,
    763   1.6     pooka     struct kauth_cred *cred)
    764   1.1     pooka {
    765   1.1     pooka 	int error;
    766   1.6     pooka 
    767   1.6     pooka 	rump_schedule();
    768   1.6     pooka 	error = VOP_GETEXTATTR(vp, attrnamespace, name, uio, size, cred);
    769   1.3     pooka 	rump_unschedule();
    770   1.6     pooka 
    771   1.1     pooka 	return error;
    772   1.1     pooka }
    773   1.1     pooka 
    774   1.1     pooka int
    775   1.1     pooka RUMP_VOP_LISTEXTATTR(struct vnode *vp,
    776   1.1     pooka     int attrnamespace,
    777   1.1     pooka     struct uio *uio,
    778   1.1     pooka     size_t *size,
    779   1.9      manu     int flag,
    780   1.6     pooka     struct kauth_cred *cred)
    781   1.1     pooka {
    782   1.1     pooka 	int error;
    783   1.6     pooka 
    784   1.6     pooka 	rump_schedule();
    785   1.9      manu 	error = VOP_LISTEXTATTR(vp, attrnamespace, uio, size, flag, cred);
    786   1.3     pooka 	rump_unschedule();
    787   1.6     pooka 
    788   1.1     pooka 	return error;
    789   1.1     pooka }
    790   1.1     pooka 
    791   1.1     pooka int
    792   1.1     pooka RUMP_VOP_OPENEXTATTR(struct vnode *vp,
    793   1.6     pooka     struct kauth_cred *cred)
    794   1.1     pooka {
    795   1.1     pooka 	int error;
    796   1.6     pooka 
    797   1.6     pooka 	rump_schedule();
    798   1.6     pooka 	error = VOP_OPENEXTATTR(vp, cred);
    799   1.3     pooka 	rump_unschedule();
    800   1.6     pooka 
    801   1.1     pooka 	return error;
    802   1.1     pooka }
    803   1.1     pooka 
    804   1.1     pooka int
    805   1.1     pooka RUMP_VOP_DELETEEXTATTR(struct vnode *vp,
    806   1.1     pooka     int attrnamespace,
    807   1.1     pooka     const char *name,
    808   1.6     pooka     struct kauth_cred *cred)
    809   1.1     pooka {
    810   1.1     pooka 	int error;
    811   1.6     pooka 
    812   1.6     pooka 	rump_schedule();
    813   1.6     pooka 	error = VOP_DELETEEXTATTR(vp, attrnamespace, name, cred);
    814   1.3     pooka 	rump_unschedule();
    815   1.6     pooka 
    816   1.1     pooka 	return error;
    817   1.1     pooka }
    818   1.1     pooka 
    819   1.1     pooka int
    820   1.1     pooka RUMP_VOP_SETEXTATTR(struct vnode *vp,
    821   1.1     pooka     int attrnamespace,
    822   1.1     pooka     const char *name,
    823   1.1     pooka     struct uio *uio,
    824   1.6     pooka     struct kauth_cred *cred)
    825   1.1     pooka {
    826   1.1     pooka 	int error;
    827   1.6     pooka 
    828   1.6     pooka 	rump_schedule();
    829   1.6     pooka 	error = VOP_SETEXTATTR(vp, attrnamespace, name, uio, cred);
    830   1.6     pooka 	rump_unschedule();
    831   1.6     pooka 
    832   1.6     pooka 	return error;
    833   1.6     pooka }
    834