/* Generated by ./xlat/gen.sh from ./xlat/hci_channels.in; do not edit. */

#ifdef IN_MPERS

# error static const struct xlat hci_channels in mpers mode

#else

static
const struct xlat hci_channels[] = {
#if defined(HCI_CHANNEL_RAW) || (defined(HAVE_DECL_HCI_CHANNEL_RAW) && HAVE_DECL_HCI_CHANNEL_RAW)
  XLAT(HCI_CHANNEL_RAW),
#endif
#if defined(HCI_CHANNEL_USER) || (defined(HAVE_DECL_HCI_CHANNEL_USER) && HAVE_DECL_HCI_CHANNEL_USER)
  XLAT(HCI_CHANNEL_USER),
#endif
#if defined(HCI_CHANNEL_MONITOR) || (defined(HAVE_DECL_HCI_CHANNEL_MONITOR) && HAVE_DECL_HCI_CHANNEL_MONITOR)
  XLAT(HCI_CHANNEL_MONITOR),
#endif
#if defined(HCI_CHANNEL_CONTROL) || (defined(HAVE_DECL_HCI_CHANNEL_CONTROL) && HAVE_DECL_HCI_CHANNEL_CONTROL)
  XLAT(HCI_CHANNEL_CONTROL),
#endif
#if defined(HCI_CHANNEL_LOGGING) || (defined(HAVE_DECL_HCI_CHANNEL_LOGGING) && HAVE_DECL_HCI_CHANNEL_LOGGING)
  XLAT(HCI_CHANNEL_LOGGING),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
