/
githubmirror
/
lsof
Обзор
Документация
Войти
/
githubmirror
/
lsof
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
4.99.6
lib/cvfs.c
98 строк
3 KB
Chen
Expose functionality as a re-usable library - Part 2 (#284)
12 апр 2023, 09:01
Не верифицирован
12 апр 2023, 09:01
6dca348
Код
Авторство
О чём код?
/* * cvfs.c -- completevfs() function for lsof library */ /* * Copyright 1997 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. */ /* * The caller must define CVFS_DEVSAVE to have the device number moved * from the mounts entry to the local vfs structure. * * The caller must define CVFS_NLKSAVE to have the link count moved from * the mounts entry to the local vfs structure. * * The caller must define CVFS_SZSAVE to have the size moved from the * mounts entry to the local vfs structure. */ #include "common.h" #include "machine.h" #if defined(USE_LIB_COMPLETEVFS) /* * completevfs() - complete local vfs structure */ void completevfs(struct lsof_context *ctx, /* context */ struct l_vfs *vfs, /* local vfs structure pointer */ dev_t *dev) /* device */ { struct mounts *mp; /* * If only Internet socket files are selected, don't bother completing the * local vfs structure. */ if (Selinet) return; /* * Search for a match on device number. */ for (mp = readmnt(ctx); mp; mp = mp->next) { if (mp->dev == *dev) { # if defined(CVFS_DEVSAVE) vfs->dev = mp->dev; # endif /* defined(CVFS_DEVSAVE) */ # if defined(CVFS_NLKSAVE) vfs->nlink = mp->nlink; # endif /* defined(CVFS_NLKSAVE) */ # if defined(CVFS_SZSAVE) vfs->size = mp->size; # endif /* defined(CVFS_SZSAVE) */ vfs->dir = mp->dir; vfs->fsname = mp->fsname; # if defined(HASFSINO) vfs->fs_ino = mp->inode; # endif /* defined(HASFSINO) */ # if defined(HASMNTSTAT) vfs->mnt_stat = mp->stat; # endif /* defined(HASMNTSTAT) */ return; } } } #else /* !defined(USE_LIB_COMPLETEVFS) */ char cvfs_d1[] = "d"; char *cvfs_d2 = cvfs_d1; #endif /* defined(USE_LIB_COMPLETEVFS) */