[docs][syscalls] Improve consistency within docs.

This changes various bits of formatting to match the common
usages. It also improves the linking some by way of having
standardized on the formatting.

TEST: visual inspection.
Change-Id: I44039c029c8e02cac94c18f147815e71c489630f
diff --git a/docs/syscalls/bti_pin.md b/docs/syscalls/bti_pin.md
index d49960f..a966c79 100644
--- a/docs/syscalls/bti_pin.md
+++ b/docs/syscalls/bti_pin.md
@@ -26,20 +26,20 @@
 ## DESCRIPTION
 
 `zx_bti_pin()` pins pages of a VMO (i.e. prevents them from being decommitted
-with **[vmo_op_range](vmo_op_range.md)**()) and grants the hardware
+with [`zx_vmo_op_range()`]) and grants the hardware
 transaction ID represented by the BTI the ability to access these pages,
 with the permissions specified in *options*.
 
 *offset* must be aligned to page boundaries.
 
-*options* is a bitfield that may contain one or more of *ZX_BTI_PERM_READ*,
-*ZX_BTI_PERM_WRITE*, *ZX_BTI_PERM_EXECUTE*, *ZX_BTI_COMPRESS*, and
-*ZX_BTI_CONTIGUOUS*.  In order for the call to succeed, *vmo* must have the
+*options* is a bitfield that may contain one or more of **ZX_BTI_PERM_READ**,
+**ZX_BTI_PERM_WRITE**, **ZX_BTI_PERM_EXECUTE**, **ZX_BTI_COMPRESS**, and
+**ZX_BTI_CONTIGUOUS**.  In order for the call to succeed, *vmo* must have the
 READ/WRITE rights corresponding to the permissions flags set in *options*.
-(Note: *ZX_BTI_PERM_EXECUTE* requires *ZX_RIGHT_READ*, not *ZX_RIGHT_EXECUTE*.)
-*ZX_BTI_CONTIGUOUS* is only allowed if *vmo* was allocated via
+(Note: **ZX_BTI_PERM_EXECUTE** requires **ZX_RIGHT_READ**, not **ZX_RIGHT_EXECUTE**.)
+**ZX_BTI_CONTIGUOUS** is only allowed if *vmo* was allocated via
 [`zx_vmo_create_contiguous()`] or [`zx_vmo_create_physical()`].
-*ZX_BTI_COMPRESS* and *ZX_BTI_CONTIGUOUS* are mutually exclusive.
+**ZX_BTI_COMPRESS** and **ZX_BTI_CONTIGUOUS** are mutually exclusive.
 
 If the range in *vmo* specified by *offset* and *size* contains non-committed
 pages, a successful invocation of this function will result in those pages
@@ -49,25 +49,26 @@
 *addrs* will be populated with the device-physical addresses of the requested
 VMO pages.  These addresses may be given to devices that issue memory
 transactions with the hardware transaction ID associated with the BTI.  The
-number of addresses returned depends on whether the *ZX_BTI_COMPRESS* or
-*ZX_BTI_CONTIGUOUS* options were given.  It number of addresses will be either
-1) If neither is set, one per page (*size*/*PAGE_SIZE*)
-2) If *ZX_BTI_COMPRESS* is set, *size*/*minimum-contiguity*, rounded up
+number of addresses returned depends on whether the **ZX_BTI_COMPRESS** or
+**ZX_BTI_CONTIGUOUS** options were given.  It number of addresses will be either
+1) If neither is set, one per page (`size*/*PAGE_SIZE`)
+2) If **ZX_BTI_COMPRESS** is set, `size/minimum-contiguity`, rounded up
    (each address representing a run of *minimum-contiguity* run of bytes,
    with the last one being potentially short if *size* is not a multiple of
    *minimum-contiguity*).  It is guaranteed that all returned addresses will be
    *minimum-contiguity*-aligned.  Note that *minimum-contiguity* is discoverable
-   via **[object_get_info](object_get_info.md)**().
-3) If *ZX_BTI_CONTIGUOUS* is set, the single address of the start of the memory.
+   via [`zx_object_get_info()`].
+3) If **ZX_BTI_CONTIGUOUS** is set, the single address of the start of the memory.
 
 *addrs_count* is the number of entries in the *addrs* array.  It is an error for
 *addrs_count* to not match the value calculated above.
 
 ## OPTIONS
 
-- *ZX_BTI_PERM_READ*, *ZX_BTI_PERM_WRITE*, and *ZX_BTI_PERM_EXECUTE* define the access types
-that the hardware bus transaction initiator will be allowed to use.
-- *ZX_BTI_COMPRESS* causes the returned address list to contain one entry per
+- **ZX_BTI_PERM_READ**, **ZX_BTI_PERM_WRITE**, and **ZX_BTI_PERM_EXECUTE** define
+  the access types that the hardware bus transaction initiator will be allowed
+  to use.
+- **ZX_BTI_COMPRESS** causes the returned address list to contain one entry per
   block of *minimum-contiguity* bytes, rather than one per *PAGE_SIZE*.
 
 ## RIGHTS
@@ -86,10 +87,10 @@
 
 ## RETURN VALUE
 
-On success, `zx_bti_pin()` returns *ZX_OK*.  The device-physical addresses of the
+On success, `zx_bti_pin()` returns **ZX_OK**.  The device-physical addresses of the
 requested VMO pages will be written in *addrs*.  A handle to the created Pinned
 Memory Token is returned via *pmt*.  When the PMT is no longer needed,
-*pmt_unpin*() should be invoked.
+[`zx_pmt_unpin()`] should be invoked.
 
 In the event of failure, a negative error value is returned.
 
@@ -99,7 +100,7 @@
 
 **ZX_ERR_WRONG_TYPE**  *handle* is not a BTI handle or *vmo* is not a VMO handle.
 
-**ZX_ERR_ACCESS_DENIED** *handle* or *vmo* does not have the *ZX_RIGHT_MAP*, or
+**ZX_ERR_ACCESS_DENIED** *handle* or *vmo* does not have the **ZX_RIGHT_MAP**, or
 *options* contained a permissions flag corresponding to a right that *vmo* does not have.
 
 **ZX_ERR_INVALID_ARGS** *options* is 0 or contains an undefined flag, either *addrs* or *pmt*
@@ -123,5 +124,8 @@
 
 <!-- References updated by update-docs-from-abigen, do not edit. -->
 
+[`zx_object_get_info()`]: object_get_info.md
+[`zx_pmt_unpin()`]: pmt_unpin.md
 [`zx_vmo_create_contiguous()`]: vmo_create_contiguous.md
 [`zx_vmo_create_physical()`]: vmo_create_physical.md
+[`zx_vmo_op_range()`]: vmo_op_range.md
diff --git a/docs/syscalls/bti_release_quarantine.md b/docs/syscalls/bti_release_quarantine.md
index b490fb2..a56f90f 100644
--- a/docs/syscalls/bti_release_quarantine.md
+++ b/docs/syscalls/bti_release_quarantine.md
@@ -40,7 +40,7 @@
 
 **ZX_ERR_WRONG_TYPE**  *handle* is not a BTI handle.
 
-**ZX_ERR_ACCESS_DENIED** *handle* does not have the *ZX_RIGHT_WRITE* right.
+**ZX_ERR_ACCESS_DENIED** *handle* does not have the **ZX_RIGHT_WRITE** right.
 
 ## SEE ALSO
 
diff --git a/docs/syscalls/channel_call.md b/docs/syscalls/channel_call.md
index 6844415..359c6a7 100644
--- a/docs/syscalls/channel_call.md
+++ b/docs/syscalls/channel_call.md
@@ -31,10 +31,10 @@
 
 The write and read phases of this operation behave like [`zx_channel_write()`] and
 [`zx_channel_read()`] with the difference that their parameters are provided via the
-*zx_channel_call_args_t* structure.
+`zx_channel_call_args_t` structure.
 
 The first four bytes of the written and read back messages are treated as a
-transaction ID of type **zx_txid_t**.  The kernel generates a txid for the
+transaction ID of type `zx_txid_t`.  The kernel generates a txid for the
 written message, replacing that part of the message as read from userspace.
 The kernel generated txid will be between 0x80000000 and 0xFFFFFFFF, and will
 not collide with any txid from any other `zx_channel_call()` in progress against
diff --git a/docs/syscalls/channel_create.md b/docs/syscalls/channel_create.md
index fd8263e..a5a022a 100644
--- a/docs/syscalls/channel_create.md
+++ b/docs/syscalls/channel_create.md
@@ -28,9 +28,9 @@
 of the channel.  Messages written to one handle may be read from
 the opposite.
 
-The handles will have *ZX_RIGHT_TRANSFER* (allowing them to be sent
-to another process via channel write), *ZX_RIGHT_WRITE* (allowing
-messages to be written to them), and *ZX_RIGHT_READ* (allowing messages
+The handles will have **ZX_RIGHT_TRANSFER** (allowing them to be sent
+to another process via channel write), **ZX_RIGHT_WRITE** (allowing
+messages to be written to them), and **ZX_RIGHT_READ** (allowing messages
 to be read from them).
 
 
diff --git a/docs/syscalls/channel_read.md b/docs/syscalls/channel_read.md
index 3021f07..873b9b9 100644
--- a/docs/syscalls/channel_read.md
+++ b/docs/syscalls/channel_read.md
@@ -39,7 +39,7 @@
 will overwrite the portion of *bytes* it overlaps.
 
 When communicating to an untrusted party over a channel, it is recommended that
-the [channel_read_etc](channel_read_etc.md) form is used and each handle type
+the [`zx_channel_read_etc()`] form is used and each handle type
 and rights are validated against the expected values.
 
 ## RIGHTS
@@ -96,3 +96,7 @@
 [channel_create](channel_create.md),
 [channel_read_etc](channel_read_etc.md),
 [channel_write](channel_write.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_channel_read_etc()`]: channel_read_etc.md
diff --git a/docs/syscalls/channel_read_etc.md b/docs/syscalls/channel_read_etc.md
index 0f85e21..743c592 100644
--- a/docs/syscalls/channel_read_etc.md
+++ b/docs/syscalls/channel_read_etc.md
@@ -25,11 +25,11 @@
 
 ## DESCRIPTION
 
-See [channel_read](channel_read.md) for a full description.
+See [`zx_channel_read()`] for a full description.
 
 Both forms of read behave the same except that [`zx_channel_read()`] returns an
-array of raw ``zx_handle_t`` handle values while `zx_channel_read_etc()` returns
-an array of ``zx_handle_info_t`` structures of the form:
+array of raw `zx_handle_t` handle values while `zx_channel_read_etc()` returns
+an array of `zx_handle_info_t` structures of the form:
 
 ```
 typedef struct {
diff --git a/docs/syscalls/clock_get.md b/docs/syscalls/clock_get.md
index 6512e75..72820f4 100644
--- a/docs/syscalls/clock_get.md
+++ b/docs/syscalls/clock_get.md
@@ -23,11 +23,11 @@
 
 ## SUPPORTED CLOCK IDS
 
-*ZX_CLOCK_MONOTONIC* number of nanoseconds since the system was powered on.
+**ZX_CLOCK_MONOTONIC** number of nanoseconds since the system was powered on.
 
-*ZX_CLOCK_UTC* number of wall clock nanoseconds since the Unix epoch (midnight on January 1 1970) in UTC
+**ZX_CLOCK_UTC** number of wall clock nanoseconds since the Unix epoch (midnight on January 1 1970) in UTC
 
-*ZX_CLOCK_THREAD* number of nanoseconds the current thread has been running for.
+**ZX_CLOCK_THREAD** number of nanoseconds the current thread has been running for.
 
 ## RIGHTS
 
diff --git a/docs/syscalls/clock_get_new.md b/docs/syscalls/clock_get_new.md
index b1ae7f9..fe59fe5 100644
--- a/docs/syscalls/clock_get_new.md
+++ b/docs/syscalls/clock_get_new.md
@@ -19,15 +19,15 @@
 ## DESCRIPTION
 
 `zx_clock_get_new()` returns the current time of *clock_id* via
-  *out*, and returns whether *clock_id* was valid.
+*out*, and returns whether *clock_id* was valid.
 
 ## SUPPORTED CLOCK IDS
 
-*ZX_CLOCK_MONOTONIC* number of nanoseconds since the system was powered on.
+**ZX_CLOCK_MONOTONIC** number of nanoseconds since the system was powered on.
 
-*ZX_CLOCK_UTC* number of wall clock nanoseconds since the Unix epoch (midnight on January 1 1970) in UTC
+**ZX_CLOCK_UTC** number of wall clock nanoseconds since the Unix epoch (midnight on January 1 1970) in UTC
 
-*ZX_CLOCK_THREAD* number of nanoseconds the current thread has been running for.
+**ZX_CLOCK_THREAD** number of nanoseconds the current thread has been running for.
 
 ## RIGHTS
 
@@ -37,7 +37,7 @@
 
 ## RETURN VALUE
 
-On success, `zx_clock_get_new()` returns *ZX_OK*.
+On success, `zx_clock_get_new()` returns **ZX_OK**.
 
 ## ERRORS
 
diff --git a/docs/syscalls/deadline_after.md b/docs/syscalls/deadline_after.md
index e80fd19..4a37e63 100644
--- a/docs/syscalls/deadline_after.md
+++ b/docs/syscalls/deadline_after.md
@@ -20,7 +20,7 @@
 
 `zx_deadline_after()` is a utility for converting from now-relative durations
 to absolute deadlines. If *nanoseconds* plus the current time is bigger than the
-maximum value for ``zx_time_t``, the output is clamped to **ZX_TIME_INFINITE**.
+maximum value for `zx_time_t`, the output is clamped to **ZX_TIME_INFINITE**.
 
 ## RIGHTS
 
@@ -30,7 +30,7 @@
 
 ## RETURN VALUE
 
-`zx_deadline_after()` returns the absolute time (with respect to **CLOCK_MONOTONIC**)
+`zx_deadline_after()` returns the absolute time (with respect to **ZX_CLOCK_MONOTONIC**)
 that is *nanoseconds* nanoseconds from now.
 
 ## ERRORS
diff --git a/docs/syscalls/event_create.md b/docs/syscalls/event_create.md
index 89dc065..641aab0 100644
--- a/docs/syscalls/event_create.md
+++ b/docs/syscalls/event_create.md
@@ -19,11 +19,11 @@
 ## DESCRIPTION
 
 `zx_event_create()` creates an event, which is an object that is signalable. That
-is, its *ZX_USER_SIGNAL_n* (where *n* is 0 through 7) signals can be
+is, its **ZX_USER_SIGNAL_n** (where *n* is 0 through 7) signals can be
 manipulated using [`zx_object_signal()`].
 
 The newly-created handle will have the [basic
-rights](../rights.md#zx_rights_basic) plus *ZX_RIGHT_SIGNAL*.
+rights](../rights.md#zx_rights_basic) plus **ZX_RIGHT_SIGNAL**.
 
 ## RIGHTS
 
@@ -33,7 +33,7 @@
 
 ## RETURN VALUE
 
-`zx_event_create()` returns ZX_OK and a valid event handle (via *out*) on success.
+`zx_event_create()` returns **ZX_OK** and a valid event handle (via *out*) on success.
 On failure, an error value is returned.
 
 ## ERRORS
diff --git a/docs/syscalls/eventpair_create.md b/docs/syscalls/eventpair_create.md
index 6a95824..1698053 100644
--- a/docs/syscalls/eventpair_create.md
+++ b/docs/syscalls/eventpair_create.md
@@ -23,17 +23,17 @@
 `zx_eventpair_create()` creates an event pair, which is a pair of objects that
 are mutually signalable.
 
-The signals *ZX_EVENTPAIR_SIGNALED* and *ZX_USER_SIGNAL_n* (where *n* is 0 through 7)
+The signals **ZX_EVENTPAIR_SIGNALED** and **ZX_USER_SIGNAL_n** (where *n* is 0 through 7)
 may be set or cleared using [`zx_object_signal()`] (modifying the signals on the
 object itself), or [`zx_object_signal_peer()`] (modifying the signals on its
 counterpart).
 
 When all the handles to one of the objects have been closed, the
-*ZX_EVENTPAIR_PEER_CLOSED* signal will be asserted on the opposing object.
+**ZX_EVENTPAIR_PEER_CLOSED** signal will be asserted on the opposing object.
 
-The newly-created handles will have the *ZX_RIGHT_TRANSFER*,
-*ZX_RIGHT_DUPLICATE*, *ZX_RIGHT_READ*, *ZX_RIGHT_WRITE*, *ZX_RIGHT_SIGNAL*,
-and *ZX_RIGHT_SIGNAL_PEER* rights.
+The newly-created handles will have the **ZX_RIGHT_TRANSFER**,
+**ZX_RIGHT_DUPLICATE**, **ZX_RIGHT_READ**, **ZX_RIGHT_WRITE**, **ZX_RIGHT_SIGNAL**,
+and **ZX_RIGHT_SIGNAL_PEER** rights.
 
 Currently, no options are supported, so *options* must be set to 0.
 
diff --git a/docs/syscalls/fifo_create.md b/docs/syscalls/fifo_create.md
index 24df7fc..c9935d4 100644
--- a/docs/syscalls/fifo_create.md
+++ b/docs/syscalls/fifo_create.md
@@ -33,7 +33,7 @@
 and buffers.
 
 The *elem_count* must be a power of two.  The total size of each fifo
-(*elem_count* * *elem_size*) may not exceed 4096 bytes.
+(`elem_count * elem_size`) may not exceed 4096 bytes.
 
 The *options* argument must be 0.
 
diff --git a/docs/syscalls/fifo_read.md b/docs/syscalls/fifo_read.md
index ac4d789..a1d6688 100644
--- a/docs/syscalls/fifo_read.md
+++ b/docs/syscalls/fifo_read.md
@@ -32,7 +32,7 @@
 The element size specified by *elem_size* must match the element size
 that was passed into [`zx_fifo_create()`].
 
-*data* must have a size of at least *count * elem_size* bytes.
+*data* must have a size of at least `count * elem_size` bytes.
 
 *actual_count* is allowed to be NULL. This is useful when reading
 a single element: if *count* is 1 and `zx_fifo_read()` returns **ZX_OK**,
diff --git a/docs/syscalls/fifo_write.md b/docs/syscalls/fifo_write.md
index bb345c5..4610d57 100644
--- a/docs/syscalls/fifo_write.md
+++ b/docs/syscalls/fifo_write.md
@@ -23,7 +23,7 @@
 ## DESCRIPTION
 
 `zx_fifo_write()` attempts to write up to *count* elements
-(*count * elem_size* bytes) from *data* to the fifo specified by *handle*.
+(`count * elem_size` bytes) from *data* to the fifo specified by *handle*.
 
 Fewer elements may be written than requested if there is insufficient
 room in the fifo to contain all of them. The number of
diff --git a/docs/syscalls/futex_get_owner.md b/docs/syscalls/futex_get_owner.md
index 16ef0a3..8a5744d 100644
--- a/docs/syscalls/futex_get_owner.md
+++ b/docs/syscalls/futex_get_owner.md
@@ -18,7 +18,7 @@
 
 ## DESCRIPTION
 
-Fetch the koid of the current owner of the futex identified by `value_ptr`, or
+Fetch the koid of the current owner of the futex identified by *value_ptr*, or
 **ZX_KOID_INVALID** if there is no current owner.  Knowledge of the ownership of
 a futex typically serves no purpose when building synchronization primitives
 from futexes.  This syscall is used primarily for testing.
@@ -41,9 +41,9 @@
 ## ERRORS
 
 **ZX_ERR_INVALID_ARGS**  One of the following is true:
-+ `value_ptr` is not a valid userspace pointer.
-+ `value_ptr` is not aligned to a sizeof(zx_futex_t) boundary.
-+ `koid` is not a valid userspace pointer.
++ *value_ptr* is not a valid userspace pointer.
++ *value_ptr* is not aligned to a `sizeof(zx_futex_t)` boundary.
++ *koid* is not a valid userspace pointer.
 
 ## SEE ALSO
 
diff --git a/docs/syscalls/futex_requeue.md b/docs/syscalls/futex_requeue.md
index 4521a71..a5cd9b2 100644
--- a/docs/syscalls/futex_requeue.md
+++ b/docs/syscalls/futex_requeue.md
@@ -24,10 +24,10 @@
 ## DESCRIPTION
 
 Requeuing is a generalization of waking. First, the kernel verifies
-that the value in `current_value` matches the value of the futex at
-`value_ptr`, and if not reports *ZX_ERR_BAD_STATE*. After waking `wake_count`
-threads, `requeue_count` threads are moved from the original futex's
-wait queue to the wait queue corresponding to `requeue_ptr`, another
+that the value in *current_value* matches the value of the futex at
+*value_ptr*, and if not reports **ZX_ERR_BAD_STATE**. After waking *wake_count*
+threads, *requeue_count* threads are moved from the original futex's
+wait queue to the wait queue corresponding to *requeue_ptr*, another
 futex.
 
 This requeueing behavior may be used to avoid thundering herds on wake.
@@ -56,7 +56,7 @@
 
 A successful call to `zx_futex_requeue()` or [`zx_futex_requeue_single_owner()`]
 results in the owner of the futex being set to the thread referenced by the
-`new_requeue_owner` handle, or to nothing if `new_requeue_owner` is
+*new_requeue_owner* handle, or to nothing if *new_requeue_owner* is
 **ZX_HANDLE_INVALID**.
 
 ## RIGHTS
@@ -72,14 +72,14 @@
 ## ERRORS
 
 **ZX_ERR_INVALID_ARGS**  One of the following is true:
-+ Either `value_ptr` or `requeue_ptr` is not a valid userspace pointer
-+ Either `value_ptr` or `requeue_ptr` is not aligned to a sizeof(zx_futex_t) boundary.
-+ `value_ptr` is the same futex as `requeue_ptr`
-+ `new_requeue_owner` is currently a member of the waiters for either value_ptr or requeue_ptr
++ Either *value_ptr* or *requeue_ptr* is not a valid userspace pointer
++ Either *value_ptr* or *requeue_ptr* is not aligned to a `sizeof(zx_futex_t)` boundary.
++ *value_ptr* is the same futex as *requeue_ptr*
++ *new_requeue_owner* is currently a member of the waiters for either *value_ptr* or *requeue_ptr*
 
-**ZX_ERR_BAD_HANDLE**  `new_requeue_owner` is not **ZX_HANDLE_INVALID**, and not a valid handle.
-**ZX_ERR_WRONG_TYPE**  `new_requeue_owner` is a valid handle, but is not a handle to a thread.
-**ZX_ERR_BAD_STATE**  `current_value` does not match the value at `value_ptr`.
+**ZX_ERR_BAD_HANDLE**  *new_requeue_owner* is not **ZX_HANDLE_INVALID**, and not a valid handle.
+**ZX_ERR_WRONG_TYPE**  *new_requeue_owner* is a valid handle, but is not a handle to a thread.
+**ZX_ERR_BAD_STATE**  *current_value* does not match the value at *value_ptr*.
 
 ## SEE ALSO
 
diff --git a/docs/syscalls/futex_requeue_single_owner.md b/docs/syscalls/futex_requeue_single_owner.md
index cdddc19..3112400 100644
--- a/docs/syscalls/futex_requeue_single_owner.md
+++ b/docs/syscalls/futex_requeue_single_owner.md
@@ -22,7 +22,7 @@
 
 ## DESCRIPTION
 
-See [futex_requeue](futex_requeue.md) for a full description.
+See [`zx_futex_requeue()`] for a full description.
 
 ## RIGHTS
 
@@ -37,14 +37,14 @@
 ## ERRORS
 
 **ZX_ERR_INVALID_ARGS**  One of the following is true:
-+ Either `value_ptr` or `requeue_ptr` is not a valid userspace pointer
-+ Either `value_ptr` or `requeue_ptr` is not aligned to a sizeof(zx_futex_t) boundary.
-+ `value_ptr` is the same futex as `requeue_ptr`
-+ `new_requeue_owner` is currently a member of the waiters for either value_ptr or requeue_ptr
++ Either *value_ptr* or *requeue_ptr* is not a valid userspace pointer
++ Either *value_ptr* or *requeue_ptr* is not aligned to a `sizeof(zx_futex_t)` boundary.
++ *value_ptr* is the same futex as *requeue_ptr*
++ *new_requeue_owner* is currently a member of the waiters for either *value_ptr* or *requeue_ptr*
 
-**ZX_ERR_BAD_HANDLE**  `new_requeue_owner` is not **ZX_HANDLE_INVALID**, and not a valid handle.
-**ZX_ERR_WRONG_TYPE**  `new_requeue_owner` is a valid handle, but is not a handle to a thread.
-**ZX_ERR_BAD_STATE**  `current_value` does not match the value at `value_ptr`.
+**ZX_ERR_BAD_HANDLE**  *new_requeue_owner* is not **ZX_HANDLE_INVALID**, and not a valid handle.
+**ZX_ERR_WRONG_TYPE**  *new_requeue_owner* is a valid handle, but is not a handle to a thread.
+**ZX_ERR_BAD_STATE**  *current_value* does not match the value at *value_ptr*.
 
 ## SEE ALSO
 
@@ -52,3 +52,7 @@
 [futex_requeue](futex_requeue.md),
 [futex_wait](futex_wait.md),
 [futex_wake](futex_wake.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_futex_requeue()`]: futex_requeue.md
diff --git a/docs/syscalls/futex_wait.md b/docs/syscalls/futex_wait.md
index 7fae329..02d7b70 100644
--- a/docs/syscalls/futex_wait.md
+++ b/docs/syscalls/futex_wait.md
@@ -43,8 +43,8 @@
 ## OWNERSHIP
 
 A successful call to `zx_futex_wait()` results in the owner of the futex being
-set to the thread referenced by the `new_futex_owner` handle, or to nothing if
-`new_futex_owner` is **ZX_HANDLE_INVALID**.
+set to the thread referenced by the *new_futex_owner* handle, or to nothing if
+*new_futex_owner* is **ZX_HANDLE_INVALID**.
 
 See *Ownership and Priority Inheritance* in [futex](../objects/futex.md) for
 details.
@@ -62,14 +62,14 @@
 ## ERRORS
 
 **ZX_ERR_INVALID_ARGS**  One of the following is true:
-+ `value_ptr` is not a valid userspace pointer
-+ `value_ptr` is not aligned to a sizeof(zx_futex_t) boundary.
-+ `new_futex_owner` is currently a member of the waiters for value_ptr.
++ *value_ptr* is not a valid userspace pointer
++ *value_ptr* is not aligned to a `sizeof(zx_futex_t)` boundary.
++ *new_futex_owner* is currently a member of the waiters for *value_ptr*.
 
-**ZX_ERR_BAD_HANDLE**  `new_futex_owner` is not **ZX_HANDLE_INVALID**, and not a valid handle.
-**ZX_ERR_WRONG_TYPE**  `new_futex_owner` is a valid handle, but is not a handle to a thread.
-**ZX_ERR_BAD_STATE**  `current_value` does not match the value at `value_ptr`.
-**ZX_ERR_TIMED_OUT**  The thread was not woken before `deadline` passed.
+**ZX_ERR_BAD_HANDLE**  *new_futex_owner* is not **ZX_HANDLE_INVALID**, and not a valid handle.
+**ZX_ERR_WRONG_TYPE**  *new_futex_owner* is a valid handle, but is not a handle to a thread.
+**ZX_ERR_BAD_STATE**  *current_value* does not match the value at *value_ptr*.
+**ZX_ERR_TIMED_OUT**  The thread was not woken before *deadline* passed.
 
 ## SEE ALSO
 
diff --git a/docs/syscalls/futex_wake.md b/docs/syscalls/futex_wake.md
index 45f4db4..231ba36 100644
--- a/docs/syscalls/futex_wake.md
+++ b/docs/syscalls/futex_wake.md
@@ -18,11 +18,11 @@
 
 ## DESCRIPTION
 
-Waking a futex causes `wake_count` threads waiting on the `value_ptr`
+Waking a futex causes *wake_count* threads waiting on the *value_ptr*
 futex to be woken up.
 
 Waking up zero threads is not an error condition.  Passing in an unallocated
-address for `value_ptr` is not an error condition.
+address for *value_ptr* is not an error condition.
 
 ## OWNERSHIP
 
@@ -49,7 +49,7 @@
 
 ## ERRORS
 
-**ZX_ERR_INVALID_ARGS**  `value_ptr` is not aligned.
+**ZX_ERR_INVALID_ARGS**  *value_ptr* is not aligned.
 
 ## SEE ALSO
 
diff --git a/docs/syscalls/futex_wake_handle_close_thread_exit.md b/docs/syscalls/futex_wake_handle_close_thread_exit.md
index 5dc5b99..5bb919d 100644
--- a/docs/syscalls/futex_wake_handle_close_thread_exit.md
+++ b/docs/syscalls/futex_wake_handle_close_thread_exit.md
@@ -31,7 +31,7 @@
 The expectation is that as soon as the first operation completes,
 other threads may unmap or reuse the memory containing the calling
 thread's own stack.  This is valid for this call, though it would be
-invalid for plain *zx_futex_wake*() or any other call.
+invalid for plain [`zx_futex_wake()`] or any other call.
 
 If any of the operations fail, then the thread takes a trap (as if by `__builtin_trap();`).
 
@@ -54,13 +54,13 @@
 The intended use for this is for a dying thread to alert another thread
 waiting for its completion, close its own thread handle, and exit.
 The thread handle cannot be closed beforehand because closing the last
-handle to a thread kills that thread.  The write to `value_ptr` can't be
+handle to a thread kills that thread.  The write to *value_ptr* can't be
 done before this call because any time after the write, a joining thread might
 reuse or deallocate this thread's stack, which may cause issues with calling
 conventions into this function.
 
 This call is used for joinable threads, while
-[*vmar_unmap_handle_close_thread_exit*()](vmar_unmap_handle_close_thread_exit.md)
+[`zx_vmar_unmap_handle_close_thread_exit()`]
 is used for detached threads.
 
 ## SEE ALSO
@@ -70,3 +70,8 @@
 [handle_close](handle_close.md),
 [thread_exit](thread_exit.md),
 [vmar_unmap_handle_close_thread_exit](vmar_unmap_handle_close_thread_exit.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_futex_wake()`]: futex_wake.md
+[`zx_vmar_unmap_handle_close_thread_exit()`]: vmar_unmap_handle_close_thread_exit.md
diff --git a/docs/syscalls/futex_wake_single_owner.md b/docs/syscalls/futex_wake_single_owner.md
index 8cd7220..db55ae4 100644
--- a/docs/syscalls/futex_wake_single_owner.md
+++ b/docs/syscalls/futex_wake_single_owner.md
@@ -18,7 +18,7 @@
 
 ## DESCRIPTION
 
-See [futex_wake](futex_wake.md) for a full description.
+See [`zx_futex_wake()`] for a full description.
 
 ## RIGHTS
 
@@ -32,7 +32,7 @@
 
 ## ERRORS
 
-**ZX_ERR_INVALID_ARGS**  `value_ptr` is not aligned.
+**ZX_ERR_INVALID_ARGS**  *value_ptr* is not aligned.
 
 ## SEE ALSO
 
@@ -40,3 +40,7 @@
 [futex_requeue](futex_requeue.md),
 [futex_wait](futex_wait.md),
 [futex_wake](futex_wake.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_futex_wake()`]: futex_wake.md
diff --git a/docs/syscalls/guest_create.md b/docs/syscalls/guest_create.md
index f4042fe..11e67cb 100644
--- a/docs/syscalls/guest_create.md
+++ b/docs/syscalls/guest_create.md
@@ -25,7 +25,7 @@
 within the hypervisor, with *vmar_handle* used to represent the physical address
 space of the guest.
 
-To create a guest, a *resource* of *ZX_RSRC_KIND_HYPERVISOR* must be supplied.
+To create a guest, a *resource* of **ZX_RSRC_KIND_HYPERVISOR** must be supplied.
 
 In order to begin execution within the guest, a VMO should be mapped into
 *vmar_handle* using [`zx_vmar_map()`], and a VCPU must be created using
@@ -44,8 +44,7 @@
 
 **ZX_RIGHT_MANAGE_PROCESS** &mdash; A VCPU may be created using [`zx_vcpu_create()`].
 
-See [vmar_create](vmar_create.md) for the set of rights applied to
-*vmar_handle*.
+See [`zx_vmo_create()`] for the set of rights applied to *vmar_handle*.
 
 ## RIGHTS
 
@@ -55,12 +54,12 @@
 
 ## RETURN VALUE
 
-`zx_guest_create()` returns ZX_OK on success. On failure, an error value is
+`zx_guest_create()` returns **ZX_OK** on success. On failure, an error value is
 returned.
 
 ## ERRORS
 
-**ZX_ERR_ACCESS_DENIED** *resource* is not of *ZX_RSRC_KIND_HYPERVISOR*.
+**ZX_ERR_ACCESS_DENIED** *resource* is not of **ZX_RSRC_KIND_HYPERVISOR**.
 
 **ZX_ERR_INVALID_ARGS** *guest_handle* or *vmar_handle* is an invalid pointer,
 or *options* is nonzero.
@@ -88,3 +87,4 @@
 [`zx_vcpu_create()`]: vcpu_create.md
 [`zx_vcpu_resume()`]: vcpu_resume.md
 [`zx_vmar_map()`]: vmar_map.md
+[`zx_vmo_create()`]: vmo_create.md
diff --git a/docs/syscalls/guest_set_trap.md b/docs/syscalls/guest_set_trap.md
index f703f5c..948c47a 100644
--- a/docs/syscalls/guest_set_trap.md
+++ b/docs/syscalls/guest_set_trap.md
@@ -28,7 +28,7 @@
 *size*, within the address space defined by *kind*.
 
 If *port_handle* is specified, a packet for the trap will be delivered through
-*port_handle* each time the trap is triggered, otherwise if *ZX_HANDLE_INVALID*
+*port_handle* each time the trap is triggered, otherwise if **ZX_HANDLE_INVALID**
 is given, a packet will be delivered through [`zx_vcpu_resume()`]. This provides
 control over whether the packet is delivered asynchronously or synchronously.
 
@@ -39,24 +39,24 @@
 Multiple threads may use [`zx_port_wait()`] to dequeue packets, enabling the use
 of a thread pool to handle traps.
 
-*key* is used to set the key field within *zx_port_packet_t*, and can be used to
+*key* is used to set the key field within `zx_port_packet_t`, and can be used to
 distinguish between packets for different traps.
 
-*kind* may be either *ZX_GUEST_TRAP_BELL*, *ZX_GUEST_TRAP_MEM*, or
-*ZX_GUEST_TRAP_IO*. If *ZX_GUEST_TRAP_BELL* or *ZX_GUEST_TRAP_MEM* is
+*kind* may be either **ZX_GUEST_TRAP_BELL**, **ZX_GUEST_TRAP_MEM**, or
+**ZX_GUEST_TRAP_IO**. If **ZX_GUEST_TRAP_BELL** or **ZX_GUEST_TRAP_MEM** is
 specified, then *addr* and *size* must both be page-aligned. If
-*ZX_GUEST_TRAP_BELL* is set, then *port_handle* must be specified. If
-*ZX_GUEST_TRAP_MEM* or *ZX_GUEST_TRAP_IO* is set, then *port_handle* must be
-*ZX_HANDLE_INVALID*.
+**ZX_GUEST_TRAP_BELL** is set, then *port_handle* must be specified. If
+**ZX_GUEST_TRAP_MEM** or **ZX_GUEST_TRAP_IO** is set, then *port_handle* must be
+**ZX_HANDLE_INVALID**.
 
-*ZX_GUEST_TRAP_BELL* is a type of trap that defines a door-bell. If there is an
+**ZX_GUEST_TRAP_BELL** is a type of trap that defines a door-bell. If there is an
 access to the memory region specified by the trap, then a packet is generated
 that does not fetch the instruction associated with the access. The packet will
 then be delivered via *port_handle*.
 
-To identify what *kind* of trap generated a packet, use *ZX_PKT_TYPE_GUEST_MEM*,
-*ZX_PKT_TYPE_GUEST_IO*, *ZX_PKT_TYPE_GUEST_BELL*, and *ZX_PKT_TYPE_GUEST_VCPU*.
-*ZX_PKT_TYPE_GUEST_VCPU* is a special packet, not caused by a trap, that
+To identify what *kind* of trap generated a packet, use **ZX_PKT_TYPE_GUEST_MEM**,
+**ZX_PKT_TYPE_GUEST_IO**, **ZX_PKT_TYPE_GUEST_BELL**, and **ZX_PKT_TYPE_GUEST_VCPU**.
+**ZX_PKT_TYPE_GUEST_VCPU** is a special packet, not caused by a trap, that
 indicates that the guest requested to start an additional VCPU.
 
 ## RIGHTS
@@ -69,20 +69,20 @@
 
 ## RETURN VALUE
 
-`zx_guest_set_trap()` returns ZX_OK on success. On failure, an error value is
+`zx_guest_set_trap()` returns **ZX_OK** on success. On failure, an error value is
 returned.
 
 ## ERRORS
 
 **ZX_ERR_ACCESS_DENIED** *handle* or *port_handle* do not have the
-*ZX_RIGHT_WRITE* right.
+**ZX_RIGHT_WRITE** right.
 
 **ZX_ERR_ALREADY_EXISTS** A trap with the same *kind* and *addr* already exists.
 
 **ZX_ERR_BAD_HANDLE** *handle* or *port_handle* are invalid handles.
 
 **ZX_ERR_INVALID_ARGS** *kind* is not a valid address space, *addr* or *size*
-do not meet the requirements of *kind*, *size* is 0, or *ZX_GUEST_TRAP_MEM* was
+do not meet the requirements of *kind*, *size* is 0, or **ZX_GUEST_TRAP_MEM** was
 specified with a *port_handle*.
 
 **ZX_ERR_NO_MEMORY**  Failure due to lack of memory.
@@ -97,12 +97,11 @@
 
 ## NOTES
 
-*ZX_GUEST_TRAP_BELL* shares the same address space as *ZX_GUEST_TRAP_MEM*.
+**ZX_GUEST_TRAP_BELL** shares the same address space as **ZX_GUEST_TRAP_MEM**.
 
-On x86-64, if *kind* is *ZX_GUEST_TRAP_BELL* or *ZX_GUEST_TRAP_MEM* and *addr*
+On x86-64, if *kind* is **ZX_GUEST_TRAP_BELL** or **ZX_GUEST_TRAP_MEM** and *addr*
 is the address of the local APIC, then *size* must be equivalent to the size of
-a
-page. This is due to a special page being mapped when a trap is requested at the
+a page. This is due to a special page being mapped when a trap is requested at the
 address of the local APIC. This allows us to take advantage of hardware
 acceleration when available.
 
diff --git a/docs/syscalls/handle_close.md b/docs/syscalls/handle_close.md
index 8493759..87246d5 100644
--- a/docs/syscalls/handle_close.md
+++ b/docs/syscalls/handle_close.md
@@ -21,11 +21,11 @@
 `zx_handle_close()` closes a *handle*, causing the underlying object to be
 reclaimed by the kernel if no other handles to it exist.
 
-If the *handle* was used in a pending [object_wait_one](object_wait_one.md) or a
-[object_wait_many](object_wait_many.md) call, the wait will be aborted.
+If the *handle* was used in a pending [`zx_object_wait_one()`] or a
+[`zx_object_wait_many()`] call, the wait will be aborted.
 
 It is not an error to close the special "never a valid handle" **ZX_HANDLE_INVALID**,
-similar to free(NULL) being a valid call.
+similar to `free(NULL)` being a valid call.
 
 ## RIGHTS
 
@@ -46,3 +46,8 @@
 [handle_close_many](handle_close_many.md),
 [handle_duplicate](handle_duplicate.md),
 [handle_replace](handle_replace.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_object_wait_many()`]: object_wait_many.md
+[`zx_object_wait_one()`]: object_wait_one.md
diff --git a/docs/syscalls/handle_close_many.md b/docs/syscalls/handle_close_many.md
index 79336fe..9d2332a 100644
--- a/docs/syscalls/handle_close_many.md
+++ b/docs/syscalls/handle_close_many.md
@@ -23,14 +23,14 @@
 underlying object to be reclaimed by the kernel if no other handles to
 it exist.
 
-If a handle was used in a pending [object_wait_one](object_wait_one.md) or a
-[object_wait_many](object_wait_many.md) call, the wait will be aborted.
+If a handle was used in a pending [`zx_object_wait_one()`] or a
+[`zx_object_wait_many()`] call, the wait will be aborted.
 
 This operation closes all handles presented to it, even if one or more
 of the handles is duplicate or invalid.
 
 It is not an error to close the special "never a valid handle" **ZX_HANDLE_INVALID**,
-similar to free(NULL) being a valid call.
+similar to `free(NULL)` being a valid call.
 
 ## RIGHTS
 
@@ -52,3 +52,8 @@
 [handle_close](handle_close.md),
 [handle_duplicate](handle_duplicate.md),
 [handle_replace](handle_replace.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_object_wait_many()`]: object_wait_many.md
+[`zx_object_wait_one()`]: object_wait_one.md
diff --git a/docs/syscalls/handle_duplicate.md b/docs/syscalls/handle_duplicate.md
index 4e87d22..dec1d4a 100644
--- a/docs/syscalls/handle_duplicate.md
+++ b/docs/syscalls/handle_duplicate.md
@@ -35,7 +35,7 @@
 
 ## RETURN VALUE
 
-`zx_handle_duplicate()` returns ZX_OK and the duplicate handle via *out* on success.
+`zx_handle_duplicate()` returns **ZX_OK** and the duplicate handle via *out* on success.
 
 ## ERRORS
 
diff --git a/docs/syscalls/interrupt_bind_vcpu.md b/docs/syscalls/interrupt_bind_vcpu.md
index 6af37e0..1ed84e7 100644
--- a/docs/syscalls/interrupt_bind_vcpu.md
+++ b/docs/syscalls/interrupt_bind_vcpu.md
@@ -38,7 +38,7 @@
 
 ## RETURN VALUE
 
-`zx_interrupt_bind_vcpu()` returns *ZX_OK* on success. On failure, an error value
+`zx_interrupt_bind_vcpu()` returns **ZX_OK** on success. On failure, an error value
 is returned.
 
 ## ERRORS
@@ -53,8 +53,8 @@
 **ZX_ERR_BAD_STATE**  a thread is waiting on the interrupt using
 [`zx_interrupt_wait()`].
 
-**ZX_ERR_ACCESS_DENIED** *handle* lacks *ZX_RIGHT_READ* or *vcpu* lacks
-*ZX_RIGHT_WRITE*.
+**ZX_ERR_ACCESS_DENIED** *handle* lacks **ZX_RIGHT_READ** or *vcpu* lacks
+**ZX_RIGHT_WRITE**.
 
 **ZX_ERR_ALREADY_BOUND** *handle* is already bound to another guest or to a
 port.
diff --git a/docs/syscalls/interrupt_create.md b/docs/syscalls/interrupt_create.md
index a357629..d9980ce 100644
--- a/docs/syscalls/interrupt_create.md
+++ b/docs/syscalls/interrupt_create.md
@@ -35,10 +35,10 @@
 Physical interrupts honor the options **ZX_INTERRUPT_EDGE_LOW**, **ZX_INTERRUPT_EDGE_HIGH**,
 **ZX_INTERRUPT_LEVEL_LOW**, **ZX_INTERRUPT_LEVEL_HIGH**, and **ZX_INTERRUPT_REMAP_IRQ**.
 
-The handles will have *ZX_RIGHT_INSPECT*, *ZX_RIGHT_DUPLICATE*, *ZX_RIGHT_TRANSFER*
-(allowing them to be sent to another process via channel write), *ZX_RIGHT_READ*,
-*ZX_RIGHT_WRITE* (required for [`zx_interrupt_ack()`]), *ZX_RIGHT_WAIT* (required for
-[`zx_interrupt_wait()`], and *ZX_RIGHT_SIGNAL* (required for [`zx_interrupt_trigger()`]).
+The handles will have **ZX_RIGHT_INSPECT**, **ZX_RIGHT_DUPLICATE**, **ZX_RIGHT_TRANSFER**
+(allowing them to be sent to another process via channel write), **ZX_RIGHT_READ**,
+**ZX_RIGHT_WRITE** (required for [`zx_interrupt_ack()`]), **ZX_RIGHT_WAIT** (required for
+[`zx_interrupt_wait()`], and **ZX_RIGHT_SIGNAL** (required for [`zx_interrupt_trigger()`]).
 
 Interrupts are said to be "triggered" when the underlying physical interrupt occurs
 or when [`zx_interrupt_trigger()`] is called on a virtual interrupt.  A triggered interrupt,
@@ -46,7 +46,7 @@
 
 If not bound to a port, an interrupt object may be waited on with [`zx_interrupt_wait()`].
 
-Interrupts cannot be waited on with the **object_wait_** family of calls.
+Interrupts cannot be waited on with the `zx_object_wait_` family of calls.
 
 ## RIGHTS
 
diff --git a/docs/syscalls/interrupt_destroy.md b/docs/syscalls/interrupt_destroy.md
index 8b3c26e..8f0348d 100644
--- a/docs/syscalls/interrupt_destroy.md
+++ b/docs/syscalls/interrupt_destroy.md
@@ -19,7 +19,7 @@
 ## DESCRIPTION
 
 `zx_interrupt_destroy()` "destroys" an interrupt object, putting it in a state
-where any [`zx_interrupt_wait()`] operations on it will return ZX_ERR_CANCELED,
+where any [`zx_interrupt_wait()`] operations on it will return **ZX_ERR_CANCELED**,
 and it is unbound from any ports it was bound to.
 
 This provides a clean shut down mechanism.  Closing the last handle to the
diff --git a/docs/syscalls/interrupt_trigger.md b/docs/syscalls/interrupt_trigger.md
index fd6dacc..b833b94 100644
--- a/docs/syscalls/interrupt_trigger.md
+++ b/docs/syscalls/interrupt_trigger.md
@@ -34,7 +34,7 @@
 
 ## RETURN VALUE
 
-**interrupt_signal**() returns **ZX_OK** on success. In the event
+`zx_interrupt_trigger()` returns **ZX_OK** on success. In the event
 of failure, a negative error value is returned.
 
 ## ERRORS
diff --git a/docs/syscalls/iommu_create.md b/docs/syscalls/iommu_create.md
index 8dd16c4..a118257 100644
--- a/docs/syscalls/iommu_create.md
+++ b/docs/syscalls/iommu_create.md
@@ -37,8 +37,8 @@
 pages, to prevent the reuse of a page until the driver using the page says it is
 done with it.
 
-*desc* must be a valid pointer to a value of type *zx_iommu_desc_dummy_t*.
-*desc_size* must be *sizeof(zx_iommu_desc_dummy_t)*.
+*desc* must be a valid pointer to a value of type `zx_iommu_desc_dummy_t`.
+*desc_size* must be `sizeof(zx_iommu_desc_dummy_t)`.
 
 ## RIGHTS
 
@@ -48,7 +48,7 @@
 
 ## RETURN VALUE
 
-`zx_iommu_create()` returns ZX_OK and a handle to the new IOMMU
+`zx_iommu_create()` returns **ZX_OK** and a handle to the new IOMMU
 (via *out*) on success.  In the event of failure, a negative error value
 is returned.
 
@@ -63,7 +63,7 @@
 **ZX_ERR_NOT_SUPPORTED** *type* is not a defined value or is not
 supported on this system.
 
-**ZX_ERR_INVALID_ARGS**  *desc_size* is larger than *ZX_IOMMU_MAX_DESC_LEN*,
+**ZX_ERR_INVALID_ARGS**  *desc_size* is larger than **ZX_IOMMU_MAX_DESC_LEN**,
 *desc* is an invalid pointer, *out* is an invalid pointer, or the contents of
 *desc* are not valid for the given *type*.
 
diff --git a/docs/syscalls/job_create.md b/docs/syscalls/job_create.md
index cccc09e..a13396e 100644
--- a/docs/syscalls/job_create.md
+++ b/docs/syscalls/job_create.md
@@ -40,7 +40,7 @@
 
 ## RETURN VALUE
 
-`zx_job_create()` returns ZX_OK and a handle to the new job
+`zx_job_create()` returns **ZX_OK** and a handle to the new job
 (via *out*) on success.  In the event of failure, a negative error value
 is returned.
 
diff --git a/docs/syscalls/job_set_policy.md b/docs/syscalls/job_set_policy.md
index fb1b162..b05bc1e 100644
--- a/docs/syscalls/job_set_policy.md
+++ b/docs/syscalls/job_set_policy.md
@@ -78,7 +78,7 @@
   the above **ZX_NEW** condtions such as **ZX_POL_NEW_VMO**,
   **ZX_POL_NEW_CHANNEL**, **ZX_POL_NEW_EVENT**, **ZX_POL_NEW_EVENTPAIR**,
   **ZX_POL_NEW_PORT**, **ZX_POL_NEW_SOCKET**, **ZX_POL_NEW_FIFO**,
-  and any future ZX_NEW policy. This will include any new
+  and any future **ZX_NEW** policy. This will include any new
   kernel objects which do not require a parent object for creation.
 
 Where *policy* is either
@@ -105,8 +105,8 @@
 
 ## NOTES
 
-The **ZX_POL_BAD_HANDLE** policy does not apply when calling ``zx_object_get_info()``
-with the topic ZX_INFO_HANDLE_VALID.  All other topics and all other syscalls that
+The **ZX_POL_BAD_HANDLE** policy does not apply when calling [`zx_object_get_info()`]
+with the topic **ZX_INFO_HANDLE_VALID**.  All other topics and all other syscalls that
 take handles are subject to the policy.
 
 ## ERRORS
@@ -119,12 +119,12 @@
 
 **ZX_ERR_WRONG_TYPE**  *handle* is not a job handle.
 
-**ZX_ERR_ACCESS_DENIED**  *handle* does not have ZX_POL_RIGHT_SET right.
+**ZX_ERR_ACCESS_DENIED**  *handle* does not have **ZX_POL_RIGHT_SET** right.
 
 **ZX_ERR_BAD_STATE**  the job has existing jobs or processes alive.
 
-**ZX_ERR_OUT_OF_RANGE** *count* is bigger than ZX_POL_MAX or *condition* is
-bigger than ZX_POL_MAX.
+**ZX_ERR_OUT_OF_RANGE** *count* is bigger than **ZX_POL_MAX** or *condition* is
+bigger than **ZX_POL_MAX**.
 
 **ZX_ERR_ALREADY_EXISTS** existing policy conflicts with the new policy.
 
@@ -139,3 +139,7 @@
 [job_create](job_create.md).
 [process_create](job_create.md).
 [object_get_info](object_get_info.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_object_get_info()`]: object_get_info.md
diff --git a/docs/syscalls/nanosleep.md b/docs/syscalls/nanosleep.md
index 4655254..76af214 100644
--- a/docs/syscalls/nanosleep.md
+++ b/docs/syscalls/nanosleep.md
@@ -22,7 +22,7 @@
 **ZX_CLOCK_MONOTONIC**. A *deadline* value less than or equal to **0**
 immediately yields the thread.
 
-To sleep for a duration, use [[`zx_deadline_after()`]](deadline_after.md) and the
+To sleep for a duration, use [`zx_deadline_after()`] and the
 **ZX_\<time-unit\>** helpers:
 
 ```
@@ -38,7 +38,7 @@
 of additional time that the thread might sleep before being rescheduled. For
 example, a thread that requests a nanosleep with a duration of 1 second will
 have a slack time of .1 second. This means that the thread will sleep anywhere
-between 1 and 1.1 seconds. See [timer_set](timer_set.md) for a more in-depth
+between 1 and 1.1 seconds. See [`zx_timer_set()`] for a more in-depth
 description of slack.
 
 The slack is included so the operating system can coalesce sleeps for
@@ -58,10 +58,11 @@
 ## SEE ALSO
 
 [deadline_after](deadline_after.md),
-[xz_timer_create](timer_create.md),
+[timer_create](timer_create.md),
 [timer_set](timer_set.md),
 [timer_cancel](timer_cancel.md),
 
 <!-- References updated by update-docs-from-abigen, do not edit. -->
 
 [`zx_deadline_after()`]: deadline_after.md
+[`zx_timer_set()`]: timer_set.md
diff --git a/docs/syscalls/object_get_child.md b/docs/syscalls/object_get_child.md
index 002f51a..a119523 100644
--- a/docs/syscalls/object_get_child.md
+++ b/docs/syscalls/object_get_child.md
@@ -27,7 +27,7 @@
 by the *handle* to the parent, a new handle to the specified child object is
 returned.
 
-*rights* may be *ZX_RIGHT_SAME_RIGHTS* which will result in rights equivalent
+*rights* may be **ZX_RIGHT_SAME_RIGHTS** which will result in rights equivalent
 to the those on the *handle*.
 
 If the object is a *Process*, the *Threads* it contains may be obtained by
diff --git a/docs/syscalls/object_get_info.md b/docs/syscalls/object_get_info.md
index 739ccdc..cceb07d 100644
--- a/docs/syscalls/object_get_info.md
+++ b/docs/syscalls/object_get_info.md
@@ -55,7 +55,7 @@
 
 *handle* type: **Any**
 
-*buffer* type: **zx_info_handle_basic_t[1]**
+*buffer* type: `zx_info_handle_basic_t[1]`
 
 ```
 typedef struct zx_info_handle_basic {
@@ -88,7 +88,7 @@
 
 *handle* type: **Any**
 
-*buffer* type: **zx_info_handle_count_t[1]**
+*buffer* type: `zx_info_handle_count_t[1]`
 
 ```
 typedef struct zx_info_handle_count {
@@ -106,7 +106,7 @@
 
 *handle* type: **Process**
 
-*buffer* type: **zx_info_process_handle_stats_t[1]**
+*buffer* type: `zx_info_process_handle_stats_t[1]`
 
 ```
 typedef struct zx_info_process_handle_stats {
@@ -119,7 +119,7 @@
 
 *handle* type: **Process**
 
-*buffer* type: **zx_info_process_t[1]**
+*buffer* type: `zx_info_process_t[1]`
 
 ```
 typedef struct zx_info_process {
@@ -143,9 +143,9 @@
 
 *handle* type: **Process**
 
-*buffer* type: **zx_koid_t[n]**
+*buffer* type: `zx_koid_t[n]`
 
-Returns an array of *zx_koid_t*, one for each running thread in the Process at
+Returns an array of `zx_koid_t`, one for each running thread in the Process at
 that moment in time.
 
 N.B. Getting the list of threads is inherently racy.
@@ -159,7 +159,7 @@
 
 *handle* type: **Thread**
 
-*buffer* type: **zx_info_thread_t[1]**
+*buffer* type: `zx_info_thread_t[1]`
 
 ```
 typedef struct zx_info_thread {
@@ -177,52 +177,52 @@
 The values in this struct are mainly for informational and debugging
 purposes at the moment.
 
-The **ZX_THREAD_STATE_\*** values are defined by
+The various **ZX_THREAD_STATE_** values are defined by
 
 ```
 #include <zircon/syscalls/object.h>
 ```
 
-*   *ZX_THREAD_STATE_NEW*: The thread has been created but it has not started running yet.
-*   *ZX_THREAD_STATE_RUNNING*: The thread is running user code normally.
-*   *ZX_THREAD_STATE_SUSPENDED*: Stopped due to [zx_task_suspend](task_suspend.md).
-*   *ZX_THREAD_STATE_BLOCKED*: In a syscall or handling an exception.
+*   **ZX_THREAD_STATE_NEW**: The thread has been created but it has not started running yet.
+*   **ZX_THREAD_STATE_RUNNING**: The thread is running user code normally.
+*   **ZX_THREAD_STATE_SUSPENDED**: Stopped due to [`zx_task_suspend()`].
+*   **ZX_THREAD_STATE_BLOCKED**: In a syscall or handling an exception.
     This value is never returned by itself.
 	See **ZX_THREAD_STATE_BLOCKED_\*** below.
-*   *ZX_THREAD_STATE_DYING*: The thread is in the process of being terminated,
+*   **ZX_THREAD_STATE_DYING**: The thread is in the process of being terminated,
     but it has not been stopped yet.
-*   *ZX_THREAD_STATE_DEAD*: The thread has stopped running.
+*   **ZX_THREAD_STATE_DEAD**: The thread has stopped running.
 
 When a thread is stopped inside a blocking syscall, or stopped in an
 exception, the value returned in **state** is one of the following:
 
-*   *ZX_THREAD_STATE_BLOCKED_EXCEPTION*: The thread is stopped in an exception.
-*   *ZX_THREAD_STATE_BLOCKED_SLEEPING*: The thread is stopped in [zx_nanosleep](nanosleep.md).
-*   *ZX_THREAD_STATE_BLOCKED_FUTEX*: The thread is stopped in [zx_futex_wait](futex_wait.md).
-*   *ZX_THREAD_STATE_BLOCKED_PORT*: The thread is stopped in [zx_port_wait](port_wait.md).
-*   *ZX_THREAD_STATE_BLOCKED_CHANNEL*: The thread is stopped in [zx_channel_call](channel_call.md).
-*   *ZX_THREAD_STATE_BLOCKED_WAIT_ONE*: The thread is stopped in [zx_object_wait_one](object_wait_one.md).
-*   *ZX_THREAD_STATE_BLOCKED_WAIT_MANY*: The thread is stopped in [zx_object_wait_many](object_wait_many.md).
-*   *ZX_THREAD_STATE_BLOCKED_INTERRUPT*: The thread is stopped in [zx_interrupt_wait](interrupt_wait.md).
+*   **ZX_THREAD_STATE_BLOCKED_EXCEPTION**: The thread is stopped in an exception.
+*   **ZX_THREAD_STATE_BLOCKED_SLEEPING**: The thread is stopped in [`zx_nanosleep()`].
+*   **ZX_THREAD_STATE_BLOCKED_FUTEX**: The thread is stopped in [`zx_futex_wait()`].
+*   **ZX_THREAD_STATE_BLOCKED_PORT**: The thread is stopped in [`zx_port_wait()`].
+*   **ZX_THREAD_STATE_BLOCKED_CHANNEL**: The thread is stopped in [`zx_channel_call()`].
+*   **ZX_THREAD_STATE_BLOCKED_WAIT_ONE**: The thread is stopped in [`zx_object_wait_one()`].
+*   **ZX_THREAD_STATE_BLOCKED_WAIT_MANY**: The thread is stopped in [`zx_object_wait_many()`].
+*   **ZX_THREAD_STATE_BLOCKED_INTERRUPT**: The thread is stopped in [`zx_interrupt_wait()`].
 
-The **ZX_EXCEPTION_PORT_TYPE_\*** values are defined by
+The various **ZX_EXCEPTION_PORT_TYPE_** values are defined by
 
 ```
 #include <zircon/syscalls/exception.h>
 ```
 
-*   *ZX_EXCEPTION_PORT_TYPE_NONE*
-*   *ZX_EXCEPTION_PORT_TYPE_DEBUGGER*
-*   *ZX_EXCEPTION_PORT_TYPE_THREAD*
-*   *ZX_EXCEPTION_PORT_TYPE_PROCESS*
-*   *ZX_EXCEPTION_PORT_TYPE_JOB*
-*   *ZX_EXCEPTION_PORT_TYPE_JOB_DEBUGGER*
+*   **ZX_EXCEPTION_PORT_TYPE_NONE**
+*   **ZX_EXCEPTION_PORT_TYPE_DEBUGGER**
+*   **ZX_EXCEPTION_PORT_TYPE_THREAD**
+*   **ZX_EXCEPTION_PORT_TYPE_PROCESS**
+*   **ZX_EXCEPTION_PORT_TYPE_JOB**
+*   **ZX_EXCEPTION_PORT_TYPE_JOB_DEBUGGER**
 
 ### ZX_INFO_THREAD_EXCEPTION_REPORT
 
 *handle* type: **Thread**
 
-*buffer* type: **zx_exception_report_t[1]**
+*buffer* type: `zx_exception_report_t[1]`
 
 ```
 #include <zircon/syscalls/exception.h>
@@ -230,7 +230,7 @@
 
 If the thread is currently in an exception and is waiting for an exception
 response, then this returns the exception report as a single
-*zx_exception_report_t*, with status ZX_OK.
+`zx_exception_report_t`, with status **ZX_OK**.
 
 Returns **ZX_ERR_BAD_STATE** if the thread is not in an exception and waiting for
 an exception response.
@@ -239,7 +239,7 @@
 
 *handle* type: **Thread**
 
-*buffer* type: **zx_info_thread_stats[1]**
+*buffer* type: `zx_info_thread_stats[1]`
 
 ```
 typedef struct zx_info_thread_stats {
@@ -255,7 +255,7 @@
 
 *handle* type: **Resource** (Specifically, the root resource)
 
-*buffer* type: **zx_info_cpu_stats_t[1]**
+*buffer* type: `zx_info_cpu_stats_t[1]`
 
 ```
 typedef struct zx_info_cpu_stats {
@@ -290,7 +290,7 @@
 
 *handle* type: **VM Address Region**
 
-*buffer* type: **zx_info_vmar_t[1]**
+*buffer* type: `zx_info_vmar_t[1]`
 
 ```
 typedef struct zx_info_vmar {
@@ -302,14 +302,14 @@
 } zx_info_vmar_t;
 ```
 
-This returns a single *zx_info_vmar_t* that describes the range of address
+This returns a single `zx_info_vmar_t` that describes the range of address
 space that the VMAR occupies.
 
 ### ZX_INFO_VMO
 
 *handle* type: **VM Object**
 
-*buffer* type: **zx_info_vmo_t[1]**
+*buffer* type: `zx_info_vmo_t[1]`
 
 ```
 typedef struct zx_info_vmo {
@@ -356,14 +356,14 @@
 } zx_info_vmo_t;
 ```
 
-This returns a single *zx_info_vmo_t* that describes various attributes of
+This returns a single `zx_info_vmo_t` that describes various attributes of
 the VMO.
 
 ### ZX_INFO_SOCKET
 
 *handle* type: **Socket**
 
-*buffer* type: **zx_info_socket_t[1]**
+*buffer* type: `zx_info_socket_t[1]`
 
 ```
 typedef struct zx_info_socket {
@@ -406,25 +406,25 @@
 
 *handle* type: **Job**
 
-*buffer* type: **zx_koid_t[n]**
+*buffer* type: `zx_koid_t[n]`
 
-Returns an array of *zx_koid_t*, one for each direct child Job of the provided
+Returns an array of `zx_koid_t`, one for each direct child Job of the provided
 Job handle.
 
 ### ZX_INFO_JOB_PROCESSES
 
 *handle* type: **Job**
 
-*buffer* type: **zx_koid_t[n]**
+*buffer* type: `zx_koid_t[n]`
 
-Returns an array of *zx_koid_t*, one for each direct child Process of the
+Returns an array of `zx_koid_t`, one for each direct child Process of the
 provided Job handle.
 
 ### ZX_INFO_TASK_STATS
 
 *handle* type: **Process**
 
-*buffer* type: **zx_info_task_stats_t[1]**
+*buffer* type: `zx_info_task_stats_t[1]`
 
 Returns statistics about resources (e.g., memory) used by a task.
 
@@ -464,9 +464,9 @@
 
 *handle* type: **Process** other than your own, with **ZX_RIGHT_READ**
 
-*buffer* type: **zx_info_maps_t[n]**
+*buffer* type: `zx_info_maps_t[n]`
 
-The *zx_info_maps_t* array is a depth-first pre-order walk of the target
+The `zx_info_maps_t` array is a depth-first pre-order walk of the target
 process's Aspace/VMAR/Mapping tree. As per the pre-order traversal base
 addresses will be in ascending order.
 
@@ -517,9 +517,9 @@
 
 *handle* type: **Process** other than your own, with **ZX_RIGHT_READ**
 
-*buffer* type: **zx_info_vmos_t[n]**
+*buffer* type: `zx_info_vmos_t[n]`
 
-The *zx_info_vmos_t* array is list of all VMOs pointed to by the target process.
+The `zx_info_vmos_t` array is list of all VMOs pointed to by the target process.
 Some VMOs are mapped, some are pointed to by handles, and some are both.
 
 **Note**: The same VMO may appear multiple times due to multiple
@@ -583,7 +583,7 @@
 
 *handle* type: **Resource** (Specifically, the root resource)
 
-*buffer* type: **zx_info_kmem_stats_t[1]**
+*buffer* type: `zx_info_kmem_stats_t[1]`
 
 Returns information about kernel memory usage. It can be expensive to gather.
 
@@ -627,7 +627,8 @@
 ### ZX_INFO_RESOURCE
 
 *handle* type: **Resource**
-*buffer* type: **zx_info_resource_t[1]**
+
+*buffer* type: `zx_info_resource_t[1]`
 
 Returns information about a resource object via its handle.
 
@@ -644,19 +645,19 @@
 
 The resource kind is one of
 
-*   *ZX_RSRC_KIND_ROOT*
-*   *ZX_RSRC_KIND_MMIO*
-*   *ZX_RSRC_KIND_IOPORT*
-*   *ZX_RSRC_KIND_IRQ*
-*   *ZX_RSRC_KIND_HYPERVISOR*
-*   *ZX_RSRC_KIND_VMEX*
-*   *ZX_RSRC_KIND_SMC*
+*   **ZX_RSRC_KIND_ROOT**
+*   **ZX_RSRC_KIND_MMIO**
+*   **ZX_RSRC_KIND_IOPORT**
+*   **ZX_RSRC_KIND_IRQ**
+*   **ZX_RSRC_KIND_HYPERVISOR**
+*   **ZX_RSRC_KIND_VMEX**
+*   **ZX_RSRC_KIND_SMC**
 
 ### ZX_INFO_BTI
 
 *handle* type: **Bus Transaction Initiator**
 
-*buffer* type: **zx_info_bti_t[1]**
+*buffer* type: `zx_info_bti_t[1]`
 
 ```
 typedef struct zx_info_bti {
@@ -776,5 +777,18 @@
 
 ## SEE ALSO
 
-[handle_close](handle_close.md), [handle_duplicate](handle_duplicate.md),
-[handle_replace](handle_replace.md), [object_get_child](object_get_child.md).
+[handle_close](handle_close.md),
+[handle_duplicate](handle_duplicate.md),
+[handle_replace](handle_replace.md),
+[object_get_child](object_get_child.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_channel_call()`]: channel_call.md
+[`zx_futex_wait()`]: futex_wait.md
+[`zx_interrupt_wait()`]: interrupt_wait.md
+[`zx_nanosleep()`]: nanosleep.md
+[`zx_object_wait_many()`]: object_wait_many.md
+[`zx_object_wait_one()`]: object_wait_one.md
+[`zx_port_wait()`]: port_wait.md
+[`zx_task_suspend()`]: task_suspend.md
diff --git a/docs/syscalls/object_get_property.md b/docs/syscalls/object_get_property.md
index 944eb53..2b2d0a5 100644
--- a/docs/syscalls/object_get_property.md
+++ b/docs/syscalls/object_get_property.md
@@ -46,7 +46,7 @@
 
 *handle* type: **(Most types)**
 
-*value* type: **char\[ZX_MAX_NAME_LEN\]**
+*value* type: `char[ZX_MAX_NAME_LEN]`
 
 Allowed operations: **get**, **set**
 
@@ -56,7 +56,7 @@
 
 *handle* type: **Thread**
 
-*value* type: **uintptr_t**
+*value* type: `uintptr_t`
 
 Allowed operations: **set**
 
@@ -69,7 +69,7 @@
 
 *handle* type: **Process**
 
-*value* type: **uintptr_t**
+*value* type: `uintptr_t`
 
 Allowed operations: **get**, **set**
 
@@ -85,7 +85,7 @@
 
 *handle* type: **Process**
 
-*value* type: **uintptr_t**
+*value* type: `uintptr_t`
 
 Allowed operations: **get**
 
@@ -95,7 +95,7 @@
 
 *handle* type: **Job**
 
-*value* type: **zx_job_importance_t**
+*value* type: `zx_job_importance_t`
 
 Allowed operations: **get**, **set**
 
@@ -110,7 +110,7 @@
 
 *handle* type: **Socket**
 
-*value* type: **size_t**
+*value* type: `size_t`
 
 Allowed operations: **get**, **set**
 
@@ -123,7 +123,7 @@
 
 *handle* type: **Socket**
 
-*value* type: **size_t**
+*value* type: `size_t`
 
 Allowed operations: **get**, **set**
 
@@ -138,7 +138,7 @@
 
 *handle* type: **Job**
 
-*value* type: **size_t**
+*value* type: `size_t`
 
 Allowed operations: **set**
 
diff --git a/docs/syscalls/object_set_property.md b/docs/syscalls/object_set_property.md
index 1c3f2b7..6c54bff 100644
--- a/docs/syscalls/object_set_property.md
+++ b/docs/syscalls/object_set_property.md
@@ -24,7 +24,7 @@
 `zx_object_set_property()` modifies the value of a kernel object's property.
 Setting a property requires **ZX_RIGHT_SET_PROPERTY** rights on the handle.
 
-See [object_get_property()](object_get_property.md) for a full description.
+See [`zx_object_get_property()`] for a full description.
 
 ## RIGHTS
 
@@ -43,3 +43,7 @@
 ## SEE ALSO
 
 [object_get_property()](object_get_property.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_object_get_property()`]: object_get_property.md
diff --git a/docs/syscalls/object_signal.md b/docs/syscalls/object_signal.md
index 2102b1a..c8db099 100644
--- a/docs/syscalls/object_signal.md
+++ b/docs/syscalls/object_signal.md
@@ -24,13 +24,13 @@
 bits on an object.
 
 Most of the 32 signals are reserved for system use and are assigned to
-per-object functions, like *ZX_CHANNEL_READABLE* or *ZX_TASK_TERMINATED*. There
+per-object functions, like **ZX_CHANNEL_READABLE** or **ZX_TASK_TERMINATED**. There
 are 8 signal bits available for userspace processes to use as they see fit:
-*ZX_USER_SIGNAL_0* through *ZX_USER_SIGNAL_7*.
+**ZX_USER_SIGNAL_0** through **ZX_USER_SIGNAL_7**.
 
-*Event* objects also allow control over the *ZX_EVENT_SIGNALED* bit.
+*Event* objects also allow control over the **ZX_EVENT_SIGNALED** bit.
 
-*Eventpair* objects also allow control over the *ZX_EVENTPAIR_SIGNALED* bit.
+*Eventpair* objects also allow control over the **ZX_EVENTPAIR_SIGNALED** bit.
 
 The *clear_mask* is first used to clear any bits indicated, and then the
 *set_mask* is used to set any bits indicated.
diff --git a/docs/syscalls/object_signal_peer.md b/docs/syscalls/object_signal_peer.md
index 853fa34..fb34ad0 100644
--- a/docs/syscalls/object_signal_peer.md
+++ b/docs/syscalls/object_signal_peer.md
@@ -25,13 +25,13 @@
 *channel*, *socket*, *fifo*, or *eventpair*.
 
 Most of the 32 signals are reserved for system use and are assigned to
-per-object functions, like *ZX_CHANNEL_READABLE* or *ZX_TASK_TERMINATED*. There
+per-object functions, like **ZX_CHANNEL_READABLE** or **ZX_TASK_TERMINATED**. There
 are 8 signal bits available for userspace processes to use as they see fit:
-*ZX_USER_SIGNAL_0* through *ZX_USER_SIGNAL_7*.
+**ZX_USER_SIGNAL_0** through **ZX_USER_SIGNAL_7**.
 
-*Event* objects also allow control over the *ZX_EVENT_SIGNALED* bit.
+*Event* objects also allow control over the **ZX_EVENT_SIGNALED** bit.
 
-*Eventpair* objects also allow control over the *ZX_EVENTPAIR_SIGNALED* bit.
+*Eventpair* objects also allow control over the **ZX_EVENTPAIR_SIGNALED** bit.
 
 The *clear_mask* is first used to clear any bits indicated, and then the
 *set_mask* is used to set any bits indicated.
diff --git a/docs/syscalls/object_wait_async.md b/docs/syscalls/object_wait_async.md
index 4d9f83e..fabc6f9 100644
--- a/docs/syscalls/object_wait_async.md
+++ b/docs/syscalls/object_wait_async.md
@@ -51,7 +51,7 @@
 If the handle is closed, the operation will also be terminated, but packets already
 in the queue are not affected.
 
-See [port_wait](port_wait.md) for more information about each type
+See [`zx_port_wait()`] for more information about each type
 of packet and their semantics.
 
 ## RIGHTS
diff --git a/docs/syscalls/pmt_unpin.md b/docs/syscalls/pmt_unpin.md
index b8864b9..19acddc 100644
--- a/docs/syscalls/pmt_unpin.md
+++ b/docs/syscalls/pmt_unpin.md
@@ -32,7 +32,7 @@
 
 ## RETURN VALUE
 
-On success, `zx_pmt_unpin()` returns *ZX_OK*.
+On success, `zx_pmt_unpin()` returns **ZX_OK**.
 In the event of failure, a negative error value is returned.
 
 ## ERRORS
diff --git a/docs/syscalls/port_wait.md b/docs/syscalls/port_wait.md
index 71769a0..58cfb10 100644
--- a/docs/syscalls/port_wait.md
+++ b/docs/syscalls/port_wait.md
@@ -39,7 +39,7 @@
 
 There are two sources of packets: manually queued packets with [`zx_port_queue()`] and packets
 generated by kernel when objects registered with [`zx_object_wait_async()`] change state. In both
-cases the packet is always of type **zx_port_packet_t**:
+cases the packet is always of type `zx_port_packet_t`:
 
 ```
 struct zx_port_packet_t {
@@ -60,7 +60,7 @@
 ```
 
 In the case of packets generated via [`zx_port_queue()`] *key* is the key in the
-input packet, *type* is set to **ZX_PKT_TYPE_USER** and the union is of type **zx_packet_user_t**.
+input packet, *type* is set to **ZX_PKT_TYPE_USER** and the union is of type `zx_packet_user_t`.
 
 ```
 typedef union zx_packet_user {
@@ -75,7 +75,7 @@
 
 In the case of packets generated via [`zx_object_wait_async()`] *key* is the key passed to the
 syscall, *type* is set to either **ZX_PKT_TYPE_SIGNAL_ONE** or **ZX_PKT_TYPE_SIGNAL_REP**
-and the union is of type **zx_packet_signal_t**:
+and the union is of type `zx_packet_signal_t`:
 
 ```
 typedef struct zx_packet_signal {
@@ -90,7 +90,7 @@
 of pending operations. Use *key* to track what object this packet corresponds to and
 therefore match *count* with the operation.
 
-See [object_wait_async](object_wait_async.md) for more details.
+See [`zx_object_wait_async()`] for more details.
 
 TODO(ZX-3134) Discuss all the other port packet types.
 
diff --git a/docs/syscalls/process_create.md b/docs/syscalls/process_create.md
index a3b6a2b..24bbc64 100644
--- a/docs/syscalls/process_create.md
+++ b/docs/syscalls/process_create.md
@@ -26,15 +26,15 @@
 `zx_process_create()` creates a new process.
 
 Upon success, handles for the new process and the root of its address space
-are returned.  The thread will not start executing until *process_start()* is
+are returned.  The thread will not start executing until [`zx_process_start()`] is
 called.
 
-*name* is silently truncated to a maximum of *ZX_MAX_NAME_LEN-1* characters.
+*name* is silently truncated to a maximum of `ZX_MAX_NAME_LEN-1` characters.
 
 When the last handle to a process is closed, the process is destroyed.
 
 Process handles may be waited on and will assert the signal
-*ZX_PROCESS_TERMINATED* when the process exits.
+**ZX_PROCESS_TERMINATED** when the process exits.
 
 *job* is the controlling [job object](../objects/job.md) for the new
 process, which will become a child of that job.
@@ -82,3 +82,7 @@
 [thread_exit](thread_exit.md),
 [thread_start](thread_start.md),
 [job_create](job_create.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_process_start()`]: process_start.md
diff --git a/docs/syscalls/process_start.md b/docs/syscalls/process_start.md
index 0dd6037..fdfa7e3 100644
--- a/docs/syscalls/process_start.md
+++ b/docs/syscalls/process_start.md
@@ -50,7 +50,7 @@
 
 ## RETURN VALUE
 
-`zx_process_start()` returns ZX_OK on success.
+`zx_process_start()` returns **ZX_OK** on success.
 In the event of failure, a negative error value is returned.
 
 ## ERRORS
@@ -60,9 +60,9 @@
 **ZX_ERR_WRONG_TYPE**  *process* is not a process handle or *thread* is
 not a thread handle.
 
-**ZX_ERR_ACCESS_DENIED**  The handle *thread* lacks *ZX_RIGHT_WRITE* or *thread*
-does not belong to *process*, or the handle *process* lacks *ZX_RIGHT_WRITE* or
-*arg1* lacks ZX_RIGHT_TRANSFER.
+**ZX_ERR_ACCESS_DENIED**  The handle *thread* lacks **ZX_RIGHT_WRITE** or *thread*
+does not belong to *process*, or the handle *process* lacks **ZX_RIGHT_WRITE** or
+*arg1* lacks **ZX_RIGHT_TRANSFER**.
 
 **ZX_ERR_BAD_STATE**  *process* is already running or has exited.
 
diff --git a/docs/syscalls/resource_create.md b/docs/syscalls/resource_create.md
index c83d806..0beac7c 100644
--- a/docs/syscalls/resource_create.md
+++ b/docs/syscalls/resource_create.md
@@ -90,6 +90,7 @@
 
 ## SEE ALSO
 
-[handle_close](handle_close.md), [interrupt_create](interrupt_create.md),
+[handle_close](handle_close.md),
+[interrupt_create](interrupt_create.md),
 [ioports_request](ioports_request.md),
 [vmo_create_physical](vmo_create_physical.md)
diff --git a/docs/syscalls/smc_call.md b/docs/syscalls/smc_call.md
index 2576102..d4a8e2d 100644
--- a/docs/syscalls/smc_call.md
+++ b/docs/syscalls/smc_call.md
@@ -22,7 +22,7 @@
 ## DESCRIPTION
 
 `zx_smc_call()` makes a Secure Monitor Call (SMC) from user space. It supports the ARM SMC Calling
-Convention using the *zx_smc_parameters_t* input parameter and *zx_smc_result_t* output parameter.
+Convention using the `zx_smc_parameters_t` input parameter and `zx_smc_result_t` output parameter.
 The input *handle* must be a resource object with sufficient privileges in order to be executed.
 
 The majority of the parameters are opaque from `zx_smc_call()` perspective because they are
@@ -44,7 +44,7 @@
 
 ## RETURN VALUE
 
-`zx_smc_call()` returns ZX_OK if *handle* has sufficient privilege. The
+`zx_smc_call()` returns **ZX_OK** if *handle* has sufficient privilege. The
 return value of the smc call is returned via **out_smc_result** on success. In the event of
 failure, a negative error value is returned.
 
diff --git a/docs/syscalls/socket_read.md b/docs/syscalls/socket_read.md
index 12af72b..e2057f3 100644
--- a/docs/syscalls/socket_read.md
+++ b/docs/syscalls/socket_read.md
@@ -37,8 +37,8 @@
 attempts to read from the socket control plane.
 
 To determine how many bytes are available to read, use the **rx_buf_available**
-field of the resulting **zx_info_socket_t**, which you can obtain using the
-**ZX_INFO_SOCET** topic for [object_get_info](object_get_info.md).
+field of the resulting `zx_info_socket_t`, which you can obtain using the
+**ZX_INFO_SOCKET** topic for [`zx_object_get_info()`].
 
 ## RIGHTS
 
@@ -79,3 +79,7 @@
 [socket_share](socket_share.md),
 [socket_shutdown](socket_shutdown.md),
 [socket_write](socket_write.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_object_get_info()`]: object_get_info.md
diff --git a/docs/syscalls/system_get_features.md b/docs/syscalls/system_get_features.md
index 4b8fecd..1ea473a 100644
--- a/docs/syscalls/system_get_features.md
+++ b/docs/syscalls/system_get_features.md
@@ -20,7 +20,7 @@
 
 `zx_system_get_features()` populates *features* with a bit mask of
 hardware-specific features.  *kind* indicates the specific type of features
-to retrieve, e.g. *ZX_FEATURE_KIND_CPU*.  The supported kinds and the meaning
+to retrieve, e.g. **ZX_FEATURE_KIND_CPU**.  The supported kinds and the meaning
 of individual feature bits is hardware-dependent.
 
 ## RIGHTS
diff --git a/docs/syscalls/system_mexec.md b/docs/syscalls/system_mexec.md
index e6e3f01..0b4ed33 100644
--- a/docs/syscalls/system_mexec.md
+++ b/docs/syscalls/system_mexec.md
@@ -24,10 +24,10 @@
 kernel image and *bootimage_vmo* should contain an initrd whose address shall
 be passed to the new kernel as a kernel argument.
 
-To supplant the running kernel, a *resource* of *ZX_RSRC_KIND_ROOT* must be
+To supplant the running kernel, a *resource* of **ZX_RSRC_KIND_ROOT** must be
 supplied.
 
-Upon success, *zx_system_mexec* shall supplant the currently running kernel
+Upon success, `zx_system_mexec()` shall supplant the currently running kernel
 image with the kernel image contained within *kernel_vmo*, load the ramdisk
 contained within *bootimage_vmo* to a location in physical memory and branch
 directly into the new kernel while providing the address of the loaded initrd
diff --git a/docs/syscalls/system_mexec_payload_get.md b/docs/syscalls/system_mexec_payload_get.md
index a52e5bb..2447ca1 100644
--- a/docs/syscalls/system_mexec_payload_get.md
+++ b/docs/syscalls/system_mexec_payload_get.md
@@ -23,9 +23,9 @@
 `zx_system_mexec_payload_get()` accepts a resource handle and a
 pointer/length corresponding to an output buffer and fills the buffer with an
 incomplete ZBI containing a sequence of entries that should be appended to a
-ZBI before passing that image to zx_system_mexec().
+ZBI before passing that image to [`zx_system_mexec()`].
 
-*resource* must be of type *ZX_RSRC_KIND_ROOT*.
+*resource* must be of type **ZX_RSRC_KIND_ROOT**.
 
 *buffer* and *buffer_size* must point to a buffer that is no longer than 16KiB.
 
@@ -37,8 +37,12 @@
 
 ## RETURN VALUE
 
-`zx_system_mexec_payload_get()` returns ZX_OK on success.
+`zx_system_mexec_payload_get()` returns **ZX_OK** on success.
 
 ## SEE ALSO
 
 [system_mexec](system_mexec.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_system_mexec()`]: system_mexec.md
diff --git a/docs/syscalls/task_bind_exception_port.md b/docs/syscalls/task_bind_exception_port.md
index 2ace05f..0609faf 100644
--- a/docs/syscalls/task_bind_exception_port.md
+++ b/docs/syscalls/task_bind_exception_port.md
@@ -24,7 +24,7 @@
 `zx_task_bind_exception_port()` is used to bind (or unbind) a port to
 the exception port of a job, process, or thread.
 
-*port* is an IO port created by [zx_port_create](port_create.md). The same
+*port* is an IO port created by [`zx_port_create()`]. The same
 IO port can be bound to multiple objects.
 
 *key* is passed back in exception reports, and is part of the port
@@ -83,3 +83,7 @@
 [port_create](port_create.md).
 [port_wait](port_wait.md).
 [task_resume_from_exception](task_resume_from_exception.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_port_create()`]: port_create.md
diff --git a/docs/syscalls/task_kill.md b/docs/syscalls/task_kill.md
index 63b9eb8..9776ac8 100644
--- a/docs/syscalls/task_kill.md
+++ b/docs/syscalls/task_kill.md
@@ -43,7 +43,7 @@
 ## NOTES
 
 When using this syscall on a process, the return code for the process
-is -1 as reported by [`zx_object_get_info()`] via the ZX_INFO_PROCESS topic.
+is -1 as reported by [`zx_object_get_info()`] via the **ZX_INFO_PROCESS** topic.
 
 ## ERRORS
 
diff --git a/docs/syscalls/task_resume_from_exception.md b/docs/syscalls/task_resume_from_exception.md
index 3dad171..dde2bb6 100644
--- a/docs/syscalls/task_resume_from_exception.md
+++ b/docs/syscalls/task_resume_from_exception.md
@@ -33,8 +33,7 @@
 of an architectural exception generally means retrying the offending
 instruction, or give the next handler in the search order a chance
 to handle the exception.
-See [task_bind_exception_port](task_bind_exception_port.md)
-for a description of exception processing.
+See [`zx_task_bind_exception_port()`] for a description of exception processing.
 
 To resume a thread where it left off, pass 0 for the options:
 
@@ -84,3 +83,7 @@
 ## SEE ALSO
 
 [task_bind_exception_port](task_bind_exception_port.md),
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_task_bind_exception_port()`]: task_bind_exception_port.md
diff --git a/docs/syscalls/task_suspend.md b/docs/syscalls/task_suspend.md
index 1b9d407..5832af0 100644
--- a/docs/syscalls/task_suspend.md
+++ b/docs/syscalls/task_suspend.md
@@ -37,7 +37,7 @@
 The allow the task to resume, close the suspend token handle. The task will
 remain suspended as long as there are any open suspend tokens. Like suspending,
 resuming is asynchronous so the thread may not be in a running state when the
-[handle_close](handle_close.md) call returns, even if no other suspend tokens
+[`zx_handle_close()`] call returns, even if no other suspend tokens
 are open.
 
 ## SIGNALS AND EXCEPTIONS
@@ -48,7 +48,7 @@
 - **ZX_THREAD_SUSPENDED**
 
 Neither of these will be asserted until the thread is started via
-[process_start](process_start.md) or [thread_start](thread_start.md). When
+[`zx_process_start()`] or [`zx_thread_start()`]. When
 a thread starts, it will assert **ZX_THREAD_RUNNING** whether it is suspended
 or not, but if it is suspended will then switch to **ZX_THREAD_SUSPENDED**
 before executing any code.
@@ -85,4 +85,7 @@
 
 <!-- References updated by update-docs-from-abigen, do not edit. -->
 
+[`zx_handle_close()`]: handle_close.md
+[`zx_process_start()`]: process_start.md
 [`zx_task_kill()`]: task_kill.md
+[`zx_thread_start()`]: thread_start.md
diff --git a/docs/syscalls/task_suspend_token.md b/docs/syscalls/task_suspend_token.md
index 680446f..4972b46 100644
--- a/docs/syscalls/task_suspend_token.md
+++ b/docs/syscalls/task_suspend_token.md
@@ -36,7 +36,7 @@
 The allow the task to resume, close the suspend token handle. The task will
 remain suspended as long as there are any open suspend tokens. Like suspending,
 resuming is asynchronous so the thread may not be in a running state when the
-[handle_close](handle_close.md) call returns, even if no other suspend tokens
+[`zx_handle_close()`] call returns, even if no other suspend tokens
 are open.
 
 ## RIGHTS
@@ -66,5 +66,6 @@
 
 <!-- References updated by update-docs-from-abigen, do not edit. -->
 
+[`zx_handle_close()`]: handle_close.md
 [`zx_task_kill()`]: task_kill.md
 [`zx_task_suspend()`]: task_suspend.md
diff --git a/docs/syscalls/thread_create.md b/docs/syscalls/thread_create.md
index 9a006d7..ba370e1 100644
--- a/docs/syscalls/thread_create.md
+++ b/docs/syscalls/thread_create.md
@@ -25,12 +25,12 @@
 `zx_thread_create()` creates a thread within the specified process.
 
 Upon success a handle for the new thread is returned.  The thread
-will not start executing until *thread_start()* is called.
+will not start executing until [`zx_thread_start()`] is called.
 
-*name* is silently truncated to a maximum of *ZX_MAX_NAME_LEN-1* characters.
+*name* is silently truncated to a maximum of `ZX_MAX_NAME_LEN-1` characters.
 
 Thread handles may be waited on and will assert the signal
-*ZX_THREAD_TERMINATED* when the thread stops executing (due to
+**ZX_THREAD_TERMINATED** when the thread stops executing (due to
 [`zx_thread_exit()`] being called).
 
 *process* is the controlling [process object](../objects/process.md) for the
@@ -78,3 +78,4 @@
 <!-- References updated by update-docs-from-abigen, do not edit. -->
 
 [`zx_thread_exit()`]: thread_exit.md
+[`zx_thread_start()`]: thread_start.md
diff --git a/docs/syscalls/thread_exit.md b/docs/syscalls/thread_exit.md
index 7151479..30ce787 100644
--- a/docs/syscalls/thread_exit.md
+++ b/docs/syscalls/thread_exit.md
@@ -21,9 +21,9 @@
 `zx_thread_exit()` causes the currently running thread to cease
 running and exit.
 
-The signal *ZX_THREAD_TERMINATED* will be asserted on the thread
-object upon exit and may be observed via *object_wait_one*()
-or *object_wait_many*() on a handle to the thread.
+The signal **ZX_THREAD_TERMINATED** will be asserted on the thread
+object upon exit and may be observed via [`zx_object_wait_one()`]
+or [`zx_object_wait_many()`] on a handle to the thread.
 
 ## RIGHTS
 
@@ -44,3 +44,8 @@
 [object_wait_many](object_wait_many.md),
 [thread_create](thread_create.md),
 [thread_start](thread_start.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_object_wait_many()`]: object_wait_many.md
+[`zx_object_wait_one()`]: object_wait_one.md
diff --git a/docs/syscalls/thread_read_state.md b/docs/syscalls/thread_read_state.md
index f8040ed..f3ff640 100644
--- a/docs/syscalls/thread_read_state.md
+++ b/docs/syscalls/thread_read_state.md
@@ -32,37 +32,37 @@
 
 ### ZX_THREAD_STATE_GENERAL_REGS
 
-The buffer must point to a **zx_thread_state_general_regs_t** structure that
+The buffer must point to a `zx_thread_state_general_regs_t` structure that
 contains the general registers for the current architecture.
 
 ### ZX_THREAD_STATE_FP_REGS
 
-The buffer must point to a **zx_thread_state_fp_regs_t** structure. On 64-bit
+The buffer must point to a `zx_thread_state_fp_regs_t` structure. On 64-bit
 ARM platforms, float point state is in the vector registers and this structure
 is empty.
 
 ### ZX_THREAD_STATE_VECTOR_REGS
 
-The buffer must point to a **zx_thread_state_vector_regs_t** structure.
+The buffer must point to a `zx_thread_state_vector_regs_t` structure.
 
 ### ZX_THREAD_STATE_DEBUG_REGS
 
-The buffer must point to a **zx_thread_state_debug_regs_t** structure. All input
+The buffer must point to a `zx_thread_state_debug_regs_t` structure. All input
 fields will be ignored and overwritten with the actual values for the thread.
 
 ### ZX_THREAD_STATE_SINGLE_STEP
 
-The buffer must point to a **zx_thread_state_single_step_t** value which
+The buffer must point to a `zx_thread_state_single_step_t` value which
 may contain either 0 (normal running), or 1 (single stepping enabled).
 
 ### ZX_THREAD_X86_REGISTER_FS
 
-The buffer must point to a **zx_thread_x86_register_fs_t** structure which contains
+The buffer must point to a `zx_thread_x86_register_fs_t` structure which contains
 a uint64. This is only relevant on x86 platforms.
 
 ### ZX_THREAD_X86_REGISTER_GS
 
-The buffer must point to a **zx_thread_x86_register_gs_t** structure which contains
+The buffer must point to a `zx_thread_x86_register_gs_t` structure which contains
 a uint64. This is only relevant on x86 platforms.
 
 ## RIGHTS
@@ -82,7 +82,7 @@
 
 **ZX_ERR_WRONG_TYPE**  *handle* is not that of a thread.
 
-**ZX_ERR_ACCESS_DENIED**  *handle* lacks *ZX_RIGHT_READ*.
+**ZX_ERR_ACCESS_DENIED**  *handle* lacks **ZX_RIGHT_READ**.
 
 **ZX_ERR_INVALID_ARGS**  *kind* is not valid or *buffer* is an invalid pointer.
 
diff --git a/docs/syscalls/thread_start.md b/docs/syscalls/thread_start.md
index 1a6a331..e915620 100644
--- a/docs/syscalls/thread_start.md
+++ b/docs/syscalls/thread_start.md
@@ -31,8 +31,8 @@
 When the last handle to a thread is closed, the thread is destroyed.
 
 Thread handles may be waited on and will assert the signal
-*ZX_THREAD_TERMINATED* when the thread stops executing (due to
-[`zx_thread_exit()`] being called.
+**ZX_THREAD_TERMINATED** when the thread stops executing (due to
+[`zx_thread_exit()`] being called).
 
 *thread_entry* shall point to a function that must call [`zx_thread_exit()`] or
 [`zx_futex_wake_handle_close_thread_exit()`] or
@@ -58,7 +58,7 @@
 
 ## RETURN VALUE
 
-`zx_thread_start()` returns ZX_OK on success.
+`zx_thread_start()` returns **ZX_OK** on success.
 In the event of failure, a negative error value is returned.
 
 ## ERRORS
@@ -67,7 +67,7 @@
 
 **ZX_ERR_WRONG_TYPE**  *thread* is not a thread handle.
 
-**ZX_ERR_ACCESS_DENIED**  The handle *thread* lacks *ZX_RIGHT_WRITE*.
+**ZX_ERR_ACCESS_DENIED**  The handle *thread* lacks **ZX_RIGHT_WRITE**.
 
 **ZX_ERR_BAD_STATE**  *thread* is not ready to run or the process *thread*
 is part of is no longer alive.
diff --git a/docs/syscalls/thread_write_state.md b/docs/syscalls/thread_write_state.md
index 57d3f7b..c9b0acf 100644
--- a/docs/syscalls/thread_write_state.md
+++ b/docs/syscalls/thread_write_state.md
@@ -30,7 +30,7 @@
 
 ## STATES
 
-See [thread_read_state](thread_read_state.md) for the list of available states
+See [`zx_thread_read_state()`] for the list of available states
 and their corresponding values.
 
 ### ZX_THREAD_STATE_DEBUG_REGS
@@ -38,7 +38,7 @@
 #### ARM
 
 ARM has a variable amount of debug breakpoints and watchpoints. For this
-architecture, **zx_thread_state_debug_regs_t** is big enough to hold the maximum
+architecture, `zx_thread_state_debug_regs_t` is big enough to hold the maximum
 amount of breakpoints possible. But in most cases a given CPU implementation
 holds a lesser amount, meaning that the upper values beyond the limit are not
 used.
@@ -48,7 +48,7 @@
 state must be set for the call.
 
 You can get the current state of the registers by calling
-[thread_read_state](thread_read_state.md#zx_thread_state_debug_regs).
+[`zx_thread_read_state()`](thread_read_state.md#zx_thread_state_debug_regs).
 
 ## RIGHTS
 
@@ -67,7 +67,7 @@
 
 **ZX_ERR_WRONG_TYPE**  *handle* is not that of a thread.
 
-**ZX_ERR_ACCESS_DENIED**  *handle* lacks *ZX_RIGHT_WRITE*.
+**ZX_ERR_ACCESS_DENIED**  *handle* lacks **ZX_RIGHT_WRITE**.
 
 **ZX_ERR_INVALID_ARGS**  *kind* is not valid, *buffer* is an invalid pointer,
 *buffer_size* doesn't match the size of the structure expected for *kind* or
@@ -88,3 +88,7 @@
 ## SEE ALSO
 
 [thread_read_state](thread_read_state.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_thread_read_state()`]: thread_read_state.md
diff --git a/docs/syscalls/ticks_get.md b/docs/syscalls/ticks_get.md
index 3337439..ed4932f 100644
--- a/docs/syscalls/ticks_get.md
+++ b/docs/syscalls/ticks_get.md
@@ -35,7 +35,7 @@
 
 ## ERRORS
 
-**zx_tick_get**() does not report any error conditions.
+`zx_ticks_get()` does not report any error conditions.
 
 ## NOTES
 
diff --git a/docs/syscalls/vcpu_create.md b/docs/syscalls/vcpu_create.md
index 2d949a4..4594948 100644
--- a/docs/syscalls/vcpu_create.md
+++ b/docs/syscalls/vcpu_create.md
@@ -57,12 +57,12 @@
 
 ## RETURN VALUE
 
-`zx_vcpu_create()` returns ZX_OK on success. On failure, an error value is
+`zx_vcpu_create()` returns **ZX_OK** on success. On failure, an error value is
 returned.
 
 ## ERRORS
 
-**ZX_ERR_ACCESS_DENIED** *guest* does not have the *ZX_RIGHT_MANAGE_PROCESS*
+**ZX_ERR_ACCESS_DENIED** *guest* does not have the **ZX_RIGHT_MANAGE_PROCESS**
 right.
 
 **ZX_ERR_BAD_HANDLE** *guest* is an invalid handle.
diff --git a/docs/syscalls/vcpu_interrupt.md b/docs/syscalls/vcpu_interrupt.md
index a67b14e..e439896 100644
--- a/docs/syscalls/vcpu_interrupt.md
+++ b/docs/syscalls/vcpu_interrupt.md
@@ -29,12 +29,12 @@
 
 ## RETURN VALUE
 
-`zx_vcpu_interrupt()` returns ZX_OK on success. On failure, an error value is
+`zx_vcpu_interrupt()` returns **ZX_OK** on success. On failure, an error value is
 returned.
 
 ## ERRORS
 
-**ZX_ERR_ACCESS_DENIED** *handle* does not have the *ZX_RIGHT_SIGNAL* right.
+**ZX_ERR_ACCESS_DENIED** *handle* does not have the **ZX_RIGHT_SIGNAL** right.
 
 **ZX_ERR_BAD_HANDLE** *handle* is an invalid handle.
 
diff --git a/docs/syscalls/vcpu_read_state.md b/docs/syscalls/vcpu_read_state.md
index 9c3626f..a8480ea 100644
--- a/docs/syscalls/vcpu_read_state.md
+++ b/docs/syscalls/vcpu_read_state.md
@@ -25,7 +25,7 @@
 *buffer*. It is only valid to read the state of *handle* when execution has been
 paused.
 
-*kind* must be *ZX_VCPU_STATE*.
+*kind* must be **ZX_VCPU_STATE**.
 
 ## RIGHTS
 
@@ -35,12 +35,12 @@
 
 ## RETURN VALUE
 
-`zx_vcpu_read_state()` returns ZX_OK on success. On failure, an error value is
+`zx_vcpu_read_state()` returns **ZX_OK** on success. On failure, an error value is
 returned.
 
 ## ERRORS
 
-**ZX_ERR_ACCESS_DENIED** *handle* does not have the *ZX_RIGHT_READ* right.
+**ZX_ERR_ACCESS_DENIED** *handle* does not have the **ZX_RIGHT_READ** right.
 
 **ZX_ERR_BAD_HANDLE** *handle* is an invalid handle.
 
diff --git a/docs/syscalls/vcpu_resume.md b/docs/syscalls/vcpu_resume.md
index 8947dcf..073f4da 100644
--- a/docs/syscalls/vcpu_resume.md
+++ b/docs/syscalls/vcpu_resume.md
@@ -34,12 +34,12 @@
 
 ## RETURN VALUE
 
-`zx_vcpu_resume()` returns *ZX_OK* on success. On failure, an error value is
+`zx_vcpu_resume()` returns **ZX_OK** on success. On failure, an error value is
 returned.
 
 ## ERRORS
 
-**ZX_ERR_ACCESS_DENIED** *handle* does not have the *ZX_RIGHT_EXECUTE* right.
+**ZX_ERR_ACCESS_DENIED** *handle* does not have the **ZX_RIGHT_EXECUTE** right.
 
 **ZX_ERR_BAD_HANDLE** *handle* is an invalid handle.
 
diff --git a/docs/syscalls/vcpu_write_state.md b/docs/syscalls/vcpu_write_state.md
index 43189f0..194100f 100644
--- a/docs/syscalls/vcpu_write_state.md
+++ b/docs/syscalls/vcpu_write_state.md
@@ -25,7 +25,7 @@
 *buffer*. It is only valid to write the state of *handle* when execution has been
 paused.
 
-*kind* may be *ZX_VCPU_STATE* or *ZX_VCPU_IO*.
+*kind* may be **ZX_VCPU_STATE** or **ZX_VCPU_IO**.
 
 ## RIGHTS
 
@@ -35,12 +35,12 @@
 
 ## RETURN VALUE
 
-`zx_vcpu_write_state()` returns ZX_OK on success. On failure, an error value is
+`zx_vcpu_write_state()` returns **ZX_OK** on success. On failure, an error value is
 returned.
 
 ## ERRORS
 
-**ZX_ERR_ACCESS_DENIED** *handle* does not have the *ZX_RIGHT_WRITE* right.
+**ZX_ERR_ACCESS_DENIED** *handle* does not have the **ZX_RIGHT_WRITE** right.
 
 **ZX_ERR_BAD_HANDLE** *handle* is an invalid handle.
 
diff --git a/docs/syscalls/vmar_allocate.md b/docs/syscalls/vmar_allocate.md
index 5d0684d..0fca05b 100644
--- a/docs/syscalls/vmar_allocate.md
+++ b/docs/syscalls/vmar_allocate.md
@@ -35,13 +35,13 @@
   to specify an address range that overlaps with another VMAR or mapping.
 - **ZX_VM_CAN_MAP_SPECIFIC**  The new VMAR can have subregions/mappings
   created with **ZX_VM_SPECIFIC**.  It is NOT an error if the parent does
-  not have *ZX_VM_CAN_MAP_SPECIFIC* permissions.
+  not have **ZX_VM_CAN_MAP_SPECIFIC** permissions.
 - **ZX_VM_CAN_MAP_READ**  The new VMAR can contain readable mappings.
-  It is an error if the parent does not have *ZX_VM_CAN_MAP_READ* permissions.
+  It is an error if the parent does not have **ZX_VM_CAN_MAP_READ** permissions.
 - **ZX_VM_CAN_MAP_WRITE**  The new VMAR can contain writable mappings.
-  It is an error if the parent does not have *ZX_VM_CAN_MAP_WRITE* permissions.
+  It is an error if the parent does not have **ZX_VM_CAN_MAP_WRITE** permissions.
 - **ZX_VM_CAN_MAP_EXECUTE**  The new VMAR can contain executable mappings.
-  It is an error if the parent does not have *ZX_VM_CAN_MAP_EXECUTE* permissions.
+  It is an error if the parent does not have **ZX_VM_CAN_MAP_EXECUTE** permissions.
 
 *offset* must be 0 if *options* does not have **ZX_VM_SPECIFIC** set.
 
@@ -71,7 +71,7 @@
 **ZX_ERR_BAD_STATE**  *parent_vmar* refers to a destroyed VMAR.
 
 **ZX_ERR_INVALID_ARGS**  *child_vmar* or *child_addr* are not valid, *offset* is
-non-zero when *ZX_VM_SPECIFIC* is not given, *offset* and *size* describe
+non-zero when **ZX_VM_SPECIFIC** is not given, *offset* and *size* describe
 an unsatisfiable allocation due to exceeding the region bounds, *offset*
 or *size* is not page-aligned, or *size* is 0.
 
diff --git a/docs/syscalls/vmar_map.md b/docs/syscalls/vmar_map.md
index 4c900c4..360a7fb 100644
--- a/docs/syscalls/vmar_map.md
+++ b/docs/syscalls/vmar_map.md
@@ -38,20 +38,20 @@
   If the range meets these requirements, it will atomically (with respect to all
   other map/unmap/protect operations) replace existing mappings in the area.
 - **ZX_VM_PERM_READ**  Map *vmo* as readable.  It is an error if *handle*
-  does not have *ZX_VM_CAN_MAP_READ* permissions, the *handle* does
-  not have the *ZX_RIGHT_READ* right, or the *vmo* handle does not have the
-  *ZX_RIGHT_READ* right.
+  does not have **ZX_VM_CAN_MAP_READ** permissions, the *handle* does
+  not have the **ZX_RIGHT_READ** right, or the *vmo* handle does not have the
+  **ZX_RIGHT_READ** right.
 - **ZX_VM_PERM_WRITE**  Map *vmo* as writable.  It is an error if *handle*
-  does not have *ZX_VM_CAN_MAP_WRITE* permissions, the *handle* does
-  not have the *ZX_RIGHT_WRITE* right, or the *vmo* handle does not have the
-  *ZX_RIGHT_WRITE* right.
+  does not have **ZX_VM_CAN_MAP_WRITE** permissions, the *handle* does
+  not have the **ZX_RIGHT_WRITE** right, or the *vmo* handle does not have the
+  **ZX_RIGHT_WRITE** right.
 - **ZX_VM_PERM_EXECUTE**  Map *vmo* as executable.  It is an error if *handle*
-  does not have *ZX_VM_CAN_MAP_EXECUTE* permissions, the *handle* handle does
-  not have the *ZX_RIGHT_EXECUTE* right, or the *vmo* handle does not have the
-  *ZX_RIGHT_EXECUTE* right.
+  does not have **ZX_VM_CAN_MAP_EXECUTE** permissions, the *handle* handle does
+  not have the **ZX_RIGHT_EXECUTE** right, or the *vmo* handle does not have the
+  **ZX_RIGHT_EXECUTE** right.
 - **ZX_VM_MAP_RANGE**  Immediately page into the new mapping all backed
   regions of the VMO.  This cannot be specified if
-  *ZX_VM_SPECIFIC_OVERWRITE* is used.
+  **ZX_VM_SPECIFIC_OVERWRITE** is used.
 - **ZX_VM_REQUIRE_NON_RESIZABLE** Maps the VMO only if the VMO is non-resizable,
   that is, it was created with the **ZX_VMO_NON_RESIZABLE** option.
 
@@ -90,7 +90,7 @@
 **ZX_VM_SPECIFIC_OVERWRITE** and **ZX_VM_MAP_RANGE** are both given,
 *vmar_offset* and *len* describe an unsatisfiable allocation due to exceeding the region bounds,
 *vmar_offset* or *vmo_offset* or *len* are not page-aligned,
-*vmo_offset* + ROUNDUP(*len*, PAGE_SIZE) overflows.
+`vmo_offset + ROUNDUP(len, PAGE_SIZE)` overflows.
 
 **ZX_ERR_ACCESS_DENIED**  Insufficient privileges to make the requested mapping.
 
diff --git a/docs/syscalls/vmar_protect.md b/docs/syscalls/vmar_protect.md
index a1cbaf0..c2dace3 100644
--- a/docs/syscalls/vmar_protect.md
+++ b/docs/syscalls/vmar_protect.md
@@ -25,17 +25,17 @@
 in the range of *len* bytes starting from *addr*. The *options* argument should
 be a bitwise-or of one or more of the following:
 - **ZX_VM_PERM_READ**  Map as readable.  It is an error if *handle*
-  does not have *ZX_VM_CAN_MAP_READ* permissions or *handle* does
-  not have the *ZX_RIGHT_READ* right.  It is also an error if the VMO handle
-  used to create the mapping did not have the *ZX_RIGHT_READ* right.
+  does not have **ZX_VM_CAN_MAP_READ** permissions or *handle* does
+  not have the **ZX_RIGHT_READ** right.  It is also an error if the VMO handle
+  used to create the mapping did not have the **ZX_RIGHT_READ** right.
 - **ZX_VM_PERM_WRITE**  Map as writable.  It is an error if *handle*
-  does not have *ZX_VM_CAN_MAP_WRITE* permissions or *handle* does
-  not have the *ZX_RIGHT_WRITE* right.  It is also an error if the VMO handle
-  used to create the mapping did not have the *ZX_RIGHT_WRITE* right.
+  does not have **ZX_VM_CAN_MAP_WRITE** permissions or *handle* does
+  not have the **ZX_RIGHT_WRITE** right.  It is also an error if the VMO handle
+  used to create the mapping did not have the **ZX_RIGHT_WRITE** right.
 - **ZX_VM_PERM_EXECUTE**  Map as executable.  It is an error if *handle*
-  does not have *ZX_VM_CAN_MAP_EXECUTE* permissions or *handle* does
-  not have the *ZX_RIGHT_EXECUTE* right.  It is also an error if the VMO handle
-  used to create the mapping did not have the *ZX_RIGHT_EXECUTE* right.
+  does not have **ZX_VM_CAN_MAP_EXECUTE** permissions or *handle* does
+  not have the **ZX_RIGHT_EXECUTE** right.  It is also an error if the VMO handle
+  used to create the mapping did not have the **ZX_RIGHT_EXECUTE** right.
 
 *len* must be page-aligned.
 
diff --git a/docs/syscalls/vmar_unmap.md b/docs/syscalls/vmar_unmap.md
index 6e60218..274a117 100644
--- a/docs/syscalls/vmar_unmap.md
+++ b/docs/syscalls/vmar_unmap.md
@@ -20,7 +20,7 @@
 
 `zx_vmar_unmap()` unmaps all VMO mappings and destroys (as if [`zx_vmar_destroy()`]
 were called) all sub-regions within the absolute range including *addr* and ending
-before exclusively at *addr* + *len*.  Any sub-region that is in the range must
+before exclusively at `addr + len`.  Any sub-region that is in the range must
 be fully in the range (i.e. partial overlaps are an error).  If a mapping is
 only partially in the range, the mapping is split and the requested portion is
 unmapped.
diff --git a/docs/syscalls/vmar_unmap_handle_close_thread_exit.md b/docs/syscalls/vmar_unmap_handle_close_thread_exit.md
index f5c44da..bd7abc0 100644
--- a/docs/syscalls/vmar_unmap_handle_close_thread_exit.md
+++ b/docs/syscalls/vmar_unmap_handle_close_thread_exit.md
@@ -22,17 +22,17 @@
 ## DESCRIPTION
 
 `zx_vmar_unmap_handle_close_thread_exit()` does a sequence of three operations:
-1. `zx_vmar_unmap(vmar_handle, addr, size);`
-2. `zx_handle_close(close_handle);`
-3. `zx_thread_exit();`
+1. `zx_vmar_unmap(vmar_handle, addr, size)`
+2. `zx_handle_close(close_handle)`
+3. `zx_thread_exit()`
 
 The expectation is that the first operation unmaps a region including the
 calling thread's own stack.  (It's not required, but it's permitted.)  This
-is valid for this call, though it would be invalid for *zx_vmar_unmap*() or
+is valid for this call, though it would be invalid for [`zx_vmar_unmap()`] or
 any other call.
 
-If the *vmar_unmap* operation is successful, then this call never returns.
-If *close_handle* is an invalid handle so that the *handle_close* operation
+If the [`zx_vmar_unmap()`] operation is successful, then this call never returns.
+If *close_handle* is an invalid handle so that the [`zx_handle_close()`] operation
 fails, then the thread takes a trap (as if by `__builtin_trap();`).
 
 ## RIGHTS
@@ -47,7 +47,7 @@
 
 ## ERRORS
 
-Same as [*zx_vmar_unmap*()](vmar_unmap.md).
+Same as [`zx_vmar_unmap()`].
 
 ## NOTES
 
@@ -58,7 +58,7 @@
 stack space on which to make its final system calls.
 
 This call is used for detached threads, while
-[*futex_wake_handle_close_thread_exit*()](futex_wake_handle_close_thread_exit.md)
+[`zx_futex_wake_handle_close_thread_exit()`]
 is used for joinable threads.
 
 ## SEE ALSO
@@ -67,3 +67,9 @@
 [handle_close](handle_close.md),
 [thread_exit](thread_exit.md),
 [futex_wake_handle_close_thread_exit](futex_wake_handle_close_thread_exit.md).
+
+<!-- References updated by update-docs-from-abigen, do not edit. -->
+
+[`zx_futex_wake_handle_close_thread_exit()`]: futex_wake_handle_close_thread_exit.md
+[`zx_handle_close()`]: handle_close.md
+[`zx_vmar_unmap()`]: vmar_unmap.md
diff --git a/docs/syscalls/vmo_clone.md b/docs/syscalls/vmo_clone.md
index d723626..63d182a 100644
--- a/docs/syscalls/vmo_clone.md
+++ b/docs/syscalls/vmo_clone.md
@@ -28,12 +28,12 @@
 One handle is returned on success, representing an object with the requested
 size.
 
-*options* must contain *ZX_VMO_CLONE_COPY_ON_WRITE* and zero or more flags to control
+*options* must contain **ZX_VMO_CLONE_COPY_ON_WRITE** and zero or more flags to control
 clone creation.
 
 Valid flags:
 
-- *ZX_VMO_CLONE_COPY_ON_WRITE* - Create a copy-on-write clone. The cloned vmo will
+- **ZX_VMO_CLONE_COPY_ON_WRITE** - Create a copy-on-write clone. The cloned vmo will
 behave the same way the parent does, except that any write operation on the clone
 will bring in a copy of the page at the offset the write occurred. The new page in
 the cloned vmo is now a copy and may diverge from the parent. Any reads from
@@ -41,7 +41,7 @@
 allocate new zero filled pages.  See the NOTES section below for details on
 VMO syscall interactions with clones.
 
-- *ZX_VMO_CLONE_NON_RESIZEABLE* - Create a non-resizeable clone VMO.
+- **ZX_VMO_CLONE_NON_RESIZEABLE** - Create a non-resizeable clone VMO.
 
 *offset* must be page aligned.
 
@@ -52,10 +52,10 @@
 The size of the VMO will be rounded up to the next page size boundary.
 
 By default the rights of the cloned handled will be the same as the
-original with a few exceptions. See [vmo_create](vmo_create.md) for a
+original with a few exceptions. See [`zx_vmo_create()`] for a
 discussion of the details of each right.
 
-If *options* is *ZX_VMO_CLONE_COPY_ON_WRITE* the following rights are added:
+If *options* is **ZX_VMO_CLONE_COPY_ON_WRITE** the following rights are added:
 
 - **ZX_RIGHT_WRITE**
 
@@ -119,4 +119,5 @@
 
 <!-- References updated by update-docs-from-abigen, do not edit. -->
 
+[`zx_vmo_create()`]: vmo_create.md
 [`zx_vmo_op_range()`]: vmo_op_range.md
diff --git a/docs/syscalls/vmo_op_range.md b/docs/syscalls/vmo_op_range.md
index 89a78f0..1686fce 100644
--- a/docs/syscalls/vmo_op_range.md
+++ b/docs/syscalls/vmo_op_range.md
@@ -35,26 +35,26 @@
 
 **ZX_VMO_OP_COMMIT** - Commit *size* bytes worth of pages starting at byte *offset* for the VMO.
 More information can be found in the [vm object documentation](../objects/vm_object.md).
-Requires the *ZX_RIGHT_WRITE* right.
+Requires the **ZX_RIGHT_WRITE** right.
 
 **ZX_VMO_OP_DECOMMIT** - Release a range of pages previously committed to the VMO from *offset* to *offset*+*size*.
-Requires the *ZX_RIGHT_WRITE* right.
+Requires the **ZX_RIGHT_WRITE** right.
 
 **ZX_VMO_OP_LOCK** - Presently unsupported.
 
 **ZX_VMO_OP_UNLOCK** - Presently unsupported.
 
 **ZX_VMO_OP_CACHE_SYNC** - Performs a cache sync operation.
-Requires the *ZX_RIGHT_READ* right.
+Requires the **ZX_RIGHT_READ** right.
 
 **ZX_VMO_OP_CACHE_INVALIDATE** - Performs a cache invalidation operation.
-Requires the *ZX_RIGHT_WRITE* right.
+Requires the **ZX_RIGHT_WRITE** right.
 
 **ZX_VMO_OP_CACHE_CLEAN** - Performs a cache clean operation.
-Requires the *ZX_RIGHT_READ* right.
+Requires the **ZX_RIGHT_READ** right.
 
 **ZX_VMO_OP_CACHE_CLEAN_INVALIDATE** - Performs cache clean and invalidate operations together.
-Requires the *ZX_RIGHT_READ* right.
+Requires the **ZX_RIGHT_READ** right.
 
 
 ## RIGHTS
@@ -84,7 +84,7 @@
 
 **ZX_ERR_OUT_OF_RANGE**  An invalid memory range specified by *offset* and *size*.
 
-**ZX_ERR_NO_MEMORY**  Allocations to commit pages for *ZX_VMO_OP_COMMIT* failed.
+**ZX_ERR_NO_MEMORY**  Allocations to commit pages for **ZX_VMO_OP_COMMIT** failed.
 
 **ZX_ERR_WRONG_TYPE**  *handle* is not a VMO handle.
 
@@ -93,8 +93,8 @@
 **ZX_ERR_INVALID_ARGS**  *out* is an invalid pointer, *op* is not a valid
 operation, or *size* is zero and *op* is a cache operation.
 
-**ZX_ERR_NOT_SUPPORTED**  *op* was *ZX_VMO_OP_LOCK* or *ZX_VMO_OP_UNLOCK*, or
-*op* was *ZX_VMO_OP_DECOMMIT* and the underlying VMO does not allow decommiting.
+**ZX_ERR_NOT_SUPPORTED**  *op* was **ZX_VMO_OP_LOCK** or **ZX_VMO_OP_UNLOCK**, or
+*op* was **ZX_VMO_OP_DECOMMIT** and the underlying VMO does not allow decommiting.
 
 ## SEE ALSO
 
diff --git a/docs/syscalls/vmo_set_cache_policy.md b/docs/syscalls/vmo_set_cache_policy.md
index e1cbf14..01b2252 100644
--- a/docs/syscalls/vmo_set_cache_policy.md
+++ b/docs/syscalls/vmo_set_cache_policy.md
@@ -24,7 +24,7 @@
 used by drivers dealing with device memory. This call can also be used on a
 regular memory backed VMO with similar limitations and uses.
 
-A handle must have the *ZX_RIGHT_MAP* right for this call to be
+A handle must have the **ZX_RIGHT_MAP** right for this call to be
 permitted. Additionally, the VMO must not presently be mapped by any process,
 be cloned, be a clone itself, or have any memory committed.
 
@@ -36,7 +36,7 @@
 
 **ZX_CACHE_POLICY_UNCACHED_DEVICE** - Disable cache and treat as device memory.
 This is architecture dependent and may be equivalent to
-*ZX_CACHE_POLICY_UNCACHED* on some architectures.
+**ZX_CACHE_POLICY_UNCACHED** on some architectures.
 
 **ZX_CACHE_POLICY_WRITE_COMBINING** - Uncached with write combining.
 
@@ -54,7 +54,7 @@
 ## ERRORS
 
 **ZX_ERR_ACCESS_DENIED** Cache policy has been configured for this VMO already and
-may not be changed, or *handle* lacks the ZX_RIGHT_MAP right.
+may not be changed, or *handle* lacks the **ZX_RIGHT_MAP** right.
 
 **ZX_ERR_BAD_HANDLE** *handle* is not a valid handle.
 
@@ -69,6 +69,9 @@
 
 ## SEE ALSO
 
-[vmo_create](vmo_create.md), [vmo_read](vmo_read.md), [vmo_write](vmo_write.md),
-[vmo_get_size](vmo_get_size.md), [vmo_set_size](vmo_set_size.md),
+[vmo_create](vmo_create.md),
+[vmo_read](vmo_read.md),
+[vmo_write](vmo_write.md),
+[vmo_get_size](vmo_get_size.md),
+[vmo_set_size](vmo_set_size.md),
 [vmo_op_range](vmo_op_range.md).