/
githubmirror
/
lsof
Обзор
Документация
Войти
/
githubmirror
/
lsof
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
lib/dialects/freebsd/include/procfs/pfsnode.h
151 строка
7 KB
Bjorn Helgaas
Fix typos (#313)
02 апр 2024, 04:36
Не верифицирован
02 апр 2024, 04:36
ceb40c3
Код
Авторство
О чём код?
/* * Copyright (c) 1993 Paul Kranenburg * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by Paul Kranenburg. * 4. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $Id: pfsnode.h,v 1.1 1993/12/12 12:26:39 davidg Exp $ */ /* * This structure defines the control data for the proc file system. */ struct pfsnode { struct pfsnode *pfs_next; /* next on list */ struct vnode *pfs_vnode; /* vnode associated with this pfsnode */ pid_t pfs_pid; /* associated process */ u_short pfs_mode; /* mode bits for stat() */ uid_t pfs_uid; /* process' owner */ gid_t pfs_gid; /* process' group */ u_long pfs_vflags; /* chflags() flags */ u_long pfs_flags; /* open flags */ struct vmspace *pfs_vs; }; struct pfsnode *pfshead; /* * Format of a directory entry in /proc */ struct pfsdent { unsigned long d_fileno; unsigned short d_reclen; unsigned short d_namlen; char d_nam[8]; }; #define PFSDENTSIZE (sizeof(struct direct) - MAXNAMELEN + 8) #ifndef DIRBLKSIZ # define DIRBLKSIZ DEV_BSIZE #endif #ifdef DEBUG int pfs_debug; #endif /* * Convert between pfsnode pointers and vnode pointers */ #define VTOPFS(vp) ((struct pfsnode *)(vp)->v_data) #define PFSTOV(pfsp) ((pfsp)->pfs_vnode) /* * Prototypes for PFS operations on vnodes. */ int pfs_badop(); int pfs_doio(); int pfs_lookup __P((struct vnode * vp, struct nameidata *ndp, struct proc *p)); #define pfs_create \ ((int(*) __P((struct nameidata * ndp, struct vattr * vap, \ struct proc * p))) pfs_badop) #define pfs_mknod \ ((int(*) __P((struct nameidata * ndp, struct vattr * vap, \ struct ucred * cred, struct proc * p))) pfs_badop) int pfs_open __P((struct vnode * vp, int mode, struct ucred *cred, struct proc *p)); int pfs_close __P((struct vnode * vp, int fflag, struct ucred *cred, struct proc *p)); int pfs_access __P((struct vnode * vp, int mode, struct ucred *cred, struct proc *p)); int pfs_getattr __P((struct vnode * vp, struct vattr *vap, struct ucred *cred, struct proc *p)); int pfs_setattr __P((struct vnode * vp, struct vattr *vap, struct ucred *cred, struct proc *p)); #define pfs_read \ ((int(*) __P((struct vnode * vp, struct uio * uio, int ioflag, \ struct ucred *cred))) pfs_doio) #define pfs_write \ ((int(*) __P((struct vnode * vp, struct uio * uio, int ioflag, \ struct ucred *cred))) pfs_doio) int pfs_ioctl __P((struct vnode * vp, int command, caddr_t data, int fflag, struct ucred *cred, struct proc *p)); #define pfs_select \ ((int(*) __P((struct vnode * vp, int which, int fflags, \ struct ucred *cred, struct proc *p))) pfs_badop) #define pfs_mmap \ ((int(*) __P((struct vnode * vp, int fflags, struct ucred *cred, \ struct proc *p))) pfs_badop) #define pfs_fsync \ ((int(*) __P((struct vnode * vp, int fflags, struct ucred *cred, \ int waitfor, struct proc *p))) pfs_badop) #define pfs_seek \ ((int(*) __P((struct vnode * vp, off_t oldoff, off_t newoff, \ struct ucred * cred))) pfs_badop) #define pfs_remove \ ((int(*) __P((struct nameidata * ndp, struct proc * p))) pfs_badop) #define pfs_link \ ((int(*) __P((struct vnode * vp, struct nameidata * ndp, \ struct proc * p))) pfs_badop) #define pfs_rename \ ((int(*) __P((struct nameidata * fndp, struct nameidata * tdnp, \ struct proc * p))) pfs_badop) #define pfs_mkdir \ ((int(*) __P((struct nameidata * ndp, struct vattr * vap, \ struct proc * p))) pfs_badop) #define pfs_rmdir \ ((int(*) __P((struct nameidata * ndp, struct proc * p))) pfs_badop) #define pfs_symlink \ ((int(*) __P((struct nameidata * ndp, struct vattr * vap, char *target, \ struct proc *p))) pfs_badop) int pfs_readdir __P((struct vnode * vp, struct uio *uio, struct ucred *cred, int *eofflagp)); #define pfs_readlink \ ((int(*) __P((struct vnode * vp, struct uio * uio, struct ucred * cred))) \ pfs_badop) #define pfs_abortop ((int(*) __P((struct nameidata * ndp))) pfs_badop) int pfs_inactive __P((struct vnode * vp, struct proc *p)); int pfs_reclaim __P((struct vnode * vp)); #define pfs_lock ((int(*) __P((struct vnode * vp))) nullop) #define pfs_unlock ((int(*) __P((struct vnode * vp))) nullop) int pfs_bmap __P((struct vnode * vp, daddr_t bn, struct vnode **vpp, daddr_t *bnp)); int pfs_strategy __P((struct buf * bp)); void pfs_print __P((struct vnode * vp)); #define pfs_islocked ((int(*) __P((struct vnode * vp))) nullop) #define pfs_advlock \ ((int(*) __P((struct vnode * vp, caddr_t id, int op, struct flock *fl, \ int flags))) pfs_badop)