/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ***   To edit the content of this header, modify the corresponding
 ***   source file (e.g. under external/kernel-headers/original/) then
 ***   run bionic/libc/kernel/tools/update_all.py
 ***
 ***   Any manual change here will be lost the next time this script will
 ***   be run. You've been warned!
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _IAXXX_TUNNEL_INTF_H
#define _IAXXX_TUNNEL_INTF_H
struct tunlMsg {
  uint32_t tunlEP;
  uint32_t tunlSrc;
  uint32_t tunlMode;
  uint32_t tunlEncode;
} __packed;
struct iaxxx_tunnel_header {
  uint8_t magic[4];
  uint16_t tunnel_id;
  uint8_t crc[6];
  uint64_t ts;
  uint32_t seq_no;
  uint16_t size;
  uint8_t encoding;
  uint8_t sample_rate;
  char buf[0];
} __packed;
struct iaxxx_tnl_evt_info {
  uint16_t src_id;
  uint16_t event_id;
  uint16_t dst_id;
  uint32_t dst_opaque;
  uint32_t evt_threshold;
} __packed;
enum iaxxx_tunnel_mode_type {
  TNL_MODE_SYNC = 0,
  TNL_MODE_ASYNC,
};
enum iaxxx_tunnel_encode_type {
  TNL_ENC_OPAQUE = 0,
  TNL_ENC_AFLOAT = 1,
  TNL_ENC_Q15 = 0xF,
};
enum iaxxx_tunnel_dir_type {
  TNL_HOST_DEVICE_RX = 0,
  TNL_DEVICE_HOST_TX,
};
#define TUNNEL_SETUP _IOWR('K', 0x011, struct tunlMsg)
#define TUNNEL_TERMINATE _IOWR('K', 0x012, struct tunlMsg)
#define TUNNEL_SUBSCRIBE_META _IO('K', 0x013)
#define TUNNEL_SUBSCRIBE_ALL _IO('K', 0x014)
#define TUNNEL_SUBSCRIBE_CVQ _IO('K', 0x015)
#define TUNNEL_UNSUBSCRIBE_META _IO('K', 0x016)
#define TUNNEL_UNSUBSCRIBE_ALL _IO('K', 0x017)
#define TUNNEL_UNSUBSCRIBE_CVQ _IO('K', 0x018)
#define TUNNEL_SUBSCRIBE_META_DOA _IO('K', 0x019)
#define TUNNEL_SUBSCRIBE_META_VQ _IO('K', 0x01a)
#define TUNNEL_UNSUBSCRIBE_META_DOA _IO('K', 0x01b)
#define TUNNEL_UNSUBSCRIBE_META_VQ _IO('K', 0x01c)
#define TUNNEL_EVENT_SUBSCRIBE _IOWR('K', 0x01d, struct iaxxx_tnl_evt_info)
#define TUNNEL_EVENT_UNSUBSCRIBE _IOWR('K', 0x01e, struct iaxxx_tnl_evt_info)
#define TUNNEL_SET_EVENT_THRESHOLD _IOW('K', 0x021, uint32_t)
#endif
