freebsd-src/lib
John Baldwin ffb6607984 Decode kevent structures logged via ktrace(2) in kdump.
- Add a new KTR_STRUCT_ARRAY ktrace record type which dumps an array of
  structures.

  The structure name in the record payload is preceded by a size_t
  containing the size of the individual structures.  Use this to
  replace the previous code that dumped the kevent arrays dumped for
  kevent().  kdump is now able to decode the kevent structures rather
  than dumping their contents via a hexdump.

  One change from before is that the 'changes' and 'events' arrays are
  not marked with separate 'read' and 'write' annotations in kdump
  output.  Instead, the first array is the 'changes' array, and the
  second array (only present if kevent doesn't fail with an error) is
  the 'events' array.  For kevent(), empty arrays are denoted by an
  entry with an array containing zero entries rather than no record.

- Move kevent decoding tables from truss to libsysdecode.

  This adds three new functions to decode members of struct kevent:
  sysdecode_kevent_filter, sysdecode_kevent_flags, and
  sysdecode_kevent_fflags.

  kdump uses these helper functions to pretty-print kevent fields.

- Move structure definitions for freebsd11 and freebsd32 kevent
  structures to <sys/event.h> so that they can be shared with userland.
  The 32-bit structures are only exposed if _WANT_KEVENT32 is defined.
  The freebsd11 structures are only exposed if _WANT_FREEBSD11_KEVENT is
  defined.  The 32-bit freebsd11 structure requires both.

- Decode freebsd11 kevent structures in truss for the compat11.kevent()
  system call.

- Log 32-bit kevent structures via ktrace for 32-bit compat kevent()
  system calls.

- While here, constify the 'void *data' argument to ktrstruct().

Reviewed by:	kib (earlier version)
MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D12470
2017-11-25 04:49:12 +00:00
..
atf DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
clang Tell bsd.dep.mk which depend files to dinclude. 2017-11-10 20:09:15 +00:00
csu Update several more URLs 2017-10-29 08:17:03 +00:00
lib80211 DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libalias DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libarchive DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libauditd DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libbegemot DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libblacklist DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libblocksruntime DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libbluetooth DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libbsdstat DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libbsm DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libbsnmp DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libbz2 DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libc Kill all descendants of the reaper, even if they are descendants of a 2017-11-23 11:25:11 +00:00
libc++ DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libc++experimental DIRDEPS_BUILD: Connect more libraries. 2017-07-11 00:32:48 +00:00
libc_nonshared
libcalendar DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libcam Add a test case for cam_get_device with sa(4) devices 2017-11-22 19:58:29 +00:00
libcapsicum capsicum_helpers: Add EVENT to default stdio rights set 2017-10-08 17:29:43 +00:00
libcasper Introduce syslog service for Casper. 2017-11-12 08:34:25 +00:00
libclang_rt Correct the detection of hard float arm 2017-11-07 09:47:05 +00:00
libcom_err DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libcompat General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
libcompiler_rt Support armv7 builds for userland 2017-10-05 23:01:33 +00:00
libcrypt General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
libcuse DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libcxxrt Export std::get_new_handler() from libcxxrt.so 2017-11-03 12:52:59 +00:00
libdevctl DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libdevdctl DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libdevinfo DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libdevstat DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libdl DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libdpv DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libdwarf DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libedit DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libefivar Move sys/boot to stand. Fix all references to new location 2017-11-14 23:02:19 +00:00
libelf DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libelftc libelftc: bump version, tracking import in r320343 2017-07-05 02:58:46 +00:00
libevent DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libexecinfo DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libexpat DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libfetch DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libfigpar DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libgcc_eh DIRDEPS_BUILD: libgcc now depends on MK_LLVM_LIBUNWIND 2017-10-31 00:03:36 +00:00
libgcc_s DIRDEPS_BUILD: libgcc now depends on MK_LLVM_LIBUNWIND 2017-10-31 00:03:36 +00:00
libgeom DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libgpio DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libgssapi General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
libiconv_modules General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
libifconfig libifconfig: allow to get original interface name via ifconfig_get_orig_name() 2017-10-16 06:54:26 +00:00
libipsec General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
libjail DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libkiconv spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
libkvm General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
libldns DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
liblzma DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libmagic DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libmd DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libmemstat DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libmilter DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libmp DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libmt Add the LTO-8 Type M density code (0x5d, LTO-8M) to libmt and the 2017-11-03 21:04:22 +00:00
libnandfs DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libnetbsd General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
libnetgraph s/NgSendMsgReply/NgSendReplyMsg/ in man to match the code. 2017-11-08 12:34:47 +00:00
libngatm DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libnv DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libopenbsd
libopie DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libpam General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
libpathconv Disconnect libpathconv tests since they require external perl and do not work with kyua. 2017-10-31 19:52:30 +00:00
libpcap DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libpe
libpjdlog DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libpmc DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libpmcstat DIRDEPS_BUILD: Connect new directories. 2017-10-31 00:04:07 +00:00
libproc Refine symtab sorting in libproc. 2017-11-21 16:03:21 +00:00
libprocstat spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
libradius DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
librpcsec_gss General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
librpcsvc spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
librss DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
librt DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
librtld_db DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libsbuf DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libsdp DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libsm
libsmb DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libsmdb
libsmutil
libsqlite3 DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libstdbuf DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libstdthreads DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libsysdecode Decode kevent structures logged via ktrace(2) in kdump. 2017-11-25 04:49:12 +00:00
libtacplus DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libtelnet Remove redundant include directories which expand to a noop, 2017-07-31 19:07:45 +00:00
libthr General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
libthread_db General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
libucl DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libufs DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libugidfw DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libulog DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libunbound DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libusb DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libusbhid DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libutil General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
libvgl DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libvmmapi DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libwrap DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libxo DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
liby General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
libypclnt DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libz DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
libzstd Move zstd from contrib to sys/contrib so it can be used in the 2017-11-14 05:03:38 +00:00
msun spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
ncurses General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
tests
Makefile Install strings unconditionally 2017-11-20 20:55:41 +00:00
Makefile.inc