MFC r258311

  opensolaris/uts/common/dtrace/fasttrap.c
          Fix several problems that can cause panics on kldload and kldunload.

          * kproc_create(fasttrap_pid_cleanup_cb, ...) gets called before
            fasttrap_provs.fth_table gets allocated.  This can lead to a panic
            on module load, because fasttrap_pid_cleanup_cb references
            fasttrap_provs.fth_table.  Move kproc_create down after the point
            that fasttrap_provs.fth_table gets allocated, and modify the error
            handling accordingly.

          * dtrace_fasttrap_{fork,exec,exit} weren't getting NULLed until
            after fasttrap_provs.fth_table got freed.  That caused panics on
            module unload because fasttrap_exec_exit calls
            fasttrap_provider_retire, which references
            fasttrap_provs.fth_table.  NULL those function pointers earlier.

          * There wasn't any code to destroy the
            fasttrap_{tpoints,provs,procs}.fth_table mutexes on module unload,
            leading to a resource leak when WITNESS is enabled.  Destroy those
            mutexes during fasttrap_unload().

Sponsored by: Spectra Logic Corporation

(cherry picked from commit af2e55ef73071fef28a1ea9377c150376c06a737)
MFC r227294: SDT's struct sdt_argtype can be marked static everywhere

MFC slacker:	ed

(cherry picked from commit 2849902f5ffbe4699605630d6c3010c86c473bbd)
MFC r250816:

Protect SDT_PROBE() with do { } while (0) loop.

(cherry picked from commit 9c7cd11f16b5ab9294daa82f2f0ea405b615d411)
MFC r252895: Add a man page for the SDT_* macros

(cherry picked from commit f25b5e7d33fcae8f270d771f5aa05fa68834d275)
MFC r254468,r254469: Add a "translated type" argument to SDT_PROBE_ARGTYPE()

Note: this breaks ABI compatibility with older modules with SDT probes.

My opinion is that benefits outweigh downsides, because I am not aware
of any thirdparty binary-only modules with SDT probes.

(cherry picked from commit 309c524ba7bf76f96c42ee41d970460eb09835d0)
MFC r254810: Remove the kld lock macros and just use the sx(9) API

(cherry picked from commit 4f3cfb5604366717ad737f0ed51684eb22f2265e)
MFC r254811: call linker_file_lookup_set() with the shared lock held

(cherry picked from commit 843f1d4e1d17296293375b49ee4538c168b0188a)
MFC r255776: Give argtype struct names a different prefix than probe
struct names

(cherry picked from commit 677bec45acfb6de80fd858dd1afe09e392ab35e9)
MFC r255777: Omit "__restrict" when generating syscall argument strings

syscall argument strings are also regenerated as part of this commit

(cherry picked from commit 441c4aa7aced083c6126e0bd68b20ccd32d16a15)
MFC r257143: Fix a couple of bugs in the fasttrap emulation of a "push
%rbp" instruction

(cherry picked from commit da83a01685d10c3a548afb067c2d88b1a244c3d6)
MFC r254266,254309: Add event handlers for module load and unload events

This is just a merge of EVENTHANDLER.9, the actual code chnage was merged earlier.

(cherry picked from commit 0af0768071a0ed8ba45af89abff6f53d4554b8e0)
MFC r254813,259587: Rename the kld_unload event handler to kld_unload_try

(cherry picked from commit 732ce6a99e3edee4ff47a4825d2923edb1f45f3c)
MFC r257152: Do some cleanup of the SDT code

(cherry picked from commit bdcae7d007bff18e5b105dc2b53960f2486108ab)
MFC r257417:  Remove references to an unused fasttrap probe hook

(cherry picked from commit 1007b3d41e1e3819ac3f016cf28053a6504036d4)
MFC r257679: Use suword32 and suword64 instead of copyout(9) in fasttrap

(cherry picked from commit 808d50ebfda5ee2c359c5b71596568abf6800284)
MFC r258291: change the ioctl definition so that the fasttrap ioctl
handler is responsible for copying in userland data

(cherry picked from commit aa0506a8bcd20ca6fefed9927636a1c6d433a30c)
MFC r252850: Hide references to mod_lock

(cherry picked from commit c1c5e2c822f05d6d6325677f5a44dc3f39c59575)
MFC r256148: Initialize and free the DTrace taskqueue in the dtrace
module load/unload handlers

(cherry picked from commit ff586469452ddc988d370debe7bdf546bbbe220b)
MFC r260132: Allocate the probe ID unrhdr before the DTrace kld_* event
handlers are registered

(cherry picked from commit 943e10ac20e22637e2f46f9da8dd3b18554f90e6)
MFC r255971: Fix some typos that were causing probe argument types to
show up as unknown

MFC slacker:	markj

(cherry picked from commit 9e95f307e43ff6050540b118827806dfcdfc5778)