Home | History | Annotate | Line # | Download | only in kern
vnode_if.src revision 1.11
      1  1.11  mycroft #	$NetBSD: vnode_if.src,v 1.11 1996/09/07 12:41:06 mycroft Exp $
      2   1.1  mycroft #
      3   1.1  mycroft # Copyright (c) 1992, 1993
      4   1.1  mycroft #	The Regents of the University of California.  All rights reserved.
      5   1.1  mycroft #
      6   1.1  mycroft # Redistribution and use in source and binary forms, with or without
      7   1.1  mycroft # modification, are permitted provided that the following conditions
      8   1.1  mycroft # are met:
      9   1.1  mycroft # 1. Redistributions of source code must retain the above copyright
     10   1.1  mycroft #    notice, this list of conditions and the following disclaimer.
     11   1.1  mycroft # 2. Redistributions in binary form must reproduce the above copyright
     12   1.1  mycroft #    notice, this list of conditions and the following disclaimer in the
     13   1.1  mycroft #    documentation and/or other materials provided with the distribution.
     14   1.1  mycroft # 3. All advertising materials mentioning features or use of this software
     15   1.1  mycroft #    must display the following acknowledgement:
     16   1.1  mycroft #	This product includes software developed by the University of
     17   1.1  mycroft #	California, Berkeley and its contributors.
     18   1.1  mycroft # 4. Neither the name of the University nor the names of its contributors
     19   1.1  mycroft #    may be used to endorse or promote products derived from this software
     20   1.1  mycroft #    without specific prior written permission.
     21   1.1  mycroft #
     22   1.1  mycroft # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     23   1.1  mycroft # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     24   1.1  mycroft # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     25   1.1  mycroft # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     26   1.1  mycroft # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     27   1.1  mycroft # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     28   1.1  mycroft # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     29   1.1  mycroft # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     30   1.1  mycroft # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     31   1.1  mycroft # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     32   1.1  mycroft # SUCH DAMAGE.
     33   1.1  mycroft #
     34   1.2      cgd #	@(#)vnode_if.src	8.3 (Berkeley) 2/3/94
     35   1.1  mycroft #
     36   1.1  mycroft vop_lookup {
     37   1.1  mycroft 	IN struct vnode *dvp;
     38   1.1  mycroft 	INOUT struct vnode **vpp;
     39   1.1  mycroft 	IN struct componentname *cnp;
     40   1.1  mycroft };
     41   1.1  mycroft 
     42   1.1  mycroft vop_create {
     43   1.1  mycroft 	IN WILLRELE struct vnode *dvp;
     44   1.1  mycroft 	OUT struct vnode **vpp;
     45   1.1  mycroft 	IN struct componentname *cnp;
     46   1.1  mycroft 	IN struct vattr *vap;
     47   1.1  mycroft };
     48   1.1  mycroft 
     49   1.1  mycroft vop_mknod {
     50   1.1  mycroft 	IN WILLRELE struct vnode *dvp;
     51   1.1  mycroft 	OUT WILLRELE struct vnode **vpp;
     52   1.1  mycroft 	IN struct componentname *cnp;
     53   1.1  mycroft 	IN struct vattr *vap;
     54   1.1  mycroft };
     55   1.1  mycroft 
     56   1.1  mycroft vop_open {
     57   1.1  mycroft 	IN struct vnode *vp;
     58   1.1  mycroft 	IN int mode;
     59   1.1  mycroft 	IN struct ucred *cred;
     60   1.1  mycroft 	IN struct proc *p;
     61   1.1  mycroft };
     62   1.1  mycroft 
     63   1.1  mycroft vop_close {
     64   1.1  mycroft 	IN struct vnode *vp;
     65   1.1  mycroft 	IN int fflag;
     66   1.1  mycroft 	IN struct ucred *cred;
     67   1.1  mycroft 	IN struct proc *p;
     68   1.1  mycroft };
     69   1.1  mycroft 
     70   1.1  mycroft vop_access {
     71   1.1  mycroft 	IN struct vnode *vp;
     72   1.1  mycroft 	IN int mode;
     73   1.1  mycroft 	IN struct ucred *cred;
     74   1.1  mycroft 	IN struct proc *p;
     75   1.1  mycroft };
     76   1.1  mycroft 
     77   1.1  mycroft vop_getattr {
     78   1.1  mycroft 	IN struct vnode *vp;
     79   1.1  mycroft 	IN struct vattr *vap;
     80   1.1  mycroft 	IN struct ucred *cred;
     81   1.1  mycroft 	IN struct proc *p;
     82   1.1  mycroft };
     83   1.1  mycroft 
     84   1.1  mycroft vop_setattr {
     85   1.1  mycroft 	IN struct vnode *vp;
     86   1.1  mycroft 	IN struct vattr *vap;
     87   1.1  mycroft 	IN struct ucred *cred;
     88   1.1  mycroft 	IN struct proc *p;
     89   1.1  mycroft };
     90   1.1  mycroft 
     91   1.1  mycroft vop_read {
     92   1.1  mycroft 	IN struct vnode *vp;
     93   1.1  mycroft 	INOUT struct uio *uio;
     94   1.1  mycroft 	IN int ioflag;
     95   1.1  mycroft 	IN struct ucred *cred;
     96   1.1  mycroft };
     97   1.1  mycroft 
     98   1.1  mycroft vop_write {
     99   1.1  mycroft 	IN struct vnode *vp;
    100   1.1  mycroft 	INOUT struct uio *uio;
    101   1.1  mycroft 	IN int ioflag;
    102   1.1  mycroft 	IN struct ucred *cred;
    103   1.1  mycroft };
    104   1.1  mycroft 
    105   1.1  mycroft vop_ioctl {
    106   1.1  mycroft 	IN struct vnode *vp;
    107   1.4      cgd 	IN u_long command;
    108   1.1  mycroft 	IN caddr_t data;
    109   1.1  mycroft 	IN int fflag;
    110   1.1  mycroft 	IN struct ucred *cred;
    111   1.1  mycroft 	IN struct proc *p;
    112   1.1  mycroft };
    113   1.1  mycroft 
    114  1.11  mycroft vop_poll {
    115   1.1  mycroft 	IN struct vnode *vp;
    116  1.11  mycroft 	IN int events;
    117   1.1  mycroft 	IN struct proc *p;
    118   1.1  mycroft };
    119   1.1  mycroft 
    120   1.1  mycroft vop_mmap {
    121   1.1  mycroft 	IN struct vnode *vp;
    122   1.1  mycroft 	IN int fflags;
    123   1.1  mycroft 	IN struct ucred *cred;
    124   1.1  mycroft 	IN struct proc *p;
    125   1.1  mycroft };
    126   1.1  mycroft 
    127   1.1  mycroft vop_fsync {
    128   1.1  mycroft 	IN struct vnode *vp;
    129   1.1  mycroft 	IN struct ucred *cred;
    130   1.1  mycroft 	IN int waitfor;
    131   1.1  mycroft 	IN struct proc *p;
    132   1.1  mycroft };
    133   1.1  mycroft 
    134   1.1  mycroft # Needs word: Is newoff right?  What's it mean?
    135   1.1  mycroft vop_seek {
    136   1.1  mycroft 	IN struct vnode *vp;
    137   1.1  mycroft 	IN off_t oldoff;
    138   1.1  mycroft 	IN off_t newoff;
    139   1.1  mycroft 	IN struct ucred *cred;
    140   1.1  mycroft };
    141   1.1  mycroft 
    142   1.1  mycroft vop_remove {
    143   1.1  mycroft 	IN WILLRELE struct vnode *dvp;
    144   1.1  mycroft 	IN WILLRELE struct vnode *vp;
    145   1.1  mycroft 	IN struct componentname *cnp;
    146   1.1  mycroft };
    147   1.1  mycroft 
    148   1.1  mycroft vop_link {
    149   1.9  mycroft 	IN WILLRELE struct vnode *dvp;
    150   1.9  mycroft 	IN struct vnode *vp;
    151   1.1  mycroft 	IN struct componentname *cnp;
    152   1.1  mycroft };
    153   1.1  mycroft 
    154   1.1  mycroft vop_rename {
    155   1.1  mycroft 	IN WILLRELE struct vnode *fdvp;
    156   1.1  mycroft 	IN WILLRELE struct vnode *fvp;
    157   1.1  mycroft 	IN struct componentname *fcnp;
    158   1.1  mycroft 	IN WILLRELE struct vnode *tdvp;
    159   1.1  mycroft 	IN WILLRELE struct vnode *tvp;
    160   1.1  mycroft 	IN struct componentname *tcnp;
    161   1.1  mycroft };
    162   1.1  mycroft 
    163   1.1  mycroft vop_mkdir {
    164   1.1  mycroft 	IN WILLRELE struct vnode *dvp;
    165   1.1  mycroft 	OUT struct vnode **vpp;
    166   1.1  mycroft 	IN struct componentname *cnp;
    167   1.1  mycroft 	IN struct vattr *vap;
    168   1.1  mycroft };
    169   1.1  mycroft 
    170   1.1  mycroft vop_rmdir {
    171   1.1  mycroft 	IN WILLRELE struct vnode *dvp;
    172   1.1  mycroft 	IN WILLRELE struct vnode *vp;
    173   1.1  mycroft 	IN struct componentname *cnp;
    174   1.1  mycroft };
    175   1.1  mycroft 
    176   1.1  mycroft vop_symlink {
    177   1.1  mycroft 	IN WILLRELE struct vnode *dvp;
    178   1.1  mycroft 	OUT WILLRELE struct vnode **vpp;
    179   1.1  mycroft 	IN struct componentname *cnp;
    180   1.1  mycroft 	IN struct vattr *vap;
    181   1.1  mycroft 	IN char *target;
    182   1.1  mycroft };
    183   1.1  mycroft 
    184   1.1  mycroft vop_readdir {
    185   1.1  mycroft 	IN struct vnode *vp;
    186   1.1  mycroft 	INOUT struct uio *uio;
    187   1.1  mycroft 	IN struct ucred *cred;
    188   1.1  mycroft 	OUT int *eofflag;
    189   1.1  mycroft 	OUT u_long *cookies;
    190   1.1  mycroft 	IN int ncookies;
    191   1.1  mycroft };
    192   1.1  mycroft 
    193   1.1  mycroft vop_readlink {
    194   1.1  mycroft 	IN struct vnode *vp;
    195   1.1  mycroft 	INOUT struct uio *uio;
    196   1.1  mycroft 	IN struct ucred *cred;
    197   1.1  mycroft };
    198   1.1  mycroft 
    199   1.1  mycroft vop_abortop {
    200   1.1  mycroft 	IN struct vnode *dvp;
    201   1.1  mycroft 	IN struct componentname *cnp;
    202   1.1  mycroft };
    203   1.1  mycroft 
    204   1.1  mycroft vop_inactive {
    205   1.1  mycroft 	IN struct vnode *vp;
    206   1.1  mycroft };
    207   1.1  mycroft 
    208   1.1  mycroft vop_reclaim {
    209   1.1  mycroft 	IN struct vnode *vp;
    210   1.1  mycroft };
    211   1.1  mycroft 
    212   1.1  mycroft vop_lock {
    213   1.1  mycroft 	IN struct vnode *vp;
    214   1.1  mycroft };
    215   1.1  mycroft 
    216   1.1  mycroft vop_unlock {
    217   1.1  mycroft 	IN struct vnode *vp;
    218   1.1  mycroft };
    219   1.1  mycroft 
    220   1.1  mycroft vop_bmap {
    221   1.1  mycroft 	IN struct vnode *vp;
    222   1.1  mycroft 	IN daddr_t bn;
    223   1.1  mycroft 	OUT struct vnode **vpp;
    224   1.1  mycroft 	IN daddr_t *bnp;
    225   1.1  mycroft 	OUT int *runp;
    226   1.1  mycroft };
    227   1.1  mycroft 
    228   1.1  mycroft #vop_strategy {
    229   1.1  mycroft #	IN struct buf *bp;
    230   1.1  mycroft #};
    231   1.1  mycroft 
    232   1.1  mycroft vop_print {
    233   1.1  mycroft 	IN struct vnode *vp;
    234   1.1  mycroft };
    235   1.1  mycroft 
    236   1.1  mycroft vop_islocked {
    237   1.1  mycroft 	IN struct vnode *vp;
    238   1.1  mycroft };
    239   1.1  mycroft 
    240   1.1  mycroft vop_pathconf {
    241   1.1  mycroft 	IN struct vnode *vp;
    242   1.1  mycroft 	IN int name;
    243   1.3      cgd 	OUT register_t *retval;
    244   1.1  mycroft };
    245   1.1  mycroft 
    246   1.1  mycroft vop_advlock {
    247   1.1  mycroft 	IN struct vnode *vp;
    248   1.1  mycroft 	IN caddr_t id;
    249   1.1  mycroft 	IN int op;
    250   1.1  mycroft 	IN struct flock *fl;
    251   1.1  mycroft 	IN int flags;
    252   1.1  mycroft };
    253   1.1  mycroft 
    254   1.1  mycroft vop_blkatoff {
    255   1.1  mycroft 	IN struct vnode *vp;
    256   1.1  mycroft 	IN off_t offset;
    257   1.1  mycroft 	OUT char **res;
    258   1.1  mycroft 	OUT struct buf **bpp;
    259   1.1  mycroft };
    260   1.1  mycroft 
    261   1.1  mycroft vop_valloc {
    262   1.1  mycroft 	IN struct vnode *pvp;
    263   1.1  mycroft 	IN int mode;
    264   1.1  mycroft 	IN struct ucred *cred;
    265   1.1  mycroft 	OUT struct vnode **vpp;
    266   1.1  mycroft };
    267   1.1  mycroft 
    268   1.1  mycroft vop_reallocblks {
    269   1.1  mycroft 	IN struct vnode *vp;
    270   1.1  mycroft 	IN struct cluster_save *buflist;
    271   1.1  mycroft };
    272   1.1  mycroft 
    273   1.1  mycroft vop_vfree {
    274   1.1  mycroft 	IN struct vnode *pvp;
    275   1.1  mycroft 	IN ino_t ino;
    276   1.1  mycroft 	IN int mode;
    277   1.1  mycroft };
    278   1.1  mycroft 
    279   1.1  mycroft vop_truncate {
    280   1.1  mycroft 	IN struct vnode *vp;
    281   1.1  mycroft 	IN off_t length;
    282   1.1  mycroft 	IN int flags;
    283   1.1  mycroft 	IN struct ucred *cred;
    284   1.1  mycroft 	IN struct proc *p;
    285   1.1  mycroft };
    286   1.1  mycroft 
    287   1.1  mycroft vop_update {
    288   1.1  mycroft 	IN struct vnode *vp;
    289  1.10  mycroft 	IN struct timespec *access;
    290  1.10  mycroft 	IN struct timespec *modify;
    291   1.1  mycroft 	IN int waitfor;
    292   1.6  mycroft };
    293   1.6  mycroft 
    294   1.6  mycroft vop_lease {
    295   1.6  mycroft 	IN struct vnode *vp;
    296   1.6  mycroft 	IN struct proc *p;
    297   1.6  mycroft 	IN struct ucred *cred;
    298   1.6  mycroft 	IN int flag;
    299   1.7  mycroft };
    300   1.7  mycroft 
    301   1.7  mycroft vop_whiteout {
    302   1.7  mycroft 	IN struct vnode *dvp;
    303   1.7  mycroft 	IN struct componentname *cnp;
    304   1.7  mycroft 	IN int flags;
    305   1.1  mycroft };
    306   1.1  mycroft 
    307   1.1  mycroft # Needs work: no vp?
    308   1.1  mycroft #vop_bwrite {
    309   1.1  mycroft #	IN struct buf *bp;
    310   1.1  mycroft #};
    311