git: 8b99833ac253 - main - procfs_map: switch to use vm_object_kvme_type
Konstantin Belousov
kib at FreeBSD.org
Thu May 13 17:14:14 UTC 2021
The branch main has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=8b99833ac2538a74d013d101e2b5ec2d9e29d198
commit 8b99833ac2538a74d013d101e2b5ec2d9e29d198
Author: Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-05-10 15:20:42 +0000
Commit: Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-05-13 17:10:35 +0000
procfs_map: switch to use vm_object_kvme_type
to get object type, and stop enumerating OBJT_XXX constants. This also
provides properly a pointer for the vnode, if object backs any.
Reviewed by: markj
Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D30168
---
sys/fs/procfs/procfs_map.c | 40 +++++++++++++++++++++-------------------
1 file changed, 21 insertions(+), 19 deletions(-)
diff --git a/sys/fs/procfs/procfs_map.c b/sys/fs/procfs/procfs_map.c
index 9ee49b0149a2..bd4cd2c09c00 100644
--- a/sys/fs/procfs/procfs_map.c
+++ b/sys/fs/procfs/procfs_map.c
@@ -51,6 +51,7 @@
#include <sys/sysent.h>
#endif
#include <sys/uio.h>
+#include <sys/user.h>
#include <sys/vnode.h>
#include <fs/pseudofs/pseudofs.h>
@@ -85,7 +86,8 @@ procfs_doprocmap(PFS_FILL_ARGS)
char *fullpath, *freepath, *type;
struct ucred *cred;
vm_object_t lobj, nobj, obj, tobj;
- int error, privateresident, ref_count, resident, shadow_count, flags;
+ int error, flags, kvme, privateresident, ref_count, resident;
+ int shadow_count;
vm_offset_t e_start, e_end;
vm_eflags_t e_eflags;
vm_prot_t e_prot;
@@ -155,29 +157,29 @@ procfs_doprocmap(PFS_FILL_ARGS)
freepath = NULL;
fullpath = "-";
if (lobj) {
- vp = NULL;
- switch (lobj->type) {
- default:
- case OBJT_DEFAULT:
- type = "default";
- break;
- case OBJT_VNODE:
- type = "vnode";
- vp = lobj->handle;
+ kvme = vm_object_kvme_type(lobj, &vp);
+ if (vp != NULL)
vref(vp);
+ switch (kvme) {
+ default:
+ type = "unknown";
break;
- case OBJT_SWAP_TMPFS:
- type = "vnode";
- if ((lobj->flags & OBJ_TMPFS) != 0) {
- vp = lobj->un_pager.swp.swp_tmpfs;
- vref(vp);
- }
+ case KVME_TYPE_PHYS:
+ type = "phys";
break;
- case OBJT_SWAP:
+ case KVME_TYPE_DEFAULT:
+ case KVME_TYPE_SWAP:
type = "swap";
break;
- case OBJT_SG:
- case OBJT_DEVICE:
+ case KVME_TYPE_DEAD:
+ type = "dead";
+ break;
+ case KVME_TYPE_VNODE:
+ type = "vnode";
+ break;
+ case KVME_TYPE_SG:
+ case KVME_TYPE_DEVICE:
+ case KVME_TYPE_MGTDEVICE:
type = "device";
break;
}
More information about the dev-commits-src-all
mailing list