/****************************************************************************
 ****************************************************************************
 ***
 ***   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 __LINUX__WIMAX__I2400M_H__
#define __LINUX__WIMAX__I2400M_H__
#include <linux/types.h>
struct i2400m_bcf_hdr {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __le32 module_type;
 __le32 header_len;
 __le32 header_version;
 __le32 module_id;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __le32 module_vendor;
 __le32 date;
 __le32 size;
 __le32 key_size;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __le32 modulus_size;
 __le32 exponent_size;
 __u8 reserved[88];
} __attribute__ ((packed));
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
enum i2400m_brh_opcode {
 I2400M_BRH_READ = 1,
 I2400M_BRH_WRITE = 2,
 I2400M_BRH_JUMP = 3,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_BRH_SIGNED_JUMP = 8,
 I2400M_BRH_HASH_PAYLOAD_ONLY = 9,
};
enum i2400m_brh {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_BRH_SIGNATURE = 0xcbbc0000,
 I2400M_BRH_SIGNATURE_MASK = 0xffff0000,
 I2400M_BRH_SIGNATURE_SHIFT = 16,
 I2400M_BRH_OPCODE_MASK = 0x0000000f,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_BRH_RESPONSE_MASK = 0x000000f0,
 I2400M_BRH_RESPONSE_SHIFT = 4,
 I2400M_BRH_DIRECT_ACCESS = 0x00000400,
 I2400M_BRH_RESPONSE_REQUIRED = 0x00000200,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_BRH_USE_CHECKSUM = 0x00000100,
};
struct i2400m_bootrom_header {
 __le32 command;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __le32 target_addr;
 __le32 data_size;
 __le32 block_checksum;
 char payload[0];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
} __attribute__ ((packed));
enum i2400m_pt {
 I2400M_PT_DATA = 0,
 I2400M_PT_CTRL,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_PT_TRACE,
 I2400M_PT_RESET_WARM,
 I2400M_PT_RESET_COLD,
 I2400M_PT_EDATA,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_PT_ILLEGAL
};
struct i2400m_pl_data_hdr {
 __le32 reserved;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
} __attribute__((packed));
struct i2400m_pl_edata_hdr {
 __le32 reorder;
 __u8 cs;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u8 reserved[11];
} __attribute__((packed));
enum i2400m_cs {
 I2400M_CS_IPV4_0 = 0,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_CS_IPV4 = 2,
};
enum i2400m_ro {
 I2400M_RO_NEEDED = 0x01,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_RO_TYPE = 0x03,
 I2400M_RO_TYPE_SHIFT = 1,
 I2400M_RO_CIN = 0x0f,
 I2400M_RO_CIN_SHIFT = 4,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_RO_FBN = 0x07ff,
 I2400M_RO_FBN_SHIFT = 8,
 I2400M_RO_SN = 0x07ff,
 I2400M_RO_SN_SHIFT = 21,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
enum i2400m_ro_type {
 I2400M_RO_TYPE_RESET = 0,
 I2400M_RO_TYPE_PACKET,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_RO_TYPE_WS,
 I2400M_RO_TYPE_PACKET_WS,
};
enum {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_PL_ALIGN = 16,
 I2400M_PL_SIZE_MAX = 0x3EFF,
 I2400M_MAX_PLS_IN_MSG = 60,
 I2400M_H2D_PREVIEW_BARKER = 0xcafe900d,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_COLD_RESET_BARKER = 0xc01dc01d,
 I2400M_WARM_RESET_BARKER = 0x50f750f7,
 I2400M_NBOOT_BARKER = 0xdeadbeef,
 I2400M_SBOOT_BARKER = 0x0ff1c1a1,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_SBOOT_BARKER_6050 = 0x80000001,
 I2400M_ACK_BARKER = 0xfeedbabe,
 I2400M_D2H_MSG_BARKER = 0xbeefbabe,
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct i2400m_pld {
 __le32 val;
} __attribute__ ((packed));
#define I2400M_PLD_SIZE_MASK 0x00003fff
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define I2400M_PLD_TYPE_SHIFT 16
#define I2400M_PLD_TYPE_MASK 0x000f0000
struct i2400m_msg_hdr {
 union {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __le32 barker;
 __u32 size;
 };
 union {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __le32 sequence;
 __u32 offset;
 };
 __le16 num_pls;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __le16 rsv1;
 __le16 padding;
 __le16 rsv2;
 struct i2400m_pld pld[0];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
} __attribute__ ((packed));
enum {
 I2400M_L3L4_VERSION = 0x0100,
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
enum i2400m_mt {
 I2400M_MT_RESERVED = 0x0000,
 I2400M_MT_INVALID = 0xffff,
 I2400M_MT_REPORT_MASK = 0x8000,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_MT_GET_SCAN_RESULT = 0x4202,
 I2400M_MT_SET_SCAN_PARAM = 0x4402,
 I2400M_MT_CMD_RF_CONTROL = 0x4602,
 I2400M_MT_CMD_SCAN = 0x4603,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_MT_CMD_CONNECT = 0x4604,
 I2400M_MT_CMD_DISCONNECT = 0x4605,
 I2400M_MT_CMD_EXIT_IDLE = 0x4606,
 I2400M_MT_GET_LM_VERSION = 0x5201,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_MT_GET_DEVICE_INFO = 0x5202,
 I2400M_MT_GET_LINK_STATUS = 0x5203,
 I2400M_MT_GET_STATISTICS = 0x5204,
 I2400M_MT_GET_STATE = 0x5205,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_MT_GET_MEDIA_STATUS = 0x5206,
 I2400M_MT_SET_INIT_CONFIG = 0x5404,
 I2400M_MT_CMD_INIT = 0x5601,
 I2400M_MT_CMD_TERMINATE = 0x5602,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_MT_CMD_MODE_OF_OP = 0x5603,
 I2400M_MT_CMD_RESET_DEVICE = 0x5604,
 I2400M_MT_CMD_MONITOR_CONTROL = 0x5605,
 I2400M_MT_CMD_ENTER_POWERSAVE = 0x5606,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_MT_GET_TLS_OPERATION_RESULT = 0x6201,
 I2400M_MT_SET_EAP_SUCCESS = 0x6402,
 I2400M_MT_SET_EAP_FAIL = 0x6403,
 I2400M_MT_SET_EAP_KEY = 0x6404,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_MT_CMD_SEND_EAP_RESPONSE = 0x6602,
 I2400M_MT_REPORT_SCAN_RESULT = 0xc002,
 I2400M_MT_REPORT_STATE = 0xd002,
 I2400M_MT_REPORT_POWERSAVE_READY = 0xd005,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_MT_REPORT_EAP_REQUEST = 0xe002,
 I2400M_MT_REPORT_EAP_RESTART = 0xe003,
 I2400M_MT_REPORT_ALT_ACCEPT = 0xe004,
 I2400M_MT_REPORT_KEY_REQUEST = 0xe005,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
enum i2400m_ms {
 I2400M_MS_DONE_OK = 0,
 I2400M_MS_DONE_IN_PROGRESS = 1,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_MS_INVALID_OP = 2,
 I2400M_MS_BAD_STATE = 3,
 I2400M_MS_ILLEGAL_VALUE = 4,
 I2400M_MS_MISSING_PARAMS = 5,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_MS_VERSION_ERROR = 6,
 I2400M_MS_ACCESSIBILITY_ERROR = 7,
 I2400M_MS_BUSY = 8,
 I2400M_MS_CORRUPTED_TLV = 9,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_MS_UNINITIALIZED = 10,
 I2400M_MS_UNKNOWN_ERROR = 11,
 I2400M_MS_PRODUCTION_ERROR = 12,
 I2400M_MS_NO_RF = 13,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_MS_NOT_READY_FOR_POWERSAVE = 14,
 I2400M_MS_THERMAL_CRITICAL = 15,
 I2400M_MS_MAX
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
enum i2400m_tlv {
 I2400M_TLV_L4_MESSAGE_VERSIONS = 129,
 I2400M_TLV_SYSTEM_STATE = 141,
 I2400M_TLV_MEDIA_STATUS = 161,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_TLV_RF_OPERATION = 162,
 I2400M_TLV_RF_STATUS = 163,
 I2400M_TLV_DEVICE_RESET_TYPE = 132,
 I2400M_TLV_CONFIG_IDLE_PARAMETERS = 601,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_TLV_CONFIG_IDLE_TIMEOUT = 611,
 I2400M_TLV_CONFIG_D2H_DATA_FORMAT = 614,
 I2400M_TLV_CONFIG_DL_HOST_REORDER = 615,
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct i2400m_tlv_hdr {
 __le16 type;
 __le16 length;
 __u8 pl[0];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
} __attribute__((packed));
struct i2400m_l3l4_hdr {
 __le16 type;
 __le16 length;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __le16 version;
 __le16 resv1;
 __le16 status;
 __le16 resv2;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct i2400m_tlv_hdr pl[0];
} __attribute__((packed));
enum i2400m_system_state {
 I2400M_SS_UNINITIALIZED = 1,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_SS_INIT,
 I2400M_SS_READY,
 I2400M_SS_SCAN,
 I2400M_SS_STANDBY,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_SS_CONNECTING,
 I2400M_SS_WIMAX_CONNECTED,
 I2400M_SS_DATA_PATH_CONNECTED,
 I2400M_SS_IDLE,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_SS_DISCONNECTING,
 I2400M_SS_OUT_OF_ZONE,
 I2400M_SS_SLEEPACTIVE,
 I2400M_SS_PRODUCTION,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_SS_CONFIG,
 I2400M_SS_RF_OFF,
 I2400M_SS_RF_SHUTDOWN,
 I2400M_SS_DEVICE_DISCONNECT,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_SS_MAX,
};
struct i2400m_tlv_system_state {
 struct i2400m_tlv_hdr hdr;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __le32 state;
} __attribute__((packed));
struct i2400m_tlv_l4_message_versions {
 struct i2400m_tlv_hdr hdr;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __le16 major;
 __le16 minor;
 __le16 branch;
 __le16 reserved;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
} __attribute__((packed));
struct i2400m_tlv_detailed_device_info {
 struct i2400m_tlv_hdr hdr;
 __u8 reserved1[400];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u8 mac_address[6];
 __u8 reserved2[2];
} __attribute__((packed));
enum i2400m_rf_switch_status {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_RF_SWITCH_ON = 1,
 I2400M_RF_SWITCH_OFF = 2,
};
struct i2400m_tlv_rf_switches_status {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct i2400m_tlv_hdr hdr;
 __u8 sw_rf_switch;
 __u8 hw_rf_switch;
 __u8 reserved[2];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
} __attribute__((packed));
enum {
 i2400m_rf_operation_on = 1,
 i2400m_rf_operation_off = 2
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
struct i2400m_tlv_rf_operation {
 struct i2400m_tlv_hdr hdr;
 __le32 status;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
} __attribute__((packed));
enum i2400m_tlv_reset_type {
 I2400M_RESET_TYPE_COLD = 1,
 I2400M_RESET_TYPE_WARM
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
struct i2400m_tlv_device_reset_type {
 struct i2400m_tlv_hdr hdr;
 __le32 reset_type;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
} __attribute__((packed));
struct i2400m_tlv_config_idle_parameters {
 struct i2400m_tlv_hdr hdr;
 __le32 idle_timeout;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __le32 idle_paging_interval;
} __attribute__((packed));
enum i2400m_media_status {
 I2400M_MEDIA_STATUS_LINK_UP = 1,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 I2400M_MEDIA_STATUS_LINK_DOWN,
 I2400M_MEDIA_STATUS_LINK_RENEW,
};
struct i2400m_tlv_media_status {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct i2400m_tlv_hdr hdr;
 __le32 media_status;
} __attribute__((packed));
struct i2400m_tlv_config_idle_timeout {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct i2400m_tlv_hdr hdr;
 __le32 timeout;
} __attribute__((packed));
struct i2400m_tlv_config_d2h_data_format {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct i2400m_tlv_hdr hdr;
 __u8 format;
 __u8 reserved[3];
} __attribute__((packed));
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct i2400m_tlv_config_dl_host_reorder {
 struct i2400m_tlv_hdr hdr;
 __u8 reorder;
 __u8 reserved[3];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
} __attribute__((packed));
#endif
