Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F152556289
D6052.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
11 KB
Referenced Files
None
Subscribers
None
D6052.id.diff
View Options
Index: ObsoleteFiles.inc
===================================================================
--- ObsoleteFiles.inc
+++ ObsoleteFiles.inc
@@ -38,6 +38,9 @@
# xargs -n1 | sort | uniq -d;
# done
+# XXXXXXXX: kvm_getfiles(3) removed from kvm(3)
+OLD_LIBS+=usr/lib/libkvm.so.6
+OLD_FILES+=usr/share/man/man3/kvm_getfiles.3.gz
# 20160317: rman_res_t size bump to uintmax_t
OLD_LIBS+=usr/lib/libdevinfo.so.5
OLD_LIBS+=usr/lib32/libdevinfo.so.5
Index: lib/libkvm/Makefile
===================================================================
--- lib/libkvm/Makefile
+++ lib/libkvm/Makefile
@@ -4,12 +4,12 @@
LIB= kvm
SHLIBDIR?= /lib
-SHLIB_MAJOR= 6
+SHLIB_MAJOR= 7
CFLAGS+=-DLIBC_SCCS -I${.CURDIR}
WARNS?= 3
-SRCS= kvm.c kvm_cptime.c kvm_file.c kvm_getloadavg.c \
+SRCS= kvm.c kvm_cptime.c kvm_getloadavg.c \
kvm_getswapinfo.c kvm_pcpu.c kvm_proc.c kvm_vnet.c \
kvm_minidump_aarch64.c \
kvm_amd64.c kvm_minidump_amd64.c \
@@ -22,7 +22,7 @@
LIBADD= elf
-MAN= kvm.3 kvm_getcptime.3 kvm_geterr.3 kvm_getfiles.3 kvm_getloadavg.3 \
+MAN= kvm.3 kvm_getcptime.3 kvm_geterr.3 kvm_getloadavg.3 \
kvm_getpcpu.3 kvm_getprocs.3 kvm_getswapinfo.3 kvm_native.3 \
kvm_nlist.3 kvm_open.3 kvm_read.3
Index: lib/libkvm/kvm.h
===================================================================
--- lib/libkvm/kvm.h
+++ lib/libkvm/kvm.h
@@ -82,7 +82,6 @@
int kvm_getcptime(kvm_t *, long *);
char **kvm_getenvv(kvm_t *, const struct kinfo_proc *, int);
char *kvm_geterr(kvm_t *);
-char *kvm_getfiles(kvm_t *, int, int, int *);
int kvm_getloadavg(kvm_t *, double [], int);
int kvm_getmaxcpu(kvm_t *);
int kvm_getncpus(kvm_t *);
Index: lib/libkvm/kvm.3
===================================================================
--- lib/libkvm/kvm.3
+++ lib/libkvm/kvm.3
@@ -32,7 +32,7 @@
.\" @(#)kvm.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
-.Dd November 27, 2015
+.Dd April 21, 2016
.Dt KVM 3
.Os
.Sh NAME
@@ -144,7 +144,6 @@
.Xr kvm_getargv 3 ,
.Xr kvm_getenvv 3 ,
.Xr kvm_geterr 3 ,
-.Xr kvm_getfiles 3 ,
.Xr kvm_getloadavg 3 ,
.Xr kvm_getprocs 3 ,
.Xr kvm_getswapinfo 3 ,
Index: lib/libkvm/kvm_file.c
===================================================================
--- lib/libkvm/kvm_file.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/*-
- * Copyright (c) 1989, 1992, 1993
- * The Regents of the University of California. 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.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#if defined(LIBC_SCCS) && !defined(lint)
-#if 0
-static char sccsid[] = "@(#)kvm_file.c 8.1 (Berkeley) 6/4/93";
-#endif
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * File list interface for kvm. pstat, fstat and netstat are
- * users of this code, so we've factored it out into a separate module.
- * Thus, we keep this grunge out of the other kvm applications (i.e.,
- * most other applications are interested only in open/close/read/nlist).
- */
-
-#include <sys/param.h>
-#include <sys/user.h>
-#include <sys/proc.h>
-#define _WANT_FILE /* make file.h give us 'struct file' */
-#include <sys/file.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <nlist.h>
-#include <kvm.h>
-
-#include <vm/vm.h>
-#include <vm/vm_param.h>
-
-#include <sys/sysctl.h>
-
-#include <limits.h>
-#include <ndbm.h>
-#include <paths.h>
-#include <stdlib.h>
-
-#include "kvm_private.h"
-
-#define KREAD(kd, addr, obj) \
- (kvm_read(kd, addr, obj, sizeof(*obj)) != sizeof(*obj))
-
-#define KREADN(kd, addr, obj, cnt) \
- (kvm_read(kd, addr, obj, (cnt)) != (ssize_t)(cnt))
-
-/*
- * Get file structures.
- */
-static int
-kvm_deadfiles(kvm_t *kd, int op __unused, int arg __unused, long allproc_o,
- int nprocs __unused)
-{
- struct proc proc;
- struct filedesc filed;
- int buflen = kd->arglen, ocnt = 0, n = 0, once = 0, i;
- struct file **ofiles;
- struct file *fp;
- struct proc *p;
- char *where = kd->argspc;
-
- if (buflen < (int)(sizeof(struct file *) + sizeof(struct file)))
- return (0);
- if (KREAD(kd, allproc_o, &p)) {
- _kvm_err(kd, kd->program, "cannot read allproc");
- return (0);
- }
- for (; p != NULL; p = LIST_NEXT(&proc, p_list)) {
- if (KREAD(kd, (u_long)p, &proc)) {
- _kvm_err(kd, kd->program, "can't read proc at %p", p);
- goto fail;
- }
- if (proc.p_state == PRS_NEW)
- continue;
- if (proc.p_fd == NULL)
- continue;
- if (KREAD(kd, (u_long)p->p_fd, &filed)) {
- _kvm_err(kd, kd->program, "can't read filedesc at %p",
- p->p_fd);
- goto fail;
- }
- if (filed.fd_lastfile + 1 > ocnt) {
- ocnt = filed.fd_lastfile + 1;
- free(ofiles);
- ofiles = (struct file **)_kvm_malloc(kd,
- ocnt * sizeof(struct file *));
- if (ofiles == 0)
- return (0);
- }
- if (KREADN(kd, (u_long)filed.fd_ofiles, ofiles,
- ocnt * sizeof(struct file *))) {
- _kvm_err(kd, kd->program, "can't read ofiles at %p",
- filed.fd_ofiles);
- return (0);
- }
- for (i = 0; i <= filed.fd_lastfile; i++) {
- if ((fp = ofiles[i]) == NULL)
- continue;
- /*
- * copyout filehead (legacy)
- */
- if (!once) {
- *(struct file **)kd->argspc = fp;
- *(struct file **)where = fp;
- buflen -= sizeof (fp);
- where += sizeof (fp);
- once = 1;
- }
- if (buflen < (int)sizeof(struct file))
- goto fail;
- if (KREAD(kd, (long)fp, ((struct file *)where))) {
- _kvm_err(kd, kd->program, "can't read kfp");
- goto fail;
- }
- buflen -= sizeof (struct file);
- fp = (struct file *)where;
- where += sizeof (struct file);
- n++;
- }
- }
- free(ofiles);
- return (n);
-fail:
- free(ofiles);
- return (0);
-
-}
-
-char *
-kvm_getfiles(kvm_t *kd, int op, int arg, int *cnt)
-{
- int mib[2], st, n, nfiles, nprocs;
- size_t size;
-
- _kvm_syserr(kd, kd->program, "kvm_getfiles has been broken for years");
- return (0);
- if (ISALIVE(kd)) {
- size = 0;
- mib[0] = CTL_KERN;
- mib[1] = KERN_FILE;
- st = sysctl(mib, 2, NULL, &size, NULL, 0);
- if (st == -1) {
- _kvm_syserr(kd, kd->program, "kvm_getfiles");
- return (0);
- }
- if (kd->argspc == 0)
- kd->argspc = (char *)_kvm_malloc(kd, size);
- else if (kd->arglen < (int)size)
- kd->argspc = (char *)_kvm_realloc(kd, kd->argspc, size);
- if (kd->argspc == 0)
- return (0);
- kd->arglen = size;
- st = sysctl(mib, 2, kd->argspc, &size, NULL, 0);
- if (st != 0) {
- _kvm_syserr(kd, kd->program, "kvm_getfiles");
- return (0);
- }
- nfiles = size / sizeof(struct xfile);
- } else {
- struct nlist nl[4], *p;
-
- nl[0].n_name = "_allproc";
- nl[1].n_name = "_nprocs";
- nl[2].n_name = "_nfiles";
- nl[3].n_name = 0;
-
- if (kvm_nlist(kd, nl) != 0) {
- for (p = nl; p->n_type != 0; ++p)
- ;
- _kvm_err(kd, kd->program,
- "%s: no such symbol", p->n_name);
- return (0);
- }
- if (KREAD(kd, nl[1].n_value, &nprocs)) {
- _kvm_err(kd, kd->program, "can't read nprocs");
- return (0);
- }
- if (KREAD(kd, nl[2].n_value, &nfiles)) {
- _kvm_err(kd, kd->program, "can't read nfiles");
- return (0);
- }
- size = sizeof(void *) + (nfiles + 10) * sizeof(struct file);
- if (kd->argspc == 0)
- kd->argspc = (char *)_kvm_malloc(kd, size);
- else if (kd->arglen < (int)size)
- kd->argspc = (char *)_kvm_realloc(kd, kd->argspc, size);
- if (kd->argspc == 0)
- return (0);
- kd->arglen = size;
- n = kvm_deadfiles(kd, op, arg, nl[0].n_value, nprocs);
- if (n != nfiles) {
- _kvm_err(kd, kd->program, "inconsistant nfiles");
- return (0);
- }
- nfiles = n;
- }
- *cnt = nfiles;
- return (kd->argspc);
-}
Index: lib/libkvm/kvm_getfiles.3
===================================================================
--- lib/libkvm/kvm_getfiles.3
+++ /dev/null
@@ -1,87 +0,0 @@
-.\" Copyright (c) 1992, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" This code is derived from software developed by the Computer Systems
-.\" Engineering group at Lawrence Berkeley Laboratory under DARPA contract
-.\" BG 91-66 and contributed to Berkeley.
-.\"
-.\" 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.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
-.\"
-.\" @(#)kvm_getfiles.3 8.2 (Berkeley) 4/19/94
-.\" $FreeBSD$
-.\"
-.Dd April 19, 1994
-.Dt KVM_GETFILES 3
-.Os
-.Sh NAME
-.Nm kvm_getfiles
-.Nd survey open files
-.Sh LIBRARY
-.Lb libkvm
-.Sh SYNOPSIS
-.In kvm.h
-.In sys/types.h
-.Fd #define _KERNEL
-.In sys/file.h
-.Fd #undef _KERNEL
-.\" .Fa kvm_t *kd
-.Ft char *
-.Fn kvm_getfiles "kvm_t *kd" "int op" "int arg" "int *cnt"
-.Sh DESCRIPTION
-The
-.Fn kvm_getfiles
-function returns a (sub-)set of the open files in the kernel indicated by
-.Fa kd .
-The
-.Fa op
-and
-.Fa arg
-arguments constitute a predicate which limits the set of files
-returned.
-No predicates are currently defined.
-.Pp
-The number of files found is returned in the reference parameter
-.Fa cnt .
-The files are returned as a contiguous array of file structures,
-preceded by the address of the first file entry in the kernel.
-This memory is owned by kvm and is not guaranteed to be persistent across
-subsequent kvm library calls.
-Data should be copied out if it needs to be
-saved.
-.Sh RETURN VALUES
-The
-.Fn kvm_getfiles
-function will return NULL on failure.
-.Sh SEE ALSO
-.Xr kvm 3 ,
-.Xr kvm_close 3 ,
-.Xr kvm_geterr 3 ,
-.Xr kvm_nlist 3 ,
-.Xr kvm_open 3 ,
-.Xr kvm_openfiles 3 ,
-.Xr kvm_read 3 ,
-.Xr kvm_write 3
-.Sh BUGS
-This routine does not belong in the kvm interface.
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Apr 16, 4:18 PM (19 h, 51 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31550334
Default Alt Text
D6052.id.diff (11 KB)
Attached To
Mode
D6052: Remove kvm_getfiles(3)
Attached
Detach File
Event Timeline
Log In to Comment