/
githubmirror
/
lsof
Обзор
Документация
Войти
/
githubmirror
/
lsof
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
lib/dialects/hpux/kmem/dstore.c
226 строк
6 KB
Jiajie Chen
Change folder structure for library changes:
27 мар 2023, 14:44
27 мар 2023, 14:44
439f90c
Код
Авторство
О чём код?
/* * dstore.c - /dev/kmem-based HP-UX global storage for lsof */ /* * Copyright 1994 Purdue Research Foundation, West Lafayette, Indiana * 47907. All rights reserved. * * Written by Victor A. Abell * * This software is not subject to any license of the American Telephone * and Telegraph Company or the Regents of the University of California. * * Permission is granted to anyone to use this software for any purpose on * any computer system, and to alter it and redistribute it freely, subject * to the following restrictions: * * 1. Neither the authors nor Purdue University are responsible for any * consequences of the use of this software. * * 2. The origin of this software must not be misrepresented, either by * explicit claim or by omission. Credit to the authors and Purdue * University must appear in documentation and sources. * * 3. Altered versions must be plainly marked as such, and must not be * misrepresented as being the original software. * * 4. This notice may not be removed or altered. */ #ifndef lint static char copyright[] = "@(#) Copyright 1994 Purdue Research Foundation.\nAll rights reserved.\n"; #endif #include "common.h" /* * Global storage definitions */ #if defined(HAS_AFS) # if defined(HASAOPT) char *AFSApath = (char *)NULL; /* alternate AFS name list path * (from -A) */ # endif /* defined(HASAOPT) */ struct vfs *AFSVfsp = (struct vfs *)NULL; /* AFS vfs struct kernel address */ #endif /* defined(HAS_AFS) */ int CloneMaj; /* clone major device number */ /* * Drive_Nl -- table to drive the building of Nl[] via build_Nl() * (See lsof.h and misc.c.) */ struct drive_Nl Drive_Nl[] = { #if defined(hp9000s300) || defined(__hp9000s300) {"arFid", "_afs_rootFid"}, {"avops", "_afs_vnodeops"}, {"avol", "_afs_volumes"}, {X_NCACHE, "_ncache"}, {X_NCSIZE, "_ncsize"}, {"proc", "_proc"}, {"nvops", "_nfs_vnodeops"}, {"nvops3", "_nfs_vnodeops3"}, {"nv3ops", "_nfs3_vnodeops"}, {"nproc", "_nproc"}, {"uvops", "_ufs_vnodeops"}, {"vfops", "_vnodefops"}, # if HPUXV < 800 {"upmap", "_Usrptmap"}, {"upt", "_usrpt"}, # endif /* HPUXV<800 */ #endif /* defined(hp9000s300) || defined(__hp9000s300) */ #if defined(hp9000s800) || defined(__hp9000s800) {"arFid", "afs_rootFid"}, {"avops", "afs_vnodeops"}, {"avol", "afs_volumes"}, {X_NCACHE, "ncache"}, {X_NCSIZE, "ncsize"}, {"proc", "proc"}, {"nvops", "nfs_vnodeops"}, {"nvops3", "nfs_vnodeops3"}, {"nv3ops", "nfs3_vnodeops"}, {"nproc", "nproc"}, {"uvops", "ufs_vnodeops"}, {"vfops", "vnodefops"}, # if HPUXV < 800 {"ubase", "ubase"}, {"npids", "npids"}, # else /* HPUXV>=800 */ # if HPUXV >= 1000 # if HPUXV >= 1030 {"clmaj", "clonemajor"}, # endif /* HPUXV>=1030 */ {"cvops", "cdfs_vnodeops"}, {"fvops", "fifo_vnodeops"}, {"pvops", "pipe_vnodeops"}, {"svops", "spec_vnodeops"}, {"vvops", "vx_vnodeops"}, # endif /* HPUXV>=1000 */ # endif /* HPUXV<800 */ #endif /* defined(hp9000s800) || defined(__hp9000s800) */ {"mvops", "mvfs_vnodeops"}, #if HPUXV >= 1100 {"chunksz", "sizeof_fd_chunk_t"}, #endif /* HPUXV>=1100 */ {"", ""}, {NULL, NULL}}; int HaveCloneMaj = 0; /* CloneMaj status */ int Kd = -1; /* /dev/kmem file descriptor */ KA_T Kpa; /* kernel proc structure address */ #if HPUXV >= 1010 KA_T Ktp; /* kernel thread pointer from proc * struct */ #endif /* HPUXV>=1010 */ struct l_vfs *Lvfs = NULL; /* local vfs structure table */ #if HPUXV < 800 int Mem = -1; /* /dev/mem file descriptor */ #endif /* HPUXV<800 */ #if HPUXV < 800 && defined(hp9000s800) int npids; /* number of PIDs (for uvadd()) */ struct proc *proc; /* process table address (for uvadd()) */ #endif /* HPUXV<800 && defined(hp9000s300) */ #if defined(HASFSTRUCT) /* * Pff_tab[] - table for printing file flags */ struct pff_tab Pff_tab[] = { {(long)FREAD, FF_READ}, {(long)FWRITE, FF_WRITE}, {(long)FNDELAY, FF_NDELAY}, {(long)FAPPEND, FF_APPEND}, {(long)FMARK, FF_MARK}, {(long)FDEFER, FF_DEFER}, {(long)FNBLOCK, FF_NBLOCK}, {(long)FNOCTTY, FF_NOCTTY}, # if defined(FSYNC) {(long)FSYNC, FF_SYNC}, # else /* !defined(FSYNC) */ # if defined(O_SYNC) {(long)O_SYNC, FF_SYNC}, # endif /* defined(O_SYNC) */ # endif /* defined(FSYNC) */ # if defined(FCOPYAVOID) {(long)FCOPYAVOID, FF_COPYAVOID}, # endif /* defined(FCOPYAVOID) */ # if defined(FPOSIX_AIO) {(long)FPOSIX_AIO, FF_POSIX_AIO}, # endif /* defined(FPOSIX_AIO) */ # if defined(FLARGEFILE) {(long)FLARGEFILE, FF_LARGEFILE}, # else /* !defined(FLARGEFILE) */ # if HPUXV >= 1100 {(long)0x800, FF_LARGEFILE}, # endif /* HPUXV>=1100 */ # endif /* defined(FLARGEFILE) */ {(long)0x100, FF_KERNEL}, {(long)0, NULL}}; /* * Pof_tab[] - table for print process open file flags */ # if HPUXV >= 1020 # define UF_EXCLOSE 0x1 # define UF_MAPPED 0x2 # define UF_FDLOCK 0x4 # define UF_INUSE 0x8 # endif /* HPUXV>=1020 */ struct pff_tab Pof_tab[] = { # if defined(UF_EXCLOSE) {(long)UF_EXCLOSE, POF_CLOEXEC}, # endif /* defined(UF_EXCLOSE) */ # if defined(UF_MAPPED) {(long)UF_MAPPED, POF_MAPPED}, # endif /* defined(UF_MAPPED) */ # if defined(UF_FDLOCK) {(long)UF_FDLOCK, POF_FDLOCK}, # endif /* defined(UF_FDLOCK) */ # if defined(UF_INUSE) {(long)UF_INUSE, POF_INUSE}, # endif /* defined(UF_INUSE) */ {(long)0, NULL}}; #endif /* defined(HASFSTRUCT) */ #if HPUXV < 800 int Swap = -1; /* swap device file descriptor */ #endif /* HPUXV<800 */ #if HPUXV < 800 && defined(hp9000s800) struct user *ubase; /* user area base (for uvadd()) */ #endif /* HPUXV<800 && defined(hp9000s800) */ #if HPUXV < 800 && defined(hp9000s300) struct user *ubase; /* user area base (for uvadd()) */ struct pte *Usrptmap; /* user page table map pointer */ struct pte *usrpt; /* user page table pointer * (for bktomx from vmmac.h) */ #endif /* HPUXV<800 && defined(hp9000s300) */ KA_T Vnfops; /* vnodefops switch address */