git: b76961e3a21a - main - kdump: Print splice structures
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 10 Sep 2024 16:55:25 UTC
The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b76961e3a21a820f15ebff9d115ff67feb910cec commit b76961e3a21a820f15ebff9d115ff67feb910cec Author: Mark Johnston <markj@FreeBSD.org> AuthorDate: 2024-09-10 16:51:26 +0000 Commit: Mark Johnston <markj@FreeBSD.org> CommitDate: 2024-09-10 16:52:01 +0000 kdump: Print splice structures MFC after: 3 months Sponsored by: Klara, Inc. Sponsored by: Stormshield --- lib/libsysdecode/ktrace.out | Bin 0 -> 23596 bytes usr.bin/kdump/kdump.c | 16 ++++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/lib/libsysdecode/ktrace.out b/lib/libsysdecode/ktrace.out new file mode 100644 index 000000000000..29d35f0de3ce Binary files /dev/null and b/lib/libsysdecode/ktrace.out differ diff --git a/usr.bin/kdump/kdump.c b/usr.bin/kdump/kdump.c index f7ac82c757fa..41d3eb594149 100644 --- a/usr.bin/kdump/kdump.c +++ b/usr.bin/kdump/kdump.c @@ -105,6 +105,7 @@ void ktruser(int, void *); void ktrcaprights(cap_rights_t *); void ktritimerval(struct itimerval *it); void ktrsockaddr(struct sockaddr *); +void ktrsplice(struct splice *); void ktrstat(struct stat *); void ktrstruct(char *, size_t); void ktrcapfail(struct ktr_cap_fail *); @@ -1923,6 +1924,14 @@ ktrsockaddr(struct sockaddr *sa) printf(" }\n"); } +void +ktrsplice(struct splice *sp) +{ + printf("struct splice { fd=%d, max=%#jx, idle=%jd.%06jd }\n", + sp->sp_fd, (uintmax_t)sp->sp_max, (intmax_t)sp->sp_idle.tv_sec, + (intmax_t)sp->sp_idle.tv_usec); +} + void ktrstat(struct stat *statp) { @@ -2111,6 +2120,13 @@ ktrstruct(char *buf, size_t buflen) memcpy(set, data, datalen); ktrbitset(name, set, datalen); free(set); + } else if (strcmp(name, "splice") == 0) { + struct splice sp; + + if (datalen != sizeof(sp)) + goto invalid; + memcpy(&sp, data, datalen); + ktrsplice(&sp); } else { #ifdef SYSDECODE_HAVE_LINUX if (ktrstruct_linux(name, data, datalen) == false)