[sw/dif] Add `toggle_to_bool()` and `bool_to_toggle()` to DIF base.

Several DIF libraries had redefined the same logic to translate
`dif_toggle_t` types to/from bool types. This commit adds one shared
implementation of said functions, and removes the duplicates across
individual DIF libraries.

This partially addresses a task item in #9036.

Signed-off-by: Timothy Trippel <ttrippel@google.com>
diff --git a/sw/device/lib/dif/BUILD b/sw/device/lib/dif/BUILD
index 2379fb4..fd7fd6f 100644
--- a/sw/device/lib/dif/BUILD
+++ b/sw/device/lib/dif/BUILD
@@ -6,6 +6,9 @@
 
 cc_library(
     name = "base",
+    srcs = [
+        "dif_base.c",
+    ],
     hdrs = [
         "dif_base.h",
     ],
diff --git a/sw/device/lib/dif/autogen/meson.build b/sw/device/lib/dif/autogen/meson.build
index ed3c269..885787e 100644
--- a/sw/device/lib/dif/autogen/meson.build
+++ b/sw/device/lib/dif/autogen/meson.build
@@ -11,6 +11,7 @@
       'dif_adc_ctrl_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -25,6 +26,7 @@
       'dif_aes_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -39,6 +41,7 @@
       'dif_alert_handler_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -53,6 +56,7 @@
       'dif_aon_timer_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -67,6 +71,7 @@
       'dif_clkmgr_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -81,6 +86,7 @@
       'dif_csrng_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -95,6 +101,7 @@
       'dif_edn_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -109,6 +116,7 @@
       'dif_entropy_src_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -123,6 +131,7 @@
       'dif_flash_ctrl_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -137,6 +146,7 @@
       'dif_gpio_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -151,6 +161,7 @@
       'dif_hmac_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -165,6 +176,7 @@
       'dif_i2c_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -179,6 +191,7 @@
       'dif_keymgr_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -193,6 +206,7 @@
       'dif_kmac_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -207,6 +221,7 @@
       'dif_lc_ctrl_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -221,6 +236,7 @@
       'dif_otbn_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -235,6 +251,7 @@
       'dif_otp_ctrl_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -249,6 +266,7 @@
       'dif_pattgen_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -263,6 +281,7 @@
       'dif_pinmux_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -277,6 +296,7 @@
       'dif_pwrmgr_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -291,6 +311,7 @@
       'dif_rstmgr_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -305,6 +326,7 @@
       'dif_rom_ctrl_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -319,6 +341,7 @@
       'dif_rv_plic_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -333,6 +356,7 @@
       'dif_rv_timer_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -347,6 +371,7 @@
       'dif_spi_device_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -361,6 +386,7 @@
       'dif_spi_host_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -375,6 +401,7 @@
       'dif_sram_ctrl_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -389,6 +416,7 @@
       'dif_sysrst_ctrl_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -403,6 +431,7 @@
       'dif_usbdev_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
@@ -417,6 +446,7 @@
       'dif_uart_autogen.c',
     ],
     dependencies: [
+      sw_lib_dif_base,
       sw_lib_mmio,
     ],
   )
diff --git a/sw/device/lib/dif/dif_alert_handler.c b/sw/device/lib/dif/dif_alert_handler.c
index 85963f4..4279b8a 100644
--- a/sw/device/lib/dif/dif_alert_handler.c
+++ b/sw/device/lib/dif/dif_alert_handler.c
@@ -199,26 +199,6 @@
 }
 
 /**
- * Converts a toggle_t to bool.
- *
- * Returns false if `toggle` is out of range.
- */
-OT_WARN_UNUSED_RESULT
-static bool toggle_to_bool(dif_toggle_t toggle, bool *flag) {
-  switch (toggle) {
-    case kDifToggleEnabled:
-      *flag = true;
-      break;
-    case kDifToggleDisabled:
-      *flag = false;
-      break;
-    default:
-      return false;
-  }
-  return true;
-}
-
-/**
  * Configures the control registers of a particular alert handler class.
  */
 OT_WARN_UNUSED_RESULT
@@ -251,22 +231,14 @@
   uint32_t ctrl_reg = 0;
 
   // Configure the escalation protocol enable flag.
-  bool use_escalation_protocol;
-  if (!toggle_to_bool(class->use_escalation_protocol,
-                      &use_escalation_protocol)) {
-    return false;
-  }
   ctrl_reg =
       bitfield_bit32_write(ctrl_reg, ALERT_HANDLER_CLASSA_CTRL_SHADOWED_EN_BIT,
-                           use_escalation_protocol);
+                           dif_toggle_to_bool(class->use_escalation_protocol));
 
   // Configure the escalation protocol auto-lock flag.
-  bool automatic_locking;
-  if (!toggle_to_bool(class->automatic_locking, &automatic_locking)) {
-    return false;
-  }
-  ctrl_reg = bitfield_bit32_write(
-      ctrl_reg, ALERT_HANDLER_CLASSA_CTRL_SHADOWED_LOCK_BIT, automatic_locking);
+  ctrl_reg = bitfield_bit32_write(ctrl_reg,
+                                  ALERT_HANDLER_CLASSA_CTRL_SHADOWED_LOCK_BIT,
+                                  dif_toggle_to_bool(class->automatic_locking));
 
   if (class->phase_signals == NULL && class->phase_signals_len != 0) {
     return false;
diff --git a/sw/device/lib/dif/dif_base.c b/sw/device/lib/dif/dif_base.c
new file mode 100644
index 0000000..ab0184c
--- /dev/null
+++ b/sw/device/lib/dif/dif_base.c
@@ -0,0 +1,13 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+
+#include "sw/device/lib/dif/dif_base.h"
+
+#include <stdbool.h>
+
+// `extern` declarations to give the inline functions in the corresponding
+// header a link location.
+extern bool dif_is_valid_toggle(dif_toggle_t val);
+extern bool dif_toggle_to_bool(dif_toggle_t val);
+extern dif_toggle_t dif_bool_to_toggle(bool val);
diff --git a/sw/device/lib/dif/dif_base.h b/sw/device/lib/dif/dif_base.h
index d82e0a3..f801b05 100644
--- a/sw/device/lib/dif/dif_base.h
+++ b/sw/device/lib/dif/dif_base.h
@@ -10,6 +10,8 @@
  * @brief Shared macros and headers for DIFs.
  */
 
+#include <stdbool.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif  // __cplusplus
@@ -82,6 +84,50 @@
   kDifToggleEnabled = 1,
 } dif_toggle_t;
 
+/**
+ * Checks if a DIF toggle type is valid.
+ *
+ * @param val A potential dif_toggle_t value.
+ * @return Bool indicating validity of toggle value.
+ */
+inline bool dif_is_valid_toggle(dif_toggle_t val) {
+  switch (val) {
+    case kDifToggleEnabled:
+      return true;
+    case kDifToggleDisabled:
+      return true;
+    default:
+      return false;
+  }
+}
+
+/**
+ * Converts a `dif_toggle_t` to a `bool`.
+ *
+ * @param val A dif_toggle_t value.
+ * @return Corresponding bool value.
+ */
+inline bool dif_toggle_to_bool(dif_toggle_t val) {
+  switch (val) {
+    case kDifToggleEnabled:
+      return true;
+    case kDifToggleDisabled:
+      return false;
+    default:
+      return false;
+  }
+}
+
+/**
+ * Converts a `dif_toggle_t` to a `bool`.
+ *
+ * @param val A bool value.
+ * @return Corresponding dif_toggle_t value.
+ */
+inline dif_toggle_t dif_bool_to_toggle(bool val) {
+  return val ? kDifToggleEnabled : kDifToggleDisabled;
+}
+
 #ifdef __cplusplus
 }  // extern "C"
 #endif  // __cplusplus
diff --git a/sw/device/lib/dif/dif_clkmgr.c b/sw/device/lib/dif/dif_clkmgr.c
index 5052ea4..aa28c86 100644
--- a/sw/device/lib/dif/dif_clkmgr.c
+++ b/sw/device/lib/dif/dif_clkmgr.c
@@ -28,13 +28,6 @@
     "Expected the number of hintable clocks to be <= the width of a CSR.");
 
 /**
- * Converts a `bool` to `dif_toggle_t`.
- */
-static dif_toggle_t bool_to_toggle(bool val) {
-  return val ? kDifToggleEnabled : kDifToggleDisabled;
-}
-
-/**
  * Converts a `multi_bit_bool_t` to `dif_toggle_t`.
  */
 static dif_toggle_t mubi4_to_toggle(multi_bit_bool_t val) {
@@ -93,7 +86,7 @@
 
   uint32_t clk_enables_val =
       mmio_region_read32(clkmgr->base_addr, CLKMGR_CLK_ENABLES_REG_OFFSET);
-  *state = bool_to_toggle(bitfield_bit32_read(clk_enables_val, clock));
+  *state = dif_bool_to_toggle(bitfield_bit32_read(clk_enables_val, clock));
 
   return kDifOk;
 }
@@ -101,22 +94,12 @@
 dif_result_t dif_clkmgr_gateable_clock_set_enabled(
     const dif_clkmgr_t *clkmgr, dif_clkmgr_gateable_clock_t clock,
     dif_toggle_t new_state) {
-  if (clkmgr == NULL || !clkmgr_valid_gateable_clock(clock)) {
+  if (clkmgr == NULL || !clkmgr_valid_gateable_clock(clock) ||
+      !dif_is_valid_toggle(new_state)) {
     return kDifBadArg;
   }
 
-  bool new_clk_enables_bit;
-  switch (new_state) {
-    case kDifToggleEnabled:
-      new_clk_enables_bit = true;
-      break;
-    case kDifToggleDisabled:
-      new_clk_enables_bit = false;
-      break;
-    default:
-      return kDifBadArg;
-  }
-
+  bool new_clk_enables_bit = dif_toggle_to_bool(new_state);
   uint32_t clk_enables_val =
       mmio_region_read32(clkmgr->base_addr, CLKMGR_CLK_ENABLES_REG_OFFSET);
   clk_enables_val =
@@ -136,7 +119,7 @@
 
   uint32_t clk_hints_val =
       mmio_region_read32(clkmgr->base_addr, CLKMGR_CLK_HINTS_STATUS_REG_OFFSET);
-  *state = bool_to_toggle(bitfield_bit32_read(clk_hints_val, clock));
+  *state = dif_bool_to_toggle(bitfield_bit32_read(clk_hints_val, clock));
 
   return kDifOk;
 }
@@ -144,22 +127,12 @@
 dif_result_t dif_clkmgr_hintable_clock_set_hint(
     const dif_clkmgr_t *clkmgr, dif_clkmgr_hintable_clock_t clock,
     dif_toggle_t new_state) {
-  if (clkmgr == NULL || !clkmgr_valid_hintable_clock(clock)) {
+  if (clkmgr == NULL || !clkmgr_valid_hintable_clock(clock) ||
+      !dif_is_valid_toggle(new_state)) {
     return kDifBadArg;
   }
 
-  bool new_clk_hints_bit;
-  switch (new_state) {
-    case kDifToggleEnabled:
-      new_clk_hints_bit = true;
-      break;
-    case kDifToggleDisabled:
-      new_clk_hints_bit = false;
-      break;
-    default:
-      return kDifBadArg;
-  }
-
+  bool new_clk_hints_bit = dif_toggle_to_bool(new_state);
   uint32_t clk_hints_val =
       mmio_region_read32(clkmgr->base_addr, CLKMGR_CLK_HINTS_REG_OFFSET);
   clk_hints_val = bitfield_bit32_write(clk_hints_val, clock, new_clk_hints_bit);
@@ -178,7 +151,7 @@
 
   uint32_t clk_hints_val =
       mmio_region_read32(clkmgr->base_addr, CLKMGR_CLK_HINTS_REG_OFFSET);
-  *state = bool_to_toggle(bitfield_bit32_read(clk_hints_val, clock));
+  *state = dif_bool_to_toggle(bitfield_bit32_read(clk_hints_val, clock));
 
   return kDifOk;
 }
diff --git a/sw/device/lib/dif/dif_keymgr.c b/sw/device/lib/dif/dif_keymgr.c
index f21e920..e8d0c68 100644
--- a/sw/device/lib/dif/dif_keymgr.c
+++ b/sw/device/lib/dif/dif_keymgr.c
@@ -231,31 +231,6 @@
                       reg_control);
 }
 
-/**
- * Checks if a value is a valid `dif_toggle_t` and converts it to `bool`.
- */
-OT_WARN_UNUSED_RESULT
-static bool toggle_to_bool(dif_toggle_t val, bool *val_bool) {
-  switch (val) {
-    case kDifToggleEnabled:
-      *val_bool = true;
-      break;
-    case kDifToggleDisabled:
-      *val_bool = false;
-      break;
-    default:
-      return false;
-  }
-  return true;
-}
-
-/**
- * Converts a `bool` to `dif_toggle_t`.
- */
-static dif_toggle_t bool_to_toggle(bool val) {
-  return val ? kDifToggleEnabled : kDifToggleDisabled;
-}
-
 dif_result_t dif_keymgr_configure(const dif_keymgr_t *keymgr,
                                   dif_keymgr_config_t config) {
   if (keymgr == NULL) {
@@ -518,8 +493,7 @@
 
 dif_result_t dif_keymgr_sideload_clear_set_enabled(const dif_keymgr_t *keymgr,
                                                    dif_toggle_t state) {
-  bool enable = false;
-  if (keymgr == NULL || !toggle_to_bool(state, &enable)) {
+  if (keymgr == NULL || !dif_is_valid_toggle(state)) {
     return kDifBadArg;
   }
 
@@ -540,7 +514,7 @@
 
   uint32_t reg_val =
       mmio_region_read32(keymgr->base_addr, KEYMGR_SIDELOAD_CLEAR_REG_OFFSET);
-  *state = bool_to_toggle(reg_val == kDifKeyMgrSideLoadClearAll);
+  *state = dif_bool_to_toggle(reg_val == kDifKeyMgrSideLoadClearAll);
 
   return kDifOk;
 }
diff --git a/sw/device/lib/dif/dif_pwrmgr.c b/sw/device/lib/dif/dif_pwrmgr.c
index a736edd..872a27a 100644
--- a/sw/device/lib/dif/dif_pwrmgr.c
+++ b/sw/device/lib/dif/dif_pwrmgr.c
@@ -157,31 +157,6 @@
 };
 
 /**
- * Checks if a value is a valid `dif_toggle_t` and converts it to `bool`.
- */
-OT_WARN_UNUSED_RESULT
-static bool toggle_to_bool(dif_toggle_t val, bool *val_bool) {
-  switch (val) {
-    case kDifToggleEnabled:
-      *val_bool = true;
-      break;
-    case kDifToggleDisabled:
-      *val_bool = false;
-      break;
-    default:
-      return false;
-  }
-  return true;
-}
-
-/**
- * Converts a `bool` to `dif_toggle_t`.
- */
-static dif_toggle_t bool_to_toggle(bool val) {
-  return val ? kDifToggleEnabled : kDifToggleDisabled;
-}
-
-/**
  * Checks if a value is a valid `dif_pwrmgr_req_type_t`.
  */
 OT_WARN_UNUSED_RESULT
@@ -244,12 +219,7 @@
 
 dif_result_t dif_pwrmgr_low_power_set_enabled(const dif_pwrmgr_t *pwrmgr,
                                               dif_toggle_t new_state) {
-  if (pwrmgr == NULL) {
-    return kDifBadArg;
-  }
-
-  bool enable = false;
-  if (!toggle_to_bool(new_state, &enable)) {
+  if (pwrmgr == NULL || !dif_is_valid_toggle(new_state)) {
     return kDifBadArg;
   }
 
@@ -259,8 +229,8 @@
 
   uint32_t reg_val =
       mmio_region_read32(pwrmgr->base_addr, PWRMGR_CONTROL_REG_OFFSET);
-  reg_val =
-      bitfield_bit32_write(reg_val, PWRMGR_CONTROL_LOW_POWER_HINT_BIT, enable);
+  reg_val = bitfield_bit32_write(reg_val, PWRMGR_CONTROL_LOW_POWER_HINT_BIT,
+                                 dif_toggle_to_bool(new_state));
   mmio_region_write32(pwrmgr->base_addr, PWRMGR_CONTROL_REG_OFFSET, reg_val);
 
   // Slow clock domain must be synced for changes to take effect.
@@ -277,7 +247,7 @@
 
   uint32_t reg_val =
       mmio_region_read32(pwrmgr->base_addr, PWRMGR_CONTROL_REG_OFFSET);
-  *cur_state = bool_to_toggle(
+  *cur_state = dif_bool_to_toggle(
       bitfield_bit32_read(reg_val, PWRMGR_CONTROL_LOW_POWER_HINT_BIT));
 
   return kDifOk;
@@ -403,20 +373,14 @@
 
 dif_result_t dif_pwrmgr_wakeup_request_recording_set_enabled(
     const dif_pwrmgr_t *pwrmgr, dif_toggle_t new_state) {
-  if (pwrmgr == NULL) {
-    return kDifBadArg;
-  }
-
-  bool enable = false;
-  if (!toggle_to_bool(new_state, &enable)) {
+  if (pwrmgr == NULL || !dif_is_valid_toggle(new_state)) {
     return kDifBadArg;
   }
 
   // Only a single bit of this register is significant, thus we don't perform a
   // read-modify-write. Setting this bit to 1 disables recording.
-  uint32_t reg_val =
-      bitfield_bit32_write(0, PWRMGR_WAKE_INFO_CAPTURE_DIS_VAL_BIT, !enable);
-
+  uint32_t reg_val = bitfield_bit32_write(
+      0, PWRMGR_WAKE_INFO_CAPTURE_DIS_VAL_BIT, !dif_toggle_to_bool(new_state));
   mmio_region_write32(pwrmgr->base_addr,
                       PWRMGR_WAKE_INFO_CAPTURE_DIS_REG_OFFSET, reg_val);
 
@@ -432,7 +396,7 @@
   uint32_t reg_val = mmio_region_read32(
       pwrmgr->base_addr, PWRMGR_WAKE_INFO_CAPTURE_DIS_REG_OFFSET);
   // Recording is disabled if this bit is set to 1.
-  *cur_state = bool_to_toggle(
+  *cur_state = dif_bool_to_toggle(
       !bitfield_bit32_read(reg_val, PWRMGR_WAKE_INFO_CAPTURE_DIS_VAL_BIT));
 
   return kDifOk;
diff --git a/sw/device/lib/dif/meson.build b/sw/device/lib/dif/meson.build
index b53ed1a..57eb9d2 100644
--- a/sw/device/lib/dif/meson.build
+++ b/sw/device/lib/dif/meson.build
@@ -2,6 +2,16 @@
 # Licensed under the Apache License, Version 2.0, see LICENSE for details.
 # SPDX-License-Identifier: Apache-2.0
 
+# Base DIF library
+sw_lib_dif_base = declare_dependency(
+  link_with: static_library(
+    'sw_lib_dif_base',
+    sources: [
+      'dif_base.c',
+    ],
+  )
+)
+
 subdir('autogen')
 
 # ADC Control Interface DIF Library (dif_adc_ctrl)
@@ -56,6 +66,7 @@
     sources: [
       'dif_clkmgr_unittest.cc',
       'autogen/dif_clkmgr_autogen_unittest.cc',
+      meson.source_root() / 'sw/device/lib/dif/dif_base.c',
       meson.source_root() / 'sw/device/lib/dif/dif_clkmgr.c',
       meson.source_root() / 'sw/device/lib/dif/autogen/dif_clkmgr_autogen.c',
       hw_ip_clkmgr_reg_h,
@@ -585,6 +596,7 @@
     sources: [
       'dif_alert_handler_unittest.cc',
       'autogen/dif_alert_handler_autogen_unittest.cc',
+      meson.source_root() / 'sw/device/lib/dif/dif_base.c',
       meson.source_root() / 'sw/device/lib/dif/dif_alert_handler.c',
       meson.source_root() / 'sw/device/lib/dif/autogen/dif_alert_handler_autogen.c',
       hw_ip_alert_handler_reg_h,
@@ -621,6 +633,7 @@
     sources: [
       'dif_pwrmgr_unittest.cc',
       'autogen/dif_pwrmgr_autogen_unittest.cc',
+      meson.source_root() / 'sw/device/lib/dif/dif_base.c',
       meson.source_root() / 'sw/device/lib/dif/dif_pwrmgr.c',
       meson.source_root() / 'sw/device/lib/dif/autogen/dif_pwrmgr_autogen.c',
       hw_ip_pwrmgr_reg_h,
@@ -657,6 +670,7 @@
     sources: [
       'dif_keymgr_unittest.cc',
       'autogen/dif_keymgr_autogen_unittest.cc',
+      meson.source_root() / 'sw/device/lib/dif/dif_base.c',
       meson.source_root() / 'sw/device/lib/dif/dif_keymgr.c',
       meson.source_root() / 'sw/device/lib/dif/autogen/dif_keymgr_autogen.c',
       hw_ip_keymgr_reg_h,