diff --git a/include/mbedtls/ctr_drbg.h b/include/mbedtls/ctr_drbg.h
index f65606e..e47b769 100644
--- a/include/mbedtls/ctr_drbg.h
+++ b/include/mbedtls/ctr_drbg.h
@@ -232,7 +232,7 @@
  *                      length of the buffer.
  * \param p_entropy     The entropy context to pass to \p f_entropy.
  * \param custom        Personalization data, that is device-specific
- *                      identifiers. This can be NULL, in which case the
+ *                      identifiers. This can be \c NULL, in which case the
  *                      personalization data is empty regardless of the value
  *                      of \p len.
  * \param len           The length of the personalization data.
@@ -330,7 +330,7 @@
  *                      extracts data from the entropy source.
  *
  * \param ctx           The CTR_DRBG context.
- * \param additional    Additional data to add to the state. Can be NULL.
+ * \param additional    Additional data to add to the state. Can be \c NULL.
  * \param len           The length of the additional data.
  *                      This must be less than
  *                      #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT - \c entropy_len
@@ -348,7 +348,7 @@
  *
  * \param ctx          The CTR_DRBG context.
  * \param additional   The data to update the state with. This must not be
- *                     null unless \p add_len is 0.
+ *                     \c NULL unless \p add_len is \c 0.
  * \param add_len      Length of \p additional in bytes. This must be at
  *                     most #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT.
  *
@@ -372,11 +372,11 @@
  *                      #mbedtls_ctr_drbg_context structure.
  * \param output        The buffer to fill.
  * \param output_len    The length of the buffer in bytes.
- * \param additional    Additional data to update. Can be NULL, in which
+ * \param additional    Additional data to update. Can be \c NULL, in which
  *                      case the additional data is empty regardless of
  *                      the value of \p add_len.
  * \param add_len       The length of the additional data
- *                      if \p additional is non-null.
+ *                      if \p additional is not \c NULL.
  *                      This must be less than #MBEDTLS_CTR_DRBG_MAX_INPUT
  *                      and less than
  *                      #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT - \c entropy_len
diff --git a/include/mbedtls/hmac_drbg.h b/include/mbedtls/hmac_drbg.h
index e8f0de0..fea7558 100644
--- a/include/mbedtls/hmac_drbg.h
+++ b/include/mbedtls/hmac_drbg.h
@@ -155,7 +155,7 @@
  *                      length of the buffer.
  * \param p_entropy     The entropy context to pass to \p f_entropy.
  * \param custom        Personalization data, that is device-specific
- *                      identifiers. This can be NULL, in which case the
+ *                      identifiers. This can be \c NULL, in which case the
  *                      personalization data is empty regardless of the value
  *                      of \p len.
  * \param len           The length of the personalization data.
@@ -165,7 +165,7 @@
  *                      where \p entropy_len is the entropy length
  *                      described above.
  *
- * \return              0 if successful.
+ * \return              \c 0 if successful.
  * \return              #MBEDTLS_ERR_MD_BAD_INPUT_DATA if \p md_info is
  *                      invalid.
  * \return              #MBEDTLS_ERR_MD_ALLOC_FAILED if there was not enough
@@ -192,7 +192,7 @@
  *                      the additional data.
  * \param data_len      Length of \p data in bytes.
  *
- * \return              0 if successful. or
+ * \return              \c 0 if successful. or
  * \return              #MBEDTLS_ERR_MD_BAD_INPUT_DATA if \p md_info is
  *                      invalid.
  * \return              #MBEDTLS_ERR_MD_ALLOC_FAILED if there was not enough
@@ -251,9 +251,9 @@
  *
  * \param ctx           The HMAC_DRBG context.
  * \param additional    The data to update the state with.
- *                      If this is \p NULL, there is no additional data.
+ *                      If this is \c NULL, there is no additional data.
  * \param add_len       Length of \p additional in bytes.
- *                      Unused if \p additional is null.
+ *                      Unused if \p additional is \c NULL.
  *
  * \return              \c 0 on success, or an error from the underlying
  *                      hash calculation or
@@ -277,7 +277,7 @@
  *                      where \p entropy_len is the entropy length
  *                      (see mbedtls_hmac_drbg_set_entropy_len()).
  *
- * \return              0 if successful.
+ * \return              \c 0 if successful.
  * \return              #MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED
  *                      if a call to the entropy function failed.
  */
@@ -296,7 +296,7 @@
  * \param output_len    The length of the buffer in bytes.
  *                      This must be at most #MBEDTLS_HMAC_DRBG_MAX_REQUEST.
  * \param additional    Additional data to update with.
- *                      If this is \p NULL, there is no additional data
+ *                      If this is \c NULL, there is no additional data
  *                      and \p add_len should be \c 0.
  * \param add_len       The length of the additional data.
  *                      This must be at most #MBEDTLS_HMAC_DRBG_MAX_INPUT.
@@ -358,9 +358,9 @@
  *
  * \param ctx           The HMAC_DRBG context.
  * \param additional    The data to update the state with.
- *                      If this is \p NULL, there is no additional data.
+ *                      If this is \c NULL, there is no additional data.
  * \param add_len       Length of \p additional in bytes.
- *                      Unused if \p additional is null.
+ *                      Unused if \p additional is \c NULL.
  */
 MBEDTLS_DEPRECATED void mbedtls_hmac_drbg_update(
     mbedtls_hmac_drbg_context *ctx,
