Home | History | Annotate | Line # | Download | only in rumpvfs
rumpvnode_if.c revision 1.34
      1  1.20     pooka /*	$NetBSD: rumpvnode_if.c,v 1.34 2020/05/16 18:31:53 christos 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.32        ad  *	NetBSD: vnode_if.src,v 1.78 2019/10/11 08:04:52 hannken Exp
      9   1.1     pooka  * by the script:
     10  1.33        ad  *	NetBSD: vnode_if.sh,v 1.69 2020/02/23 22:14:04 ad 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.34 2020/05/16 18:31:53 christos 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.1     pooka #include <sys/vnode.h>
     49   1.1     pooka #include <sys/lock.h>
     50  1.20     pooka #include <rump/rumpvnode_if.h>
     51  1.19     pooka #include <rump-sys/kern.h>
     52  1.19     pooka 
     53   1.1     pooka int
     54  1.10   hannken RUMP_VOP_BWRITE(struct vnode *vp,
     55  1.10   hannken     struct buf *bp)
     56   1.1     pooka {
     57   1.1     pooka 	int error;
     58   1.6     pooka 
     59   1.6     pooka 	rump_schedule();
     60  1.10   hannken 	error = VOP_BWRITE(vp, bp);
     61   1.3     pooka 	rump_unschedule();
     62   1.6     pooka 
     63   1.1     pooka 	return error;
     64   1.1     pooka }
     65   1.1     pooka 
     66   1.1     pooka int
     67   1.1     pooka RUMP_VOP_LOOKUP(struct vnode *dvp,
     68   1.1     pooka     struct vnode **vpp,
     69   1.1     pooka     struct componentname *cnp)
     70   1.1     pooka {
     71   1.1     pooka 	int error;
     72   1.6     pooka 
     73   1.6     pooka 	rump_schedule();
     74   1.6     pooka 	error = VOP_LOOKUP(dvp, vpp, cnp);
     75   1.6     pooka 	rump_unschedule();
     76   1.6     pooka 
     77   1.1     pooka 	return error;
     78   1.1     pooka }
     79   1.1     pooka 
     80   1.1     pooka int
     81   1.1     pooka RUMP_VOP_CREATE(struct vnode *dvp,
     82   1.1     pooka     struct vnode **vpp,
     83   1.1     pooka     struct componentname *cnp,
     84   1.1     pooka     struct vattr *vap)
     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_CREATE(dvp, vpp, cnp, vap);
     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_MKNOD(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_MKNOD(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_OPEN(struct vnode *vp,
    112   1.1     pooka     int mode,
    113   1.6     pooka     struct kauth_cred *cred)
    114   1.1     pooka {
    115   1.1     pooka 	int error;
    116   1.6     pooka 
    117   1.6     pooka 	rump_schedule();
    118   1.6     pooka 	error = VOP_OPEN(vp, mode, cred);
    119   1.3     pooka 	rump_unschedule();
    120   1.6     pooka 
    121   1.1     pooka 	return error;
    122   1.1     pooka }
    123   1.1     pooka 
    124   1.1     pooka int
    125   1.1     pooka RUMP_VOP_CLOSE(struct vnode *vp,
    126   1.1     pooka     int fflag,
    127   1.6     pooka     struct kauth_cred *cred)
    128   1.1     pooka {
    129   1.1     pooka 	int error;
    130   1.6     pooka 
    131   1.6     pooka 	rump_schedule();
    132   1.6     pooka 	error = VOP_CLOSE(vp, fflag, cred);
    133   1.3     pooka 	rump_unschedule();
    134   1.6     pooka 
    135   1.1     pooka 	return error;
    136   1.1     pooka }
    137   1.1     pooka 
    138   1.1     pooka int
    139   1.1     pooka RUMP_VOP_ACCESS(struct vnode *vp,
    140  1.34  christos     accmode_t accmode,
    141   1.6     pooka     struct kauth_cred *cred)
    142   1.1     pooka {
    143   1.1     pooka 	int error;
    144   1.6     pooka 
    145   1.6     pooka 	rump_schedule();
    146  1.34  christos 	error = VOP_ACCESS(vp, accmode, cred);
    147  1.34  christos 	rump_unschedule();
    148  1.34  christos 
    149  1.34  christos 	return error;
    150  1.34  christos }
    151  1.34  christos 
    152  1.34  christos int
    153  1.34  christos RUMP_VOP_ACCESSX(struct vnode *vp,
    154  1.34  christos     accmode_t accmode,
    155  1.34  christos     struct kauth_cred *cred)
    156  1.34  christos {
    157  1.34  christos 	int error;
    158  1.34  christos 
    159  1.34  christos 	rump_schedule();
    160  1.34  christos 	error = VOP_ACCESSX(vp, accmode, cred);
    161   1.3     pooka 	rump_unschedule();
    162   1.6     pooka 
    163   1.1     pooka 	return error;
    164   1.1     pooka }
    165   1.1     pooka 
    166   1.1     pooka int
    167   1.1     pooka RUMP_VOP_GETATTR(struct vnode *vp,
    168   1.1     pooka     struct vattr *vap,
    169   1.6     pooka     struct kauth_cred *cred)
    170   1.1     pooka {
    171   1.1     pooka 	int error;
    172   1.6     pooka 
    173   1.6     pooka 	rump_schedule();
    174   1.6     pooka 	error = VOP_GETATTR(vp, vap, cred);
    175   1.3     pooka 	rump_unschedule();
    176   1.6     pooka 
    177   1.1     pooka 	return error;
    178   1.1     pooka }
    179   1.1     pooka 
    180   1.1     pooka int
    181   1.1     pooka RUMP_VOP_SETATTR(struct vnode *vp,
    182   1.1     pooka     struct vattr *vap,
    183   1.6     pooka     struct kauth_cred *cred)
    184   1.1     pooka {
    185   1.1     pooka 	int error;
    186   1.6     pooka 
    187   1.6     pooka 	rump_schedule();
    188   1.6     pooka 	error = VOP_SETATTR(vp, vap, cred);
    189   1.3     pooka 	rump_unschedule();
    190   1.6     pooka 
    191   1.1     pooka 	return error;
    192   1.1     pooka }
    193   1.1     pooka 
    194   1.1     pooka int
    195   1.1     pooka RUMP_VOP_READ(struct vnode *vp,
    196   1.1     pooka     struct uio *uio,
    197   1.1     pooka     int ioflag,
    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_READ(vp, uio, ioflag, 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_WRITE(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_WRITE(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.16  dholland RUMP_VOP_FALLOCATE(struct vnode *vp,
    226  1.16  dholland     off_t pos,
    227  1.16  dholland     off_t len)
    228  1.16  dholland {
    229  1.16  dholland 	int error;
    230  1.16  dholland 
    231  1.16  dholland 	rump_schedule();
    232  1.16  dholland 	error = VOP_FALLOCATE(vp, pos, len);
    233  1.16  dholland 	rump_unschedule();
    234  1.16  dholland 
    235  1.16  dholland 	return error;
    236  1.16  dholland }
    237  1.16  dholland 
    238  1.16  dholland int
    239  1.16  dholland RUMP_VOP_FDISCARD(struct vnode *vp,
    240  1.16  dholland     off_t pos,
    241  1.16  dholland     off_t len)
    242  1.16  dholland {
    243  1.16  dholland 	int error;
    244  1.16  dholland 
    245  1.16  dholland 	rump_schedule();
    246  1.16  dholland 	error = VOP_FDISCARD(vp, pos, len);
    247  1.16  dholland 	rump_unschedule();
    248  1.16  dholland 
    249  1.16  dholland 	return error;
    250  1.16  dholland }
    251  1.16  dholland 
    252  1.16  dholland int
    253   1.1     pooka RUMP_VOP_IOCTL(struct vnode *vp,
    254   1.1     pooka     u_long command,
    255   1.1     pooka     void *data,
    256   1.1     pooka     int fflag,
    257   1.6     pooka     struct kauth_cred *cred)
    258   1.1     pooka {
    259   1.1     pooka 	int error;
    260   1.6     pooka 
    261   1.6     pooka 	rump_schedule();
    262   1.6     pooka 	error = VOP_IOCTL(vp, command, data, fflag, cred);
    263   1.3     pooka 	rump_unschedule();
    264   1.6     pooka 
    265   1.1     pooka 	return error;
    266   1.1     pooka }
    267   1.1     pooka 
    268   1.1     pooka int
    269   1.1     pooka RUMP_VOP_FCNTL(struct vnode *vp,
    270   1.1     pooka     u_int command,
    271   1.1     pooka     void *data,
    272   1.1     pooka     int fflag,
    273   1.6     pooka     struct kauth_cred *cred)
    274   1.1     pooka {
    275   1.1     pooka 	int error;
    276   1.6     pooka 
    277   1.6     pooka 	rump_schedule();
    278   1.6     pooka 	error = VOP_FCNTL(vp, command, data, fflag, cred);
    279   1.3     pooka 	rump_unschedule();
    280   1.6     pooka 
    281   1.1     pooka 	return error;
    282   1.1     pooka }
    283   1.1     pooka 
    284   1.1     pooka int
    285   1.1     pooka RUMP_VOP_POLL(struct vnode *vp,
    286   1.1     pooka     int events)
    287   1.1     pooka {
    288   1.1     pooka 	int error;
    289   1.6     pooka 
    290   1.6     pooka 	rump_schedule();
    291   1.6     pooka 	error = VOP_POLL(vp, events);
    292   1.3     pooka 	rump_unschedule();
    293   1.6     pooka 
    294   1.1     pooka 	return error;
    295   1.1     pooka }
    296   1.1     pooka 
    297   1.1     pooka int
    298   1.1     pooka RUMP_VOP_KQFILTER(struct vnode *vp,
    299   1.1     pooka     struct knote *kn)
    300   1.1     pooka {
    301   1.1     pooka 	int error;
    302   1.6     pooka 
    303   1.6     pooka 	rump_schedule();
    304   1.6     pooka 	error = VOP_KQFILTER(vp, kn);
    305   1.3     pooka 	rump_unschedule();
    306   1.6     pooka 
    307   1.1     pooka 	return error;
    308   1.1     pooka }
    309   1.1     pooka 
    310   1.1     pooka int
    311   1.1     pooka RUMP_VOP_REVOKE(struct vnode *vp,
    312   1.1     pooka     int flags)
    313   1.1     pooka {
    314   1.1     pooka 	int error;
    315   1.6     pooka 
    316   1.6     pooka 	rump_schedule();
    317   1.6     pooka 	error = VOP_REVOKE(vp, flags);
    318   1.3     pooka 	rump_unschedule();
    319   1.6     pooka 
    320   1.1     pooka 	return error;
    321   1.1     pooka }
    322   1.1     pooka 
    323   1.1     pooka int
    324   1.1     pooka RUMP_VOP_MMAP(struct vnode *vp,
    325   1.1     pooka     int prot,
    326   1.6     pooka     struct kauth_cred *cred)
    327   1.1     pooka {
    328   1.1     pooka 	int error;
    329   1.6     pooka 
    330   1.6     pooka 	rump_schedule();
    331   1.6     pooka 	error = VOP_MMAP(vp, prot, cred);
    332   1.3     pooka 	rump_unschedule();
    333   1.6     pooka 
    334   1.1     pooka 	return error;
    335   1.1     pooka }
    336   1.1     pooka 
    337   1.1     pooka int
    338   1.1     pooka RUMP_VOP_FSYNC(struct vnode *vp,
    339   1.6     pooka     struct kauth_cred *cred,
    340   1.1     pooka     int flags,
    341   1.1     pooka     off_t offlo,
    342   1.1     pooka     off_t offhi)
    343   1.1     pooka {
    344   1.1     pooka 	int error;
    345   1.6     pooka 
    346   1.6     pooka 	rump_schedule();
    347   1.6     pooka 	error = VOP_FSYNC(vp, cred, flags, offlo, offhi);
    348   1.3     pooka 	rump_unschedule();
    349   1.6     pooka 
    350   1.1     pooka 	return error;
    351   1.1     pooka }
    352   1.1     pooka 
    353   1.1     pooka int
    354   1.1     pooka RUMP_VOP_SEEK(struct vnode *vp,
    355   1.1     pooka     off_t oldoff,
    356   1.1     pooka     off_t newoff,
    357   1.6     pooka     struct kauth_cred *cred)
    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_SEEK(vp, oldoff, newoff, cred);
    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_REMOVE(struct vnode *dvp,
    370   1.1     pooka     struct vnode *vp,
    371   1.1     pooka     struct componentname *cnp)
    372   1.1     pooka {
    373   1.1     pooka 	int error;
    374   1.6     pooka 
    375   1.6     pooka 	rump_schedule();
    376   1.6     pooka 	error = VOP_REMOVE(dvp, vp, cnp);
    377   1.3     pooka 	rump_unschedule();
    378   1.6     pooka 
    379   1.1     pooka 	return error;
    380   1.1     pooka }
    381   1.1     pooka 
    382   1.1     pooka int
    383   1.1     pooka RUMP_VOP_LINK(struct vnode *dvp,
    384   1.1     pooka     struct vnode *vp,
    385   1.1     pooka     struct componentname *cnp)
    386   1.1     pooka {
    387   1.1     pooka 	int error;
    388   1.6     pooka 
    389   1.6     pooka 	rump_schedule();
    390   1.6     pooka 	error = VOP_LINK(dvp, vp, cnp);
    391   1.3     pooka 	rump_unschedule();
    392   1.6     pooka 
    393   1.1     pooka 	return error;
    394   1.1     pooka }
    395   1.1     pooka 
    396   1.1     pooka int
    397   1.1     pooka RUMP_VOP_RENAME(struct vnode *fdvp,
    398   1.1     pooka     struct vnode *fvp,
    399   1.1     pooka     struct componentname *fcnp,
    400   1.1     pooka     struct vnode *tdvp,
    401   1.1     pooka     struct vnode *tvp,
    402   1.1     pooka     struct componentname *tcnp)
    403   1.1     pooka {
    404   1.1     pooka 	int error;
    405   1.6     pooka 
    406   1.6     pooka 	rump_schedule();
    407   1.6     pooka 	error = VOP_RENAME(fdvp, fvp, fcnp, tdvp, tvp, tcnp);
    408   1.3     pooka 	rump_unschedule();
    409   1.6     pooka 
    410   1.1     pooka 	return error;
    411   1.1     pooka }
    412   1.1     pooka 
    413   1.1     pooka int
    414   1.1     pooka RUMP_VOP_MKDIR(struct vnode *dvp,
    415   1.1     pooka     struct vnode **vpp,
    416   1.1     pooka     struct componentname *cnp,
    417   1.1     pooka     struct vattr *vap)
    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_MKDIR(dvp, vpp, cnp, vap);
    423   1.6     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_RMDIR(struct vnode *dvp,
    430   1.1     pooka     struct vnode *vp,
    431   1.1     pooka     struct componentname *cnp)
    432   1.1     pooka {
    433   1.1     pooka 	int error;
    434   1.6     pooka 
    435   1.6     pooka 	rump_schedule();
    436   1.6     pooka 	error = VOP_RMDIR(dvp, vp, cnp);
    437   1.3     pooka 	rump_unschedule();
    438   1.6     pooka 
    439   1.1     pooka 	return error;
    440   1.1     pooka }
    441   1.1     pooka 
    442   1.1     pooka int
    443   1.1     pooka RUMP_VOP_SYMLINK(struct vnode *dvp,
    444   1.1     pooka     struct vnode **vpp,
    445   1.1     pooka     struct componentname *cnp,
    446   1.1     pooka     struct vattr *vap,
    447   1.1     pooka     char *target)
    448   1.1     pooka {
    449   1.1     pooka 	int error;
    450   1.6     pooka 
    451   1.6     pooka 	rump_schedule();
    452   1.6     pooka 	error = VOP_SYMLINK(dvp, vpp, cnp, vap, target);
    453   1.6     pooka 	rump_unschedule();
    454   1.6     pooka 
    455   1.1     pooka 	return error;
    456   1.1     pooka }
    457   1.1     pooka 
    458   1.1     pooka int
    459   1.1     pooka RUMP_VOP_READDIR(struct vnode *vp,
    460   1.1     pooka     struct uio *uio,
    461   1.6     pooka     struct kauth_cred *cred,
    462   1.1     pooka     int *eofflag,
    463   1.1     pooka     off_t **cookies,
    464   1.1     pooka     int *ncookies)
    465   1.1     pooka {
    466   1.1     pooka 	int error;
    467   1.6     pooka 
    468   1.6     pooka 	rump_schedule();
    469   1.6     pooka 	error = VOP_READDIR(vp, uio, cred, eofflag, cookies, ncookies);
    470   1.3     pooka 	rump_unschedule();
    471   1.6     pooka 
    472   1.1     pooka 	return error;
    473   1.1     pooka }
    474   1.1     pooka 
    475   1.1     pooka int
    476   1.1     pooka RUMP_VOP_READLINK(struct vnode *vp,
    477   1.1     pooka     struct uio *uio,
    478   1.6     pooka     struct kauth_cred *cred)
    479   1.1     pooka {
    480   1.1     pooka 	int error;
    481   1.6     pooka 
    482   1.6     pooka 	rump_schedule();
    483   1.6     pooka 	error = VOP_READLINK(vp, uio, cred);
    484   1.3     pooka 	rump_unschedule();
    485   1.6     pooka 
    486   1.1     pooka 	return error;
    487   1.1     pooka }
    488   1.1     pooka 
    489   1.1     pooka int
    490   1.1     pooka RUMP_VOP_ABORTOP(struct vnode *dvp,
    491   1.1     pooka     struct componentname *cnp)
    492   1.1     pooka {
    493   1.1     pooka 	int error;
    494   1.6     pooka 
    495   1.6     pooka 	rump_schedule();
    496   1.6     pooka 	error = VOP_ABORTOP(dvp, cnp);
    497   1.3     pooka 	rump_unschedule();
    498   1.6     pooka 
    499   1.1     pooka 	return error;
    500   1.1     pooka }
    501   1.1     pooka 
    502   1.1     pooka int
    503   1.1     pooka RUMP_VOP_INACTIVE(struct vnode *vp,
    504   1.1     pooka     bool *recycle)
    505   1.1     pooka {
    506   1.1     pooka 	int error;
    507   1.6     pooka 
    508   1.6     pooka 	rump_schedule();
    509   1.6     pooka 	error = VOP_INACTIVE(vp, recycle);
    510   1.3     pooka 	rump_unschedule();
    511   1.6     pooka 
    512   1.1     pooka 	return error;
    513   1.1     pooka }
    514   1.1     pooka 
    515   1.1     pooka int
    516   1.1     pooka RUMP_VOP_RECLAIM(struct vnode *vp)
    517   1.1     pooka {
    518   1.1     pooka 	int error;
    519   1.6     pooka 
    520   1.6     pooka 	rump_schedule();
    521   1.6     pooka 	error = VOP_RECLAIM(vp);
    522   1.3     pooka 	rump_unschedule();
    523   1.6     pooka 
    524   1.1     pooka 	return error;
    525   1.1     pooka }
    526   1.1     pooka 
    527   1.1     pooka int
    528   1.1     pooka RUMP_VOP_LOCK(struct vnode *vp,
    529   1.1     pooka     int flags)
    530   1.1     pooka {
    531   1.1     pooka 	int error;
    532   1.6     pooka 
    533   1.6     pooka 	rump_schedule();
    534   1.6     pooka 	error = VOP_LOCK(vp, flags);
    535   1.3     pooka 	rump_unschedule();
    536   1.6     pooka 
    537   1.1     pooka 	return error;
    538   1.1     pooka }
    539   1.1     pooka 
    540   1.1     pooka int
    541   1.7   hannken RUMP_VOP_UNLOCK(struct vnode *vp)
    542   1.1     pooka {
    543   1.1     pooka 	int error;
    544   1.6     pooka 
    545   1.6     pooka 	rump_schedule();
    546   1.7   hannken 	error = VOP_UNLOCK(vp);
    547   1.3     pooka 	rump_unschedule();
    548   1.6     pooka 
    549   1.1     pooka 	return error;
    550   1.1     pooka }
    551   1.1     pooka 
    552   1.1     pooka int
    553   1.1     pooka RUMP_VOP_BMAP(struct vnode *vp,
    554  1.12     pooka     int64_t bn,
    555   1.1     pooka     struct vnode **vpp,
    556  1.12     pooka     int64_t *bnp,
    557   1.1     pooka     int *runp)
    558   1.1     pooka {
    559   1.1     pooka 	int error;
    560   1.6     pooka 
    561   1.6     pooka 	rump_schedule();
    562   1.6     pooka 	error = VOP_BMAP(vp, bn, vpp, bnp, runp);
    563   1.3     pooka 	rump_unschedule();
    564   1.6     pooka 
    565   1.1     pooka 	return error;
    566   1.1     pooka }
    567   1.1     pooka 
    568   1.1     pooka int
    569   1.1     pooka RUMP_VOP_STRATEGY(struct vnode *vp,
    570   1.1     pooka     struct buf *bp)
    571   1.1     pooka {
    572   1.1     pooka 	int error;
    573   1.6     pooka 
    574   1.6     pooka 	rump_schedule();
    575   1.6     pooka 	error = VOP_STRATEGY(vp, bp);
    576   1.3     pooka 	rump_unschedule();
    577   1.6     pooka 
    578   1.1     pooka 	return error;
    579   1.1     pooka }
    580   1.1     pooka 
    581   1.1     pooka int
    582   1.1     pooka RUMP_VOP_PRINT(struct vnode *vp)
    583   1.1     pooka {
    584   1.1     pooka 	int error;
    585   1.6     pooka 
    586   1.6     pooka 	rump_schedule();
    587   1.6     pooka 	error = VOP_PRINT(vp);
    588   1.3     pooka 	rump_unschedule();
    589   1.6     pooka 
    590   1.1     pooka 	return error;
    591   1.1     pooka }
    592   1.1     pooka 
    593   1.1     pooka int
    594   1.1     pooka RUMP_VOP_ISLOCKED(struct vnode *vp)
    595   1.1     pooka {
    596   1.1     pooka 	int error;
    597   1.6     pooka 
    598   1.6     pooka 	rump_schedule();
    599   1.6     pooka 	error = VOP_ISLOCKED(vp);
    600   1.3     pooka 	rump_unschedule();
    601   1.6     pooka 
    602   1.1     pooka 	return error;
    603   1.1     pooka }
    604   1.1     pooka 
    605   1.1     pooka int
    606   1.1     pooka RUMP_VOP_PATHCONF(struct vnode *vp,
    607   1.1     pooka     int name,
    608   1.1     pooka     register_t *retval)
    609   1.1     pooka {
    610   1.1     pooka 	int error;
    611   1.6     pooka 
    612   1.6     pooka 	rump_schedule();
    613   1.6     pooka 	error = VOP_PATHCONF(vp, name, retval);
    614   1.3     pooka 	rump_unschedule();
    615   1.6     pooka 
    616   1.1     pooka 	return error;
    617   1.1     pooka }
    618   1.1     pooka 
    619   1.1     pooka int
    620   1.1     pooka RUMP_VOP_ADVLOCK(struct vnode *vp,
    621   1.1     pooka     void *id,
    622   1.1     pooka     int op,
    623   1.1     pooka     struct flock *fl,
    624   1.1     pooka     int flags)
    625   1.1     pooka {
    626   1.1     pooka 	int error;
    627   1.6     pooka 
    628   1.6     pooka 	rump_schedule();
    629   1.6     pooka 	error = VOP_ADVLOCK(vp, id, op, fl, flags);
    630   1.3     pooka 	rump_unschedule();
    631   1.6     pooka 
    632   1.1     pooka 	return error;
    633   1.1     pooka }
    634   1.1     pooka 
    635   1.1     pooka int
    636   1.1     pooka RUMP_VOP_WHITEOUT(struct vnode *dvp,
    637   1.1     pooka     struct componentname *cnp,
    638   1.1     pooka     int flags)
    639   1.1     pooka {
    640   1.1     pooka 	int error;
    641   1.6     pooka 
    642   1.6     pooka 	rump_schedule();
    643   1.6     pooka 	error = VOP_WHITEOUT(dvp, cnp, flags);
    644   1.3     pooka 	rump_unschedule();
    645   1.6     pooka 
    646   1.1     pooka 	return error;
    647   1.1     pooka }
    648   1.1     pooka 
    649   1.1     pooka int
    650   1.1     pooka RUMP_VOP_GETPAGES(struct vnode *vp,
    651   1.1     pooka     off_t offset,
    652   1.1     pooka     struct vm_page **m,
    653   1.1     pooka     int *count,
    654   1.1     pooka     int centeridx,
    655   1.1     pooka     int access_type,
    656   1.1     pooka     int advice,
    657   1.1     pooka     int flags)
    658   1.1     pooka {
    659   1.1     pooka 	int error;
    660   1.6     pooka 
    661   1.6     pooka 	rump_schedule();
    662   1.6     pooka 	error = VOP_GETPAGES(vp, offset, m, count, centeridx, access_type, advice, flags);
    663   1.3     pooka 	rump_unschedule();
    664   1.6     pooka 
    665   1.1     pooka 	return error;
    666   1.1     pooka }
    667   1.1     pooka 
    668   1.1     pooka int
    669   1.1     pooka RUMP_VOP_PUTPAGES(struct vnode *vp,
    670   1.1     pooka     off_t offlo,
    671   1.1     pooka     off_t offhi,
    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_PUTPAGES(vp, offlo, offhi, 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.34  christos RUMP_VOP_GETACL(struct vnode *vp,
    685  1.34  christos     acl_type_t type,
    686  1.34  christos     struct acl *aclp,
    687  1.34  christos     struct kauth_cred *cred)
    688  1.34  christos {
    689  1.34  christos 	int error;
    690  1.34  christos 
    691  1.34  christos 	rump_schedule();
    692  1.34  christos 	error = VOP_GETACL(vp, type, aclp, cred);
    693  1.34  christos 	rump_unschedule();
    694  1.34  christos 
    695  1.34  christos 	return error;
    696  1.34  christos }
    697  1.34  christos 
    698  1.34  christos int
    699  1.34  christos RUMP_VOP_SETACL(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_SETACL(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_ACLCHECK(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_ACLCHECK(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.1     pooka RUMP_VOP_CLOSEEXTATTR(struct vnode *vp,
    730   1.1     pooka     int commit,
    731   1.6     pooka     struct kauth_cred *cred)
    732   1.1     pooka {
    733   1.1     pooka 	int error;
    734   1.6     pooka 
    735   1.6     pooka 	rump_schedule();
    736   1.6     pooka 	error = VOP_CLOSEEXTATTR(vp, commit, cred);
    737   1.3     pooka 	rump_unschedule();
    738   1.6     pooka 
    739   1.1     pooka 	return error;
    740   1.1     pooka }
    741   1.1     pooka 
    742   1.1     pooka int
    743   1.1     pooka RUMP_VOP_GETEXTATTR(struct vnode *vp,
    744   1.1     pooka     int attrnamespace,
    745   1.1     pooka     const char *name,
    746   1.1     pooka     struct uio *uio,
    747   1.1     pooka     size_t *size,
    748   1.6     pooka     struct kauth_cred *cred)
    749   1.1     pooka {
    750   1.1     pooka 	int error;
    751   1.6     pooka 
    752   1.6     pooka 	rump_schedule();
    753   1.6     pooka 	error = VOP_GETEXTATTR(vp, attrnamespace, name, uio, size, cred);
    754   1.3     pooka 	rump_unschedule();
    755   1.6     pooka 
    756   1.1     pooka 	return error;
    757   1.1     pooka }
    758   1.1     pooka 
    759   1.1     pooka int
    760   1.1     pooka RUMP_VOP_LISTEXTATTR(struct vnode *vp,
    761   1.1     pooka     int attrnamespace,
    762   1.1     pooka     struct uio *uio,
    763   1.1     pooka     size_t *size,
    764   1.9      manu     int flag,
    765   1.6     pooka     struct kauth_cred *cred)
    766   1.1     pooka {
    767   1.1     pooka 	int error;
    768   1.6     pooka 
    769   1.6     pooka 	rump_schedule();
    770   1.9      manu 	error = VOP_LISTEXTATTR(vp, attrnamespace, uio, size, flag, cred);
    771   1.3     pooka 	rump_unschedule();
    772   1.6     pooka 
    773   1.1     pooka 	return error;
    774   1.1     pooka }
    775   1.1     pooka 
    776   1.1     pooka int
    777   1.1     pooka RUMP_VOP_OPENEXTATTR(struct vnode *vp,
    778   1.6     pooka     struct kauth_cred *cred)
    779   1.1     pooka {
    780   1.1     pooka 	int error;
    781   1.6     pooka 
    782   1.6     pooka 	rump_schedule();
    783   1.6     pooka 	error = VOP_OPENEXTATTR(vp, cred);
    784   1.3     pooka 	rump_unschedule();
    785   1.6     pooka 
    786   1.1     pooka 	return error;
    787   1.1     pooka }
    788   1.1     pooka 
    789   1.1     pooka int
    790   1.1     pooka RUMP_VOP_DELETEEXTATTR(struct vnode *vp,
    791   1.1     pooka     int attrnamespace,
    792   1.1     pooka     const char *name,
    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_DELETEEXTATTR(vp, attrnamespace, name, 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_SETEXTATTR(struct vnode *vp,
    806   1.1     pooka     int attrnamespace,
    807   1.1     pooka     const char *name,
    808   1.1     pooka     struct uio *uio,
    809   1.6     pooka     struct kauth_cred *cred)
    810   1.1     pooka {
    811   1.1     pooka 	int error;
    812   1.6     pooka 
    813   1.6     pooka 	rump_schedule();
    814   1.6     pooka 	error = VOP_SETEXTATTR(vp, attrnamespace, name, uio, cred);
    815   1.6     pooka 	rump_unschedule();
    816   1.6     pooka 
    817   1.6     pooka 	return error;
    818   1.6     pooka }
    819