freebsd-dev/sys/kern
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
..
bus_if.m "Buses" is the preferred plural of "bus" 2017-01-15 17:54:01 +00:00
capabilities.conf allow posix_fallocate in capability mode 2017-10-12 15:45:53 +00:00
clock_if.m
cpufreq_if.m
device_if.m Import the 'iflib' API library for network drivers. From the author: 2016-05-18 04:35:58 +00:00
genassym.sh Don't prefix zero with 0x in assym.s. 2017-04-13 15:43:44 +00:00
imgact_aout.c Revert r323722. A better fix will be committed shortly, as well as 2017-09-28 08:38:24 +00:00
imgact_binmisc.c tighten buffer bounds in imgact_binmisc_populate_interp 2017-03-21 18:02:14 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Add AT_HWCAP2 ELF auxiliary vector. 2017-10-21 12:05:01 +00:00
imgact_gzip.c
imgact_shell.c ANSI-fy exec_shell_imgact(). 2017-11-04 15:41:08 +00:00
inflate.c Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
init_main.c Don't let cpu_set_syscall_retval() clobber exec_setregs(). 2017-11-24 07:35:08 +00:00
init_sysent.c regen init_sysent.c r324560 2017-10-12 15:48:37 +00:00
kern_acct.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
kern_alq.c Use SI_SUB_LAST instead of SI_SUB_SMP as the "catch-all" subsystem. 2016-03-11 23:18:06 +00:00
kern_clock.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_clocksource.c Remove cpu_deepest_sleep variable. 2017-02-24 16:11:55 +00:00
kern_condvar.c Introduce SCHEDULER_STOPPED_TD for use when the thread pointer was already read 2017-02-17 06:45:04 +00:00
kern_conf.c Undo r309891. Konstantin is right in that this condition normally 2016-12-12 19:11:04 +00:00
kern_cons.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_context.c
kern_cpu.c Add an EARLY_AP_STARTUP option to start APs earlier during boot. 2016-05-14 18:22:52 +00:00
kern_cpuset.c Fix size to copyout(9) for cpuset_getid(2). 2017-08-22 20:46:29 +00:00
kern_ctf.c Fix improper use of "its". 2016-11-08 23:59:41 +00:00
kern_descrip.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_dtrace.c Sprinkle __read_frequently on few obvious places. 2017-09-06 20:33:33 +00:00
kern_dump.c Move kernel dump offset tracking into MI code. 2017-10-18 15:38:05 +00:00
kern_environment.c Create wrappers for uint64_t and int64_t for the tunables. While not 2016-04-15 03:09:55 +00:00
kern_et.c Add labels to sysctls related to clocks. 2016-12-14 12:56:58 +00:00
kern_event.c Decode kevent structures logged via ktrace(2) in kdump. 2017-11-25 04:49:12 +00:00
kern_exec.c Don't let cpu_set_syscall_retval() clobber exec_setregs(). 2017-11-24 07:35:08 +00:00
kern_exit.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_fail.c Avoid open-coding PRI_UNCHANGED. 2017-05-18 18:24:11 +00:00
kern_ffclock.c kernel: use our nitems() macro when it is available through param.h. 2016-04-19 23:48:27 +00:00
kern_fork.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_gzio.c Add support for compressed kernel dumps. 2017-10-25 00:51:00 +00:00
kern_hhook.c Get closer to a VIMAGE network stack teardown from top to bottom rather 2016-06-21 13:48:49 +00:00
kern_idle.c
kern_intr.c Extend cpuset_get/setaffinity() APIs 2017-05-03 18:41:08 +00:00
kern_jail.c Jails: Optionally prevent jailed root from binding to privileged ports 2017-06-06 02:15:00 +00:00
kern_khelp.c
kern_kthread.c Re-schedule signals after kthread exits, since apparently there are 2016-08-10 13:47:12 +00:00
kern_ktr.c Fix a couple of comment typos 2017-08-15 02:21:02 +00:00
kern_ktrace.c Decode kevent structures logged via ktrace(2) in kdump. 2017-11-25 04:49:12 +00:00
kern_linker.c Properly bzero kldstat structure to prevent kernel information leak. 2017-11-15 22:30:21 +00:00
kern_lock.c lockmgr: remove the ADAPTIVE_LOCKMGRS option 2017-11-17 20:41:17 +00:00
kern_lockf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_lockstat.c Sprinkle __read_frequently on few obvious places. 2017-09-06 20:33:33 +00:00
kern_loginclass.c Fixup r325264, take #2 2017-11-01 06:46:58 +00:00
kern_malloc.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_mbuf.c Improvements to sendfile(2) mbuf free routine. 2017-10-09 21:06:16 +00:00
kern_mib.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_module.c
kern_mtxpool.c sys/kern: spelling fixes in comments. 2016-04-29 22:15:33 +00:00
kern_mutex.c locks: pass the found lock value to unlock slow path 2017-11-22 22:04:04 +00:00
kern_ntptime.c ANSIfy kern_ntptime.c 2017-01-25 20:22:32 +00:00
kern_numa.c Remove unneeded include of vm_phys.h. 2017-04-17 16:51:04 +00:00
kern_osd.c osd(9): Change array pointer to array pointer type from void* 2016-04-26 19:57:35 +00:00
kern_physio.c Add four new RCTL resources - readbps, readiops, writebps and writeiops, 2016-04-07 04:23:25 +00:00
kern_pmc.c Cast values to (int) before comparing them to the range of the 2017-02-24 01:39:12 +00:00
kern_poll.c
kern_priv.c
kern_proc.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_procctl.c Kill all descendants of the reaper, even if they are descendants of a 2017-11-23 11:25:11 +00:00
kern_prot.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_racct.c try to fix RACCT_RSS accounting 2017-02-14 13:54:05 +00:00
kern_rangelock.c
kern_rctl.c sys/kern: spelling fixes in comments. 2016-04-29 22:15:33 +00:00
kern_resource.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_rmlock.c Clean up the SYSINIT_FLAGS definitions for rwlock(9) and rmlock(9). 2017-11-21 14:59:23 +00:00
kern_rwlock.c rwlock: unbreak WITNESS builds after r326110 2017-11-23 03:20:12 +00:00
kern_sdt.c sdt: make all sdt probe sites test one variable 2017-10-22 20:22:23 +00:00
kern_sema.c
kern_sendfile.c Address two problems with sendfile(..., SF_NOCACHE) and apply one 2017-10-13 16:31:50 +00:00
kern_sharedpage.c
kern_shutdown.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_sig.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_switch.c sched: move panic handling code out of choosethread 2017-11-17 02:45:38 +00:00
kern_sx.c Have lockstat:::sx-release fire only after the lock state has changed. 2017-11-24 19:04:31 +00:00
kern_synch.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_syscalls.c
kern_sysctl.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_tc.c The th_bintime, th_microtime and th_nanotime members of the timehand 2017-10-11 11:03:11 +00:00
kern_thr.c Defer ptracestop() signals that cannot be delivered immediately 2017-02-20 15:53:16 +00:00
kern_thread.c Introduce EVENTHANDLER_LIST and some users. 2017-11-09 22:51:48 +00:00
kern_time.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_timeout.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_umtx.c Convert explicit panic() call to assert. 2017-11-04 10:49:34 +00:00
kern_uuid.c Hint at the intended usage for the "ll" field of struct uuid_private. 2017-06-13 15:37:04 +00:00
kern_xxx.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ksched.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
link_elf_obj.c Reduce stack usage in link_elf_load_file(), allocating struct nameidata. 2017-03-09 00:45:15 +00:00
link_elf.c kern: for pointers replace 0 with NULL. 2016-04-15 16:10:11 +00:00
linker_if.m sys/kern: spelling fixes in comments. 2016-04-29 22:15:33 +00:00
Make.tags.inc
Makefile Don't create pointless backups of generated files in "make sysent". 2016-07-28 21:29:04 +00:00
makesyscalls.sh Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
md4c.c ANSIfy sys/kern/md4c.c 2017-11-05 19:49:44 +00:00
md5c.c crypto routines: Hint minimum buffer sizes to the compiler 2016-05-26 19:29:29 +00:00
msi_if.m Introduce MSI and MSI-X support to intrng. This adds a new msi device 2016-05-16 09:11:40 +00:00
p1003_1b.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
pic_if.m INTRNG: Rework handling with resources. Partially revert r301453. 2016-08-19 10:52:39 +00:00
posix4_mib.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
sched_4bsd.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sched_ule.c Don't take Giant for SMP status and cpu topology sysctls. 2017-10-18 22:00:44 +00:00
serdev_if.m
stack_protector.c
subr_acl_nfs4.c
subr_acl_posix1e.c
subr_autoconf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_blist.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_bufring.c
subr_bus_dma.c Add CAM/NVMe support for CAM_DATA_SG 2017-08-29 15:29:57 +00:00
subr_bus.c Add eventhandler notifications for newbus device attach/detach. 2017-10-08 17:33:49 +00:00
subr_busdma_bufalloc.c
subr_capability.c
subr_clock.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_counter.c Zero return value when counter_rate() switches over to next second and 2016-12-13 20:11:45 +00:00
subr_devmap.c o Replace __riscv__ with __riscv 2017-08-07 14:09:57 +00:00
subr_devstat.c Add support for managing Shingled Magnetic Recording (SMR) drives. 2016-05-19 14:08:36 +00:00
subr_disk.c
subr_dummy_vdso_tc.c
subr_eventhandler.c Introduce EVENTHANDLER_LIST and some users. 2017-11-09 22:51:48 +00:00
subr_fattime.c
subr_firmware.c Fix improper use of "its". 2016-11-08 23:59:41 +00:00
subr_gtaskqueue.c Fix "taskqgroup_attach: setaffinity failed: 3" with iflib drivers 2017-10-05 14:43:30 +00:00
subr_hash.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_hints.c
subr_intr.c Fix compile error with option DEBUG. This is fallout from some long-ago 2017-08-16 16:51:55 +00:00
subr_kdb.c Change kdb_active type to u_char. 2017-10-22 13:42:56 +00:00
subr_kobj.c - Also outside of the KOBJOPLOOKUP macro - which in turn is used by 2017-05-08 21:08:39 +00:00
subr_lock.c locks: follow up r313386 2017-02-07 16:01:07 +00:00
subr_log.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_mchain.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_module.c
subr_msgbuf.c sys/kern: spelling fixes in comments. 2016-04-29 22:15:33 +00:00
subr_param.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_pcpu.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_pctrie.c Make the number of children for pctrie node available outside subr_pctrie.c. 2017-07-27 16:40:14 +00:00
subr_power.c
subr_prf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_prof.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_rman.c Add new bus methods for mapping resources. 2016-05-20 17:57:47 +00:00
subr_rtc.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_sbuf.c An off-by-one error exists in sbuf_vprintf()'s use of SBUF_HASROOM() when an 2017-08-18 02:06:28 +00:00
subr_scanf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_sfbuf.c subr_sfbus.c need sys/proc.h for struct thread definition. 2017-02-07 17:31:24 +00:00
subr_sglist.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_sleepqueue.c Make the sleepq chain hash size configurable per-arch and bump on amd64. 2017-10-22 20:43:50 +00:00
subr_smp.c Don't take Giant for SMP status and cpu topology sysctls. 2017-10-18 22:00:44 +00:00
subr_stack.c Let stack_create(9) take a malloc flags argument. 2017-10-06 21:52:28 +00:00
subr_syscall.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
subr_taskqueue.c Add taskqueue_enqueue_timeout_sbt(), because sometimes you want more control 2017-07-31 00:54:50 +00:00
subr_terminal.c Oops, my fix for bright colors broke bright black some more (in cases 2017-03-27 10:48:28 +00:00
subr_trap.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
subr_turnstile.c Remove unused declaration and update ddb.4 2017-08-24 19:16:25 +00:00
subr_uio.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_unit.c Properly reset the fields in clean_unrhdr. 2017-10-16 16:14:50 +00:00
subr_vmem.c Start annotating global _padalign locks with __exclusive_cache_line 2017-09-06 20:28:18 +00:00
subr_witness.c Bump WITNESS_PENDLIST to accomodate sleepq chain bump. 2017-10-23 01:00:35 +00:00
sys_capability.c capsicum: perform copyout without the fildesc lock held in sys_cap_ioctls_get 2016-10-21 16:12:23 +00:00
sys_generic.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sys_pipe.c Generate syscall tables and update pipe() implementation after r302094. 2016-06-22 21:18:19 +00:00
sys_procdesc.c Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
sys_process.c Move loop to clear TDB_SUSPEND into PT_DETACH case. 2017-11-13 21:22:33 +00:00
sys_socket.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
syscalls.c Regen. 2017-06-17 00:58:19 +00:00
syscalls.master Add abstime kqueue(2) timers and expand struct kevent members. 2017-06-17 00:57:26 +00:00
systrace_args.c Regen. 2017-06-17 00:58:19 +00:00
sysv_ipc.c
sysv_msg.c Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
sysv_sem.c sysvsem: check if semu_list has anything on it before grabbing the lock 2017-10-19 00:31:00 +00:00
sysv_shm.c Audit arguments to System V IPC system calls implementing sempahores, 2017-03-30 22:26:15 +00:00
tty_compat.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tty_info.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tty_inq.c Check tty_gone() after allocating IO buffers. The tty lock has to be 2017-01-13 16:37:38 +00:00
tty_outq.c Check tty_gone() after allocating IO buffers. The tty lock has to be 2017-01-13 16:37:38 +00:00
tty_pts.c Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
tty_tty.c
tty_ttydisc.c
tty.c Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
uipc_accf.c Listening sockets improvements. 2017-06-08 21:30:34 +00:00
uipc_debug.c ddb show socket debugging 2017-06-15 04:49:12 +00:00
uipc_domain.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_mbuf2.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_mbuf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_mbufhash.c
uipc_mqueue.c Correct sysent flags for dynamically loaded syscalls. 2017-07-14 09:34:44 +00:00
uipc_sem.c Audit arguments to POSIX message queues, semaphores, and shared memory. 2017-03-31 13:43:00 +00:00
uipc_shm.c Replace manyinstances of VM_WAIT with blocking page allocation flags 2017-11-08 02:39:37 +00:00
uipc_sockbuf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_socket.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_syscalls.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_usrreq.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_acl.c Add system-call argument auditing for ACL-related system calls. 2017-03-30 22:00:58 +00:00
vfs_aio.c Fix aio_suspend in 32-bit emulation 2017-10-26 19:45:15 +00:00
vfs_bio.c Update a comment in brelse() to match reality. 2017-11-20 20:53:03 +00:00
vfs_cache.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_cluster.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_default.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_export.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_extattr.c
vfs_hash.c Add vfs_hash_ref(9) function, which finds a vnode by the hash value 2016-05-11 06:32:22 +00:00
vfs_init.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_lookup.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_mount.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_mountroot.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_subr.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_syscalls.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_vnops.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vnode_if.src For UNIX sockets make vnode point not to the socket, but to the UNIX PCB, 2017-06-02 17:31:25 +00:00