git: f006524d6d69 - main - kcmp(2): implement for procdesc
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 24 Jan 2024 05:12:23 UTC
The branch main has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=f006524d6d696cc2a10b9e90a9a6ea412f1839eb
commit f006524d6d696cc2a10b9e90a9a6ea412f1839eb
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2024-01-19 22:37:39 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2024-01-24 05:11:27 +0000
kcmp(2): implement for procdesc
Reviewed by: brooks, markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D43518
---
sys/kern/sys_procdesc.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/sys/kern/sys_procdesc.c b/sys/kern/sys_procdesc.c
index 419ff928a8a2..90022186d1ff 100644
--- a/sys/kern/sys_procdesc.c
+++ b/sys/kern/sys_procdesc.c
@@ -94,6 +94,7 @@ static fo_kqfilter_t procdesc_kqfilter;
static fo_stat_t procdesc_stat;
static fo_close_t procdesc_close;
static fo_fill_kinfo_t procdesc_fill_kinfo;
+static fo_cmp_t procdesc_cmp;
static struct fileops procdesc_ops = {
.fo_read = invfo_rdwr,
@@ -108,6 +109,7 @@ static struct fileops procdesc_ops = {
.fo_chown = invfo_chown,
.fo_sendfile = invfo_sendfile,
.fo_fill_kinfo = procdesc_fill_kinfo,
+ .fo_cmp = procdesc_cmp,
.fo_flags = DFLAG_PASSABLE,
};
@@ -552,3 +554,15 @@ procdesc_fill_kinfo(struct file *fp, struct kinfo_file *kif,
kif->kf_un.kf_proc.kf_pid = pdp->pd_pid;
return (0);
}
+
+static int
+procdesc_cmp(struct file *fp1, struct file *fp2, struct thread *td)
+{
+ struct procdesc *pdp1, *pdp2;
+
+ if (fp2->f_type != DTYPE_PROCDESC)
+ return (3);
+ pdp1 = fp1->f_data;
+ pdp2 = fp2->f_data;
+ return (kcmp_cmp((uintptr_t)pdp1->pd_pid, (uintptr_t)pdp2->pd_pid));
+}