/*****************************************************************************

            (c) Cambridge Silicon Radio Limited 2011
            All rights reserved and confidential information of CSR

            Refer to LICENSE.txt included with this source for details
            on the license terms.

*****************************************************************************/

/* Note: this is an auto-generated file. */


/* Generated by hip_dd_l_h_gen.pl */

#ifndef CSR_WIFI_HIP_SIGS_H
#define CSR_WIFI_HIP_SIGS_H

typedef s16 csr_place_holding_type;

typedef u16 CSR_ASSOCIATION_ID;

typedef u16 CSR_AUTONOMOUS_SCAN_ID;

typedef u16 CSR_BEACON_PERIODS;

typedef u16 CSR_BLACKOUT_ID;

typedef enum CSR_BLACKOUT_SOURCE
{
    CSR_DOT11_LOCAL                               = 0x0000,
    CSR_DOT11_REMOTE                              = 0x0001,
    CSR_OTHER_RADIO                               = 0x0002,
    CSR_NOT_LINKED                                = 0x0004
} CSR_BLACKOUT_SOURCE;

typedef enum CSR_BLACKOUT_TYPE
{
    CSR_LOCAL_DEVICE_ONLY                         = 0x0001,
    CSR_SPECIFIED_PEER                            = 0x0002,
    CSR_CURRENT_CHANNEL                           = 0x0004,
    CSR_P2P                                       = 0x0008
} CSR_BLACKOUT_TYPE;

typedef enum CSR_BOOT_LOADER_OPERATION
{
    CSR_BOOT_LOADER_IDLE                          = 0x00,
    CSR_BOOT_LOADER_RESTART                       = 0x01,
    CSR_BOOT_LOADER_PATCH                         = 0x02,
    CSR_BOOT_LOADER_IMAGE_0                       = 0x10,
    CSR_BOOT_LOADER_IMAGE_1                       = 0x11,
    CSR_BOOT_LOADER_IMAGE_2                       = 0x12,
    CSR_BOOT_LOADER_IMAGE_3                       = 0x13
} CSR_BOOT_LOADER_OPERATION;

typedef u16 CSR_CAPABILITY_INFORMATION;

typedef u16 CSR_CHANNEL_STARTING_FACTOR;

typedef u32 CSR_CIPHER_SUITE_SELECTOR;

typedef u32 CSR_CLIENT_TAG;

typedef enum CSR_CONNECTION_STATUS
{
    CSR_DISCONNECTED                              = 0x0000,
    CSR_CONNECTED_AWAKE                           = 0x0001
} CSR_CONNECTION_STATUS;

typedef s16 CSR_DECIBELS;

typedef enum CSR_DIRECTION
{
    CSR_TRANSMIT                                  = 0x0000,
    CSR_RECEIVE                                   = 0x0001,
    CSR_BIDIRECTIONAL                             = 0x0003
} CSR_DIRECTION;

typedef enum CSR_FRAME_TYPE
{
    CSR_RESERVED                                  = 0x0000,
    CSR_BEACON                                    = 0x0001,
    CSR_PROBE_RESPONSE                            = 0x0002,
    CSR_BEACON_AND_PROBE_RESPONSE                 = 0x0003,
    CSR_PROBE_REQUEST                             = 0x0004
} CSR_FRAME_TYPE;

typedef u32 CSR_IPV4_ADDRESS;

typedef enum CSR_IFINTERFACE
{
    CSR_INDEX_2G4                                 = 0x0001,
    CSR_INDEX_5G                                  = 0x0002
} CSR_IFINTERFACE;

typedef enum CSR_KEY_TYPE
{
    CSR_GROUP                                     = 0x0000,
    CSR_PAIRWISE                                  = 0x0001,
    CSR_PEER_KEY                                  = 0x0002,
    CSR_IGTK                                      = 0x0003
} CSR_KEY_TYPE;

typedef enum CSR_LOADER_OPERATION
{
    CSR_LOADER_IDLE                               = 0x0000,
    CSR_LOADER_COPY                               = 0x0001
} CSR_LOADER_OPERATION;

typedef struct CSR_MAC_ADDRESS
{
    u8 x[6];
} CSR_MACADDRESS;

typedef enum CSR_MIB_STATUS
{
    CSR_MIB_SUCCESSFUL                            = 0x0000,
    CSR_MIB_INVALID_PARAMETERS                    = 0x0001,
    CSR_MIB_WRITE_ONLY                            = 0x0002,
    CSR_MIB_READ_ONLY                             = 0x0003
} CSR_MIB_STATUS;

typedef enum CSR_MEMORY_SPACE
{
    CSR_NONE                                      = 0x00,
    CSR_SHARED_DATA_MEMORY                        = 0x01,
    CSR_EXTERNAL_FLASH_MEMORY                     = 0x02,
    CSR_EXTERNAL_SRAM                             = 0x03,
    CSR_REGISTERS                                 = 0x04,
    CSR_PHY_PROCESSOR_DATA_MEMORY                 = 0x10,
    CSR_PHY_PROCESSOR_PROGRAM_MEMORY              = 0x11,
    CSR_PHY_PROCESSOR_ROM                         = 0x12,
    CSR_MAC_PROCESSOR_DATA_MEMORY                 = 0x20,
    CSR_MAC_PROCESSOR_PROGRAM_MEMORY              = 0x21,
    CSR_MAC_PROCESSOR_ROM                         = 0x22,
    CSR_BT_PROCESSOR_DATA_MEMORY                  = 0x30,
    CSR_BT_PROCESSOR_PROGRAM_MEMORY               = 0x31,
    CSR_BT_PROCESSOR_ROM                          = 0x32
} CSR_MEMORY_SPACE;

typedef u16 CSR_MICROSECONDS16;

typedef u32 CSR_MICROSECONDS32;

typedef u16 CSR_NATURAL16;

typedef enum CSR_PS_SCHEME
{
    CSR_LEGACY_PS                                 = 0x0001,
    CSR_U_APSD                                    = 0x0002,
    CSR_S_APSD                                    = 0x0004
} CSR_PS_SCHEME;

typedef enum CSR_PACKET_FILTER_MODE
{
    CSR_PFM_OPT_OUT                               = 0x0000,
    CSR_PFM_OPT_IN                                = 0x0003
} CSR_PACKET_FILTER_MODE;

typedef u16 CSR_PERIODIC_ID;

typedef enum CSR_PERIODIC_SCHEDULING_MODE
{
    CSR_PSM_PERIODIC_SCHEDULE_PS_POLL             = 0x0001,
    CSR_PSM_PERIODIC_SCHEDULE_PM_BIT              = 0x0002,
    CSR_PSM_PERIODIC_SCHEDULE_UAPSD               = 0x0004,
    CSR_PSM_PERIODIC_SCHEDULE_SAPSD               = 0x0008
} CSR_PERIODIC_SCHEDULING_MODE;

typedef enum CSR_POWER_MANAGEMENT_MODE
{
    CSR_PMM_ACTIVE_MODE                           = 0x0000,
    CSR_PMM_POWER_SAVE                            = 0x0001,
    CSR_PMM_FAST_POWER_SAVE                       = 0x0002
} CSR_POWER_MANAGEMENT_MODE;

typedef enum CSR_PRIORITY
{
    CSR_QOS_UP0                                   = 0x0000,
    CSR_QOS_UP1                                   = 0x0001,
    CSR_QOS_UP2                                   = 0x0002,
    CSR_QOS_UP3                                   = 0x0003,
    CSR_QOS_UP4                                   = 0x0004,
    CSR_QOS_UP5                                   = 0x0005,
    CSR_QOS_UP6                                   = 0x0006,
    CSR_QOS_UP7                                   = 0x0007,
    CSR_CONTENTION                                = 0x8000,
    CSR_MANAGEMENT                                = 0x8010
} CSR_PRIORITY;

typedef enum CSR_REASON_CODE
{
    CSR_UNSPECIFIED_REASON                        = 0x0001,
    CSR_INVALID_INFORMATION_ELEMENT               = 0x000d,
    CSR_QOS_UNSPECIFIED_REASON                    = 0x0020,
    CSR_QOS_EXCESSIVE_NOT_ACK                     = 0x0022,
    CSR_QOS_TXOP_LIMIT_EXCEEDED                   = 0x0023,
    CSR_QSTA_LEAVING                              = 0x0024,
    CSR_UNKNOWN_BA                                = 0x0026,
    CSR_UNKNOWN_TS                                = 0x0026,
    CSR_TIMEOUT                                   = 0x0027
} CSR_REASON_CODE;

typedef enum CSR_RECEPTION_STATUS
{
    CSR_RX_SUCCESS                                = 0x0000,
    CSR_RX_FAILURE_UNSPECIFIED                    = 0x0001,
    CSR_MICHAEL_MIC_ERROR                         = 0x0002,
    CSR_DECRYPTION_ERROR                          = 0x0003,
    CSR_NO_TEMPORAL_KEY_AVAILABLE                 = 0x0004,
    CSR_UNSUPPORTED_MODULATION                    = 0x0011,
    CSR_BAD_FCS                                   = 0x0012,
    CSR_BAD_SIGNAL                                = 0x0013
} CSR_RECEPTION_STATUS;

typedef enum CSR_RESULT_CODE
{
    CSR_RC_SUCCESS                                = 0x0000,
    CSR_RC_UNSPECIFIED_FAILURE                    = 0x0001,
    CSR_RC_REFUSED                                = 0x0003,
    CSR_RC_INVALID_PARAMETERS                     = 0x0026,
    CSR_RC_REJECTED_INVALID_IE                    = 0x0028,
    CSR_RC_REJECTED_INVALID_GROUP_CIPHER          = 0x0029,
    CSR_RC_REJECTED_INVALID_PAIRWISE_CIPHER       = 0x002a,
    CSR_RC_TIMEOUT                                = 0x8000,
    CSR_RC_TOO_MANY_SIMULTANEOUS_REQUESTS         = 0x8001,
    CSR_RC_BSS_ALREADY_STARTED_OR_JOINED          = 0x8002,
    CSR_RC_NOT_SUPPORTED                          = 0x8003,
    CSR_RC_TRANSMISSION_FAILURE                   = 0x8004,
    CSR_RC_RESET_REQUIRED_BEFORE_START            = 0x8006,
    CSR_RC_INSUFFICIENT_RESOURCE                  = 0x8007,
    CSR_RC_NO_BUFFERED_BROADCAST_MULTICAST_FRAMES = 0x8008,
    CSR_RC_INVALID_UNICAST_CIPHER                 = 0xf02f,
    CSR_RC_INVALID_MULTICAST_CIPHER               = 0xf030
} CSR_RESULT_CODE;

typedef enum CSR_SCAN_TYPE
{
    CSR_SC_ACTIVE_SCAN                            = 0x0000,
    CSR_SC_PASSIVE_SCAN                           = 0x0001
} CSR_SCAN_TYPE;

typedef enum CSR_SIGNAL_ID
{
    CSR_MA_PACKET_REQUEST_ID                      = 0x0110,
    CSR_MA_PACKET_CONFIRM_ID                      = 0x0111,
    CSR_MA_PACKET_INDICATION_ID                   = 0x0113,
    CSR_MA_PACKET_CANCEL_REQUEST_ID               = 0x0114,
    CSR_MA_VIF_AVAILABILITY_RESPONSE_ID           = 0x0116,
    CSR_MA_VIF_AVAILABILITY_INDICATION_ID         = 0x0117,
    CSR_MA_PACKET_ERROR_INDICATION_ID             = 0x011b,
    CSR_MLME_RESET_REQUEST_ID                     = 0x0200,
    CSR_MLME_RESET_CONFIRM_ID                     = 0x0201,
    CSR_MLME_GET_REQUEST_ID                       = 0x0204,
    CSR_MLME_GET_CONFIRM_ID                       = 0x0205,
    CSR_MLME_SET_REQUEST_ID                       = 0x0208,
    CSR_MLME_SET_CONFIRM_ID                       = 0x0209,
    CSR_MLME_GET_NEXT_REQUEST_ID                  = 0x020c,
    CSR_MLME_GET_NEXT_CONFIRM_ID                  = 0x020d,
    CSR_MLME_POWERMGT_REQUEST_ID                  = 0x0210,
    CSR_MLME_POWERMGT_CONFIRM_ID                  = 0x0211,
    CSR_MLME_SCAN_REQUEST_ID                      = 0x0214,
    CSR_MLME_SCAN_CONFIRM_ID                      = 0x0215,
    CSR_MLME_HL_SYNC_REQUEST_ID                   = 0x0244,
    CSR_MLME_HL_SYNC_CONFIRM_ID                   = 0x0245,
    CSR_MLME_MEASURE_REQUEST_ID                   = 0x0258,
    CSR_MLME_MEASURE_CONFIRM_ID                   = 0x0259,
    CSR_MLME_MEASURE_INDICATION_ID                = 0x025b,
    CSR_MLME_SETKEYS_REQUEST_ID                   = 0x0268,
    CSR_MLME_SETKEYS_CONFIRM_ID                   = 0x0269,
    CSR_MLME_DELETEKEYS_REQUEST_ID                = 0x026c,
    CSR_MLME_DELETEKEYS_CONFIRM_ID                = 0x026d,
    CSR_MLME_AUTONOMOUS_SCAN_LOSS_INDICATION_ID   = 0x0287,
    CSR_MLME_CONNECTED_INDICATION_ID              = 0x028b,
    CSR_MLME_SCAN_CANCEL_REQUEST_ID               = 0x028c,
    CSR_MLME_HL_SYNC_CANCEL_REQUEST_ID            = 0x0298,
    CSR_MLME_HL_SYNC_CANCEL_CONFIRM_ID            = 0x0299,
    CSR_MLME_ADD_PERIODIC_REQUEST_ID              = 0x02a0,
    CSR_MLME_ADD_PERIODIC_CONFIRM_ID              = 0x02a1,
    CSR_MLME_DEL_PERIODIC_REQUEST_ID              = 0x02a4,
    CSR_MLME_DEL_PERIODIC_CONFIRM_ID              = 0x02a5,
    CSR_MLME_ADD_AUTONOMOUS_SCAN_REQUEST_ID       = 0x02a8,
    CSR_MLME_ADD_AUTONOMOUS_SCAN_CONFIRM_ID       = 0x02a9,
    CSR_MLME_DEL_AUTONOMOUS_SCAN_REQUEST_ID       = 0x02ac,
    CSR_MLME_DEL_AUTONOMOUS_SCAN_CONFIRM_ID       = 0x02ad,
    CSR_MLME_SET_PACKET_FILTER_REQUEST_ID         = 0x02b8,
    CSR_MLME_SET_PACKET_FILTER_CONFIRM_ID         = 0x02b9,
    CSR_MLME_STOP_MEASURE_REQUEST_ID              = 0x02bc,
    CSR_MLME_STOP_MEASURE_CONFIRM_ID              = 0x02bd,
    CSR_MLME_PAUSE_AUTONOMOUS_SCAN_REQUEST_ID     = 0x02cc,
    CSR_MLME_PAUSE_AUTONOMOUS_SCAN_CONFIRM_ID     = 0x02cd,
    CSR_MLME_AUTONOMOUS_SCAN_DONE_INDICATION_ID   = 0x02db,
    CSR_MLME_ADD_TRIGGERED_GET_REQUEST_ID         = 0x02dc,
    CSR_MLME_ADD_TRIGGERED_GET_CONFIRM_ID         = 0x02dd,
    CSR_MLME_DEL_TRIGGERED_GET_REQUEST_ID         = 0x02e0,
    CSR_MLME_DEL_TRIGGERED_GET_CONFIRM_ID         = 0x02e1,
    CSR_MLME_TRIGGERED_GET_INDICATION_ID          = 0x02e7,
    CSR_MLME_ADD_BLACKOUT_REQUEST_ID              = 0x02f8,
    CSR_MLME_ADD_BLACKOUT_CONFIRM_ID              = 0x02f9,
    CSR_MLME_BLACKOUT_ENDED_INDICATION_ID         = 0x02fb,
    CSR_MLME_DEL_BLACKOUT_REQUEST_ID              = 0x02fc,
    CSR_MLME_DEL_BLACKOUT_CONFIRM_ID              = 0x02fd,
    CSR_MLME_ADD_RX_TRIGGER_REQUEST_ID            = 0x0304,
    CSR_MLME_ADD_RX_TRIGGER_CONFIRM_ID            = 0x0305,
    CSR_MLME_DEL_RX_TRIGGER_REQUEST_ID            = 0x0308,
    CSR_MLME_DEL_RX_TRIGGER_CONFIRM_ID            = 0x0309,
    CSR_MLME_CONNECT_STATUS_REQUEST_ID            = 0x0310,
    CSR_MLME_CONNECT_STATUS_CONFIRM_ID            = 0x0311,
    CSR_MLME_MODIFY_BSS_PARAMETER_REQUEST_ID      = 0x0314,
    CSR_MLME_MODIFY_BSS_PARAMETER_CONFIRM_ID      = 0x0315,
    CSR_MLME_ADD_TEMPLATE_REQUEST_ID              = 0x0318,
    CSR_MLME_ADD_TEMPLATE_CONFIRM_ID              = 0x0319,
    CSR_MLME_CONFIG_QUEUE_REQUEST_ID              = 0x031c,
    CSR_MLME_CONFIG_QUEUE_CONFIRM_ID              = 0x031d,
    CSR_MLME_ADD_TSPEC_REQUEST_ID                 = 0x0320,
    CSR_MLME_ADD_TSPEC_CONFIRM_ID                 = 0x0321,
    CSR_MLME_DEL_TSPEC_REQUEST_ID                 = 0x0324,
    CSR_MLME_DEL_TSPEC_CONFIRM_ID                 = 0x0325,
    CSR_MLME_START_AGGREGATION_REQUEST_ID         = 0x0328,
    CSR_MLME_START_AGGREGATION_CONFIRM_ID         = 0x0329,
    CSR_MLME_BLOCKACK_ERROR_INDICATION_ID         = 0x032b,
    CSR_MLME_STOP_AGGREGATION_REQUEST_ID          = 0x032c,
    CSR_MLME_STOP_AGGREGATION_CONFIRM_ID          = 0x032d,
    CSR_MLME_SM_START_REQUEST_ID                  = 0x0334,
    CSR_MLME_SM_START_CONFIRM_ID                  = 0x0335,
    CSR_MLME_LEAVE_REQUEST_ID                     = 0x0338,
    CSR_MLME_LEAVE_CONFIRM_ID                     = 0x0339,
    CSR_MLME_SET_TIM_REQUEST_ID                   = 0x033c,
    CSR_MLME_SET_TIM_CONFIRM_ID                   = 0x033d,
    CSR_MLME_GET_KEY_SEQUENCE_REQUEST_ID          = 0x0340,
    CSR_MLME_GET_KEY_SEQUENCE_CONFIRM_ID          = 0x0341,
    CSR_MLME_SET_CHANNEL_REQUEST_ID               = 0x034c,
    CSR_MLME_SET_CHANNEL_CONFIRM_ID               = 0x034d,
    CSR_MLME_ADD_MULTICAST_ADDRESS_REQUEST_ID     = 0x040c,
    CSR_MLME_ADD_MULTICAST_ADDRESS_CONFIRM_ID     = 0x040d,
    CSR_DEBUG_STRING_INDICATION_ID                = 0x0803,
    CSR_DEBUG_WORD16_INDICATION_ID                = 0x0807,
    CSR_DEBUG_GENERIC_REQUEST_ID                  = 0x0808,
    CSR_DEBUG_GENERIC_CONFIRM_ID                  = 0x0809,
    CSR_DEBUG_GENERIC_INDICATION_ID               = 0x080b
} CSR_SIGNAL_ID;

typedef u16 CSR_SIMPLE_POINTER;

typedef u16 CSR_STARTING_SEQUENCE_NUMBER;

typedef enum CSR_SYMBOL_ID
{
    CSR_SLT_END                                   = 0x0000,
    CSR_SLT_PCI_SLOT_CONFIG                       = 0x0001,
    CSR_SLT_SDIO_SLOT_CONFIG                      = 0x0002,
    CSR_SLT_BUILD_ID_NUMBER                       = 0x0003,
    CSR_SLT_BUILD_ID_STRING                       = 0x0004,
    CSR_SLT_PERSISTENT_STORE_DB                   = 0x0005,
    CSR_SLT_RESET_VECTOR_PHY                      = 0x0006,
    CSR_SLT_RESET_VECTOR_MAC                      = 0x0007,
    CSR_SLT_SDIO_LOADER_CONTROL                   = 0x0008,
    CSR_SLT_TEST_CMD                              = 0x0009,
    CSR_SLT_TEST_ALIVE_COUNTER                    = 0x000a,
    CSR_SLT_TEST_PARAMETERS                       = 0x000b,
    CSR_SLT_TEST_RESULTS                          = 0x000c,
    CSR_SLT_TEST_VERSION                          = 0x000d,
    CSR_SLT_MIB_PSID_RANGES                       = 0x000e,
    CSR_SLT_KIP_TABLE                             = 0x000f,
    CSR_SLT_PANIC_DATA_PHY                        = 0x0010,
    CSR_SLT_PANIC_DATA_MAC                        = 0x0011,
    CSR_SLT_BOOT_LOADER_CONTROL                   = 0x0012,
    CSR_SLT_SOFT_MAC                              = 0x0013
} CSR_SYMBOL_ID;

typedef struct CSR_TSF_TIME
{
    u8 x[8];
} CSR_TSF_TIME;

typedef u16 CSR_TIME_UNITS;

typedef enum CSR_TRANSMISSION_CONTROL
{
    CSR_TRIGGERED                                 = 0x0001,
    CSR_END_OF_SERVICE                            = 0x0002,
    CSR_NO_CONFIRM_REQUIRED                       = 0x0004,
    CSR_ALLOW_BA                                  = 0x0008
} CSR_TRANSMISSION_CONTROL;

typedef enum CSR_TRANSMISSION_STATUS
{
    CSR_TX_SUCCESSFUL                             = 0x0000,
    CSR_TX_RETRY_LIMIT                            = 0x0001,
    CSR_TX_LIFETIME                               = 0x0002,
    CSR_TX_NO_BSS                                 = 0x0003,
    CSR_TX_EXCESSIVE_DATA_LENGTH                  = 0x0004,
    CSR_TX_UNSUPPORTED_PRIORITY                   = 0x0006,
    CSR_TX_UNAVAILABLE_PRIORITY                   = 0x0007,
    CSR_TX_UNAVAILABLE_KEY_MAPPING                = 0x000a,
    CSR_TX_EDCA_TIMEOUT                           = 0x000b,
    CSR_TX_BLOCK_ACK_TIMEOUT                      = 0x000c,
    CSR_TX_FAIL_TRANSMISSION_VIF_INTERRUPTED      = 0x000d,
    CSR_TX_REJECTED_PEER_STATION_SLEEPING         = 0x000e,
    CSR_TX_REJECTED_DTIM_ENDED                    = 0x000f,
    CSR_TX_REJECTED_DTIM_STARTED                  = 0x0010
} CSR_TRANSMISSION_STATUS;

typedef u16 CSR_TRIGGER_ID;

typedef u16 CSR_TRIGGERED_ID;

typedef enum CSR_HIP_VERSIONS
{
    CSR_HIP_ENG_VERSION                           = 0x0001,
    CSR_HIP_VERSION                               = 0x0900
} CSR_HIP_VERSIONS;

typedef u16 CSR_BUFFER_HANDLE;

typedef u16 CSR_CHANNEL_NUMBER;

typedef struct CSR_DATA_REFERENCE
{
    u16 SlotNumber;
    u16 DataLength;
} CSR_DATAREF;

typedef u16 CSR_DIALOG_TOKEN;

typedef struct CSR_GENERIC_POINTER
{
    u32        MemoryOffset;
    CSR_MEMORY_SPACE MemorySpace;
} CSR_GENERIC_POINTER;

typedef struct CSR_MLME_CONFIG_QUEUE_CONFIRM
{
    CSR_DATAREF     Dummydataref1;
    CSR_DATAREF     Dummydataref2;
    CSR_RESULT_CODE ResultCode;
} CSR_MLME_CONFIG_QUEUE_CONFIRM;

typedef struct CSR_MLME_CONFIG_QUEUE_REQUEST
{
    CSR_DATAREF   Dummydataref1;
    CSR_DATAREF   Dummydataref2;
    CSR_NATURAL16 QueueIndex;
    CSR_NATURAL16 Aifs;
    CSR_NATURAL16 Cwmin;
    CSR_NATURAL16 Cwmax;
    CSR_NATURAL16 TxopLimit;
} CSR_MLME_CONFIG_QUEUE_REQUEST;

typedef struct CSR_MLME_GET_CONFIRM
{
    CSR_DATAREF    MibAttributeValue;
    CSR_DATAREF    Dummydataref2;
    CSR_MIB_STATUS Status;
    CSR_NATURAL16  ErrorIndex;
} CSR_MLME_GET_CONFIRM;

typedef struct CSR_MLME_GET_REQUEST
{
    CSR_DATAREF MibAttribute;
    CSR_DATAREF Dummydataref2;
} CSR_MLME_GET_REQUEST;

typedef struct CSR_MLME_GET_NEXT_CONFIRM
{
    CSR_DATAREF    MibAttributeValue;
    CSR_DATAREF    Dummydataref2;
    CSR_MIB_STATUS Status;
    CSR_NATURAL16  ErrorIndex;
} CSR_MLME_GET_NEXT_CONFIRM;

typedef struct CSR_MLME_GET_NEXT_REQUEST
{
    CSR_DATAREF MibAttribute;
    CSR_DATAREF Dummydataref2;
} CSR_MLME_GET_NEXT_REQUEST;

typedef struct CSR_MLME_HL_SYNC_CONFIRM
{
    CSR_DATAREF     Dummydataref1;
    CSR_DATAREF     Dummydataref2;
    CSR_MACADDRESS  GroupAddress;
    CSR_RESULT_CODE ResultCode;
} CSR_MLME_HL_SYNC_CONFIRM;

typedef struct CSR_MLME_HL_SYNC_REQUEST
{
    CSR_DATAREF    Dummydataref1;
    CSR_DATAREF    Dummydataref2;
    CSR_MACADDRESS GroupAddress;
} CSR_MLME_HL_SYNC_REQUEST;

typedef struct CSR_MLME_HL_SYNC_CANCEL_CONFIRM
{
    CSR_DATAREF     Dummydataref1;
    CSR_DATAREF     Dummydataref2;
    CSR_RESULT_CODE ResultCode;
} CSR_MLME_HL_SYNC_CANCEL_CONFIRM;

typedef struct CSR_MLME_HL_SYNC_CANCEL_REQUEST
{
    CSR_DATAREF    Dummydataref1;
    CSR_DATAREF    Dummydataref2;
    CSR_MACADDRESS GroupAddress;
} CSR_MLME_HL_SYNC_CANCEL_REQUEST;

typedef struct CSR_MLME_MEASURE_CONFIRM
{
    CSR_DATAREF      Dummydataref1;
    CSR_DATAREF      Dummydataref2;
    CSR_RESULT_CODE  ResultCode;
    CSR_DIALOG_TOKEN DialogToken;
} CSR_MLME_MEASURE_CONFIRM;

typedef struct CSR_MLME_MEASURE_INDICATION
{
    CSR_DATAREF      MeasurementReportSet;
    CSR_DATAREF      Dummydataref2;
    CSR_DIALOG_TOKEN DialogToken;
} CSR_MLME_MEASURE_INDICATION;

typedef struct CSR_MLME_MEASURE_REQUEST
{
    CSR_DATAREF      MeasurementRequestSet;
    CSR_DATAREF      Dummydataref2;
    CSR_DIALOG_TOKEN DialogToken;
} CSR_MLME_MEASURE_REQUEST;

typedef struct CSR_MLME_RESET_CONFIRM
{
    CSR_DATAREF     Dummydataref1;
    CSR_DATAREF     Dummydataref2;
    CSR_RESULT_CODE ResultCode;
} CSR_MLME_RESET_CONFIRM;

typedef struct CSR_MLME_RESET_REQUEST
{
    CSR_DATAREF    Dummydataref1;
    CSR_DATAREF    Dummydataref2;
    CSR_MACADDRESS StaAddress;
    s16       SetDefaultMib;
} CSR_MLME_RESET_REQUEST;

typedef struct CSR_MLME_SET_CONFIRM
{
    CSR_DATAREF    MibAttributeValue;
    CSR_DATAREF    Dummydataref2;
    CSR_MIB_STATUS Status;
    CSR_NATURAL16  ErrorIndex;
} CSR_MLME_SET_CONFIRM;

typedef struct CSR_MLME_SET_REQUEST
{
    CSR_DATAREF MibAttributeValue;
    CSR_DATAREF Dummydataref2;
} CSR_MLME_SET_REQUEST;

typedef struct CSR_MLME_STOP_MEASURE_CONFIRM
{
    CSR_DATAREF      Dummydataref1;
    CSR_DATAREF      Dummydataref2;
    CSR_RESULT_CODE  ResultCode;
    CSR_DIALOG_TOKEN DialogToken;
} CSR_MLME_STOP_MEASURE_CONFIRM;

typedef struct CSR_MLME_STOP_MEASURE_REQUEST
{
    CSR_DATAREF      Dummydataref1;
    CSR_DATAREF      Dummydataref2;
    CSR_DIALOG_TOKEN DialogToken;
} CSR_MLME_STOP_MEASURE_REQUEST;

typedef u16 CSR_PROCESS_ID;

typedef u16 CSR_RATE;

typedef u16 CSR_SEQUENCE_NUMBER;

typedef struct CSR_SIGNAL_PRIMITIVE_HEADER
{
    s16       SignalId;
    CSR_PROCESS_ID ReceiverProcessId;
    CSR_PROCESS_ID SenderProcessId;
} CSR_SIGNAL_PRIMITIVE_HEADER;

typedef u16 CSR_TRAFFIC_WINDOW;

typedef u16 CSR_VIF_IDENTIFIER;

typedef struct CSR_DEBUG_GENERIC_CONFIRM
{
    CSR_DATAREF   DebugVariable;
    CSR_DATAREF   Dummydataref2;
    CSR_NATURAL16 DebugWords[8];
} CSR_DEBUG_GENERIC_CONFIRM;

typedef struct CSR_DEBUG_GENERIC_INDICATION
{
    CSR_DATAREF   DebugVariable;
    CSR_DATAREF   Dummydataref2;
    CSR_NATURAL16 DebugWords[8];
} CSR_DEBUG_GENERIC_INDICATION;

typedef struct CSR_DEBUG_GENERIC_REQUEST
{
    CSR_DATAREF   DebugVariable;
    CSR_DATAREF   Dummydataref2;
    CSR_NATURAL16 DebugWords[8];
} CSR_DEBUG_GENERIC_REQUEST;

typedef struct CSR_DEBUG_STRING_INDICATION
{
    CSR_DATAREF DebugMessage;
    CSR_DATAREF Dummydataref2;
} CSR_DEBUG_STRING_INDICATION;

typedef struct CSR_DEBUG_WORD16_INDICATION
{
    CSR_DATAREF   Dummydataref1;
    CSR_DATAREF   Dummydataref2;
    CSR_NATURAL16 DebugWords[16];
} CSR_DEBUG_WORD16_INDICATION;

typedef struct CSR_MA_PACKET_CONFIRM
{
    CSR_DATAREF             Dummydataref1;
    CSR_DATAREF             Dummydataref2;
    CSR_VIF_IDENTIFIER      VirtualInterfaceIdentifier;
    CSR_TRANSMISSION_STATUS TransmissionStatus;
    CSR_NATURAL16           RetryCount;
    CSR_RATE                Rate;
    CSR_CLIENT_TAG          HostTag;
} CSR_MA_PACKET_CONFIRM;

typedef struct CSR_MA_PACKET_INDICATION
{
    CSR_DATAREF          Data;
    CSR_DATAREF          Dummydataref2;
    CSR_VIF_IDENTIFIER   VirtualInterfaceIdentifier;
    CSR_TSF_TIME         LocalTime;
    CSR_IFINTERFACE      Ifindex;
    CSR_CHANNEL_NUMBER   Channel;
    CSR_RECEPTION_STATUS ReceptionStatus;
    CSR_DECIBELS         Rssi;
    CSR_DECIBELS         Snr;
    CSR_RATE             ReceivedRate;
} CSR_MA_PACKET_INDICATION;

typedef struct CSR_MA_PACKET_REQUEST
{
    CSR_DATAREF              Data;
    CSR_DATAREF              Dummydataref2;
    CSR_VIF_IDENTIFIER       VirtualInterfaceIdentifier;
    CSR_RATE                 TransmitRate;
    CSR_CLIENT_TAG           HostTag;
    CSR_PRIORITY             Priority;
    CSR_MACADDRESS           Ra;
    CSR_TRANSMISSION_CONTROL TransmissionControl;
} CSR_MA_PACKET_REQUEST;

typedef struct CSR_MA_PACKET_CANCEL_REQUEST
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_CLIENT_TAG     HostTag;
} CSR_MA_PACKET_CANCEL_REQUEST;

typedef struct CSR_MA_PACKET_ERROR_INDICATION
{
    CSR_DATAREF         Dummydataref1;
    CSR_DATAREF         Dummydataref2;
    CSR_VIF_IDENTIFIER  VirtualInterfaceIdentifier;
    CSR_MACADDRESS      PeerQstaAddress;
    CSR_PRIORITY        UserPriority;
    CSR_SEQUENCE_NUMBER SequenceNumber;
} CSR_MA_PACKET_ERROR_INDICATION;

typedef struct CSR_MA_VIF_AVAILABILITY_INDICATION
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    s16           Multicast;
} CSR_MA_VIF_AVAILABILITY_INDICATION;

typedef struct CSR_MA_VIF_AVAILABILITY_RESPONSE
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
} CSR_MA_VIF_AVAILABILITY_RESPONSE;

typedef struct CSR_MLME_ADD_AUTONOMOUS_SCAN_CONFIRM
{
    CSR_DATAREF            Dummydataref1;
    CSR_DATAREF            Dummydataref2;
    CSR_VIF_IDENTIFIER     VirtualInterfaceIdentifier;
    CSR_RESULT_CODE        ResultCode;
    CSR_AUTONOMOUS_SCAN_ID AutonomousScanId;
} CSR_MLME_ADD_AUTONOMOUS_SCAN_CONFIRM;

typedef struct CSR_MLME_ADD_AUTONOMOUS_SCAN_REQUEST
{
    CSR_DATAREF                 ChannelList;
    CSR_DATAREF                 InformationElements;
    CSR_VIF_IDENTIFIER          VirtualInterfaceIdentifier;
    CSR_AUTONOMOUS_SCAN_ID      AutonomousScanId;
    CSR_IFINTERFACE             Ifindex;
    CSR_CHANNEL_STARTING_FACTOR ChannelStartingFactor;
    CSR_SCAN_TYPE               ScanType;
    CSR_MICROSECONDS32          ProbeDelay;
    CSR_TIME_UNITS              MinChannelTime;
    CSR_TIME_UNITS              MaxChannelTime;
} CSR_MLME_ADD_AUTONOMOUS_SCAN_REQUEST;

typedef struct CSR_MLME_ADD_BLACKOUT_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_BLACKOUT_ID    BlackoutId;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_ADD_BLACKOUT_CONFIRM;

typedef struct CSR_MLME_ADD_BLACKOUT_REQUEST
{
    CSR_DATAREF         Dummydataref1;
    CSR_DATAREF         Dummydataref2;
    CSR_VIF_IDENTIFIER  VirtualInterfaceIdentifier;
    CSR_BLACKOUT_ID     BlackoutId;
    CSR_BLACKOUT_TYPE   BlackoutType;
    CSR_BLACKOUT_SOURCE BlackoutSource;
    CSR_MICROSECONDS32  BlackoutStartReference;
    CSR_MICROSECONDS32  BlackoutPeriod;
    CSR_MICROSECONDS32  BlackoutDuration;
    CSR_MACADDRESS      PeerStaAddress;
    CSR_NATURAL16       BlackoutCount;
} CSR_MLME_ADD_BLACKOUT_REQUEST;

typedef struct CSR_MLME_ADD_MULTICAST_ADDRESS_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_ADD_MULTICAST_ADDRESS_CONFIRM;

typedef struct CSR_MLME_ADD_MULTICAST_ADDRESS_REQUEST
{
    CSR_DATAREF        Data;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_NATURAL16      NumberOfMulticastGroupAddresses;
} CSR_MLME_ADD_MULTICAST_ADDRESS_REQUEST;

typedef struct CSR_MLME_ADD_PERIODIC_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_PERIODIC_ID    PeriodicId;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_ADD_PERIODIC_CONFIRM;

typedef struct CSR_MLME_ADD_PERIODIC_REQUEST
{
    CSR_DATAREF                  Dummydataref1;
    CSR_DATAREF                  Dummydataref2;
    CSR_VIF_IDENTIFIER           VirtualInterfaceIdentifier;
    CSR_PERIODIC_ID              PeriodicId;
    CSR_MICROSECONDS32           MaximumLatency;
    CSR_PERIODIC_SCHEDULING_MODE PeriodicSchedulingMode;
    s16                     WakeHost;
    CSR_PRIORITY                 UserPriority;
} CSR_MLME_ADD_PERIODIC_REQUEST;

typedef struct CSR_MLME_ADD_RX_TRIGGER_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_TRIGGER_ID     TriggerId;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_ADD_RX_TRIGGER_CONFIRM;

typedef struct CSR_MLME_ADD_RX_TRIGGER_REQUEST
{
    CSR_DATAREF        InformationElements;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_TRIGGER_ID     TriggerId;
    CSR_PRIORITY       Priority;
} CSR_MLME_ADD_RX_TRIGGER_REQUEST;

typedef struct CSR_MLME_ADD_TEMPLATE_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_FRAME_TYPE     FrameType;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_ADD_TEMPLATE_CONFIRM;

typedef struct CSR_MLME_ADD_TEMPLATE_REQUEST
{
    CSR_DATAREF        Data1;
    CSR_DATAREF        Data2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_FRAME_TYPE     FrameType;
    CSR_RATE           MinTransmitRate;
} CSR_MLME_ADD_TEMPLATE_REQUEST;

typedef struct CSR_MLME_ADD_TRIGGERED_GET_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
    CSR_TRIGGERED_ID   TriggeredId;
} CSR_MLME_ADD_TRIGGERED_GET_CONFIRM;

typedef struct CSR_MLME_ADD_TRIGGERED_GET_REQUEST
{
    CSR_DATAREF        MibAttribute;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_TRIGGERED_ID   TriggeredId;
} CSR_MLME_ADD_TRIGGERED_GET_REQUEST;

typedef struct CSR_MLME_ADD_TSPEC_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_PRIORITY       UserPriority;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_ADD_TSPEC_CONFIRM;

typedef struct CSR_MLME_ADD_TSPEC_REQUEST
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_PRIORITY       UserPriority;
    CSR_DIRECTION      Direction;
    CSR_PS_SCHEME      PsScheme;
    CSR_NATURAL16      MediumTime;
    CSR_MICROSECONDS32 ServiceStartTime;
    CSR_MICROSECONDS32 ServiceInterval;
    CSR_RATE           MinimumDataRate;
} CSR_MLME_ADD_TSPEC_REQUEST;

typedef struct CSR_MLME_AUTONOMOUS_SCAN_DONE_INDICATION
{
    CSR_DATAREF            Dummydataref1;
    CSR_DATAREF            Dummydataref2;
    CSR_VIF_IDENTIFIER     VirtualInterfaceIdentifier;
    CSR_RESULT_CODE        ResultCode;
    CSR_AUTONOMOUS_SCAN_ID AutonomousScanId;
} CSR_MLME_AUTONOMOUS_SCAN_DONE_INDICATION;

typedef struct CSR_MLME_AUTONOMOUS_SCAN_LOSS_INDICATION
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_MACADDRESS     Bssid;
} CSR_MLME_AUTONOMOUS_SCAN_LOSS_INDICATION;

typedef struct CSR_MLME_BLACKOUT_ENDED_INDICATION
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_BLACKOUT_ID    BlackoutId;
} CSR_MLME_BLACKOUT_ENDED_INDICATION;

typedef struct CSR_MLME_BLOCKACK_ERROR_INDICATION
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_REASON_CODE    ResultCode;
    CSR_MACADDRESS     PeerQstaAddress;
} CSR_MLME_BLOCKACK_ERROR_INDICATION;

typedef struct CSR_MLME_CONNECTED_INDICATION
{
    CSR_DATAREF           Dummydataref1;
    CSR_DATAREF           Dummydataref2;
    CSR_VIF_IDENTIFIER    VirtualInterfaceIdentifier;
    CSR_CONNECTION_STATUS ConnectionStatus;
    CSR_MACADDRESS        PeerMacAddress;
} CSR_MLME_CONNECTED_INDICATION;

typedef struct CSR_MLME_CONNECT_STATUS_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_CONNECT_STATUS_CONFIRM;

typedef struct CSR_MLME_CONNECT_STATUS_REQUEST
{
    CSR_DATAREF                InformationElements;
    CSR_DATAREF                Dummydataref2;
    CSR_VIF_IDENTIFIER         VirtualInterfaceIdentifier;
    CSR_CONNECTION_STATUS      ConnectionStatus;
    CSR_MACADDRESS             StaAddress;
    CSR_ASSOCIATION_ID         AssociationId;
    CSR_CAPABILITY_INFORMATION AssociationCapabilityInformation;
} CSR_MLME_CONNECT_STATUS_REQUEST;

typedef struct CSR_MLME_DELETEKEYS_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_DELETEKEYS_CONFIRM;

typedef struct CSR_MLME_DELETEKEYS_REQUEST
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_NATURAL16      KeyId;
    CSR_KEY_TYPE       KeyType;
    CSR_MACADDRESS     Address;
} CSR_MLME_DELETEKEYS_REQUEST;

typedef struct CSR_MLME_DEL_AUTONOMOUS_SCAN_CONFIRM
{
    CSR_DATAREF            Dummydataref1;
    CSR_DATAREF            Dummydataref2;
    CSR_VIF_IDENTIFIER     VirtualInterfaceIdentifier;
    CSR_RESULT_CODE        ResultCode;
    CSR_AUTONOMOUS_SCAN_ID AutonomousScanId;
} CSR_MLME_DEL_AUTONOMOUS_SCAN_CONFIRM;

typedef struct CSR_MLME_DEL_AUTONOMOUS_SCAN_REQUEST
{
    CSR_DATAREF            Dummydataref1;
    CSR_DATAREF            Dummydataref2;
    CSR_VIF_IDENTIFIER     VirtualInterfaceIdentifier;
    CSR_AUTONOMOUS_SCAN_ID AutonomousScanId;
} CSR_MLME_DEL_AUTONOMOUS_SCAN_REQUEST;

typedef struct CSR_MLME_DEL_BLACKOUT_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_BLACKOUT_ID    BlackoutId;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_DEL_BLACKOUT_CONFIRM;

typedef struct CSR_MLME_DEL_BLACKOUT_REQUEST
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_BLACKOUT_ID    BlackoutId;
} CSR_MLME_DEL_BLACKOUT_REQUEST;

typedef struct CSR_MLME_DEL_PERIODIC_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_PERIODIC_ID    PeriodicId;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_DEL_PERIODIC_CONFIRM;

typedef struct CSR_MLME_DEL_PERIODIC_REQUEST
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_PERIODIC_ID    PeriodicId;
} CSR_MLME_DEL_PERIODIC_REQUEST;

typedef struct CSR_MLME_DEL_RX_TRIGGER_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_TRIGGER_ID     TriggerId;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_DEL_RX_TRIGGER_CONFIRM;

typedef struct CSR_MLME_DEL_RX_TRIGGER_REQUEST
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_TRIGGER_ID     TriggerId;
} CSR_MLME_DEL_RX_TRIGGER_REQUEST;

typedef struct CSR_MLME_DEL_TRIGGERED_GET_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
    CSR_TRIGGERED_ID   TriggeredId;
} CSR_MLME_DEL_TRIGGERED_GET_CONFIRM;

typedef struct CSR_MLME_DEL_TRIGGERED_GET_REQUEST
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_TRIGGERED_ID   TriggeredId;
} CSR_MLME_DEL_TRIGGERED_GET_REQUEST;

typedef struct CSR_MLME_DEL_TSPEC_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_PRIORITY       UserPriority;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_DEL_TSPEC_CONFIRM;

typedef struct CSR_MLME_DEL_TSPEC_REQUEST
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_PRIORITY       UserPriority;
    CSR_DIRECTION      Direction;
} CSR_MLME_DEL_TSPEC_REQUEST;

typedef struct CSR_MLME_GET_KEY_SEQUENCE_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
    CSR_NATURAL16      SequenceNumber[8];
} CSR_MLME_GET_KEY_SEQUENCE_CONFIRM;

typedef struct CSR_MLME_GET_KEY_SEQUENCE_REQUEST
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_NATURAL16      KeyId;
    CSR_KEY_TYPE       KeyType;
    CSR_MACADDRESS     Address;
} CSR_MLME_GET_KEY_SEQUENCE_REQUEST;

typedef struct CSR_MLME_LEAVE_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_LEAVE_CONFIRM;

typedef struct CSR_MLME_LEAVE_REQUEST
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
} CSR_MLME_LEAVE_REQUEST;

typedef struct CSR_MLME_MODIFY_BSS_PARAMETER_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_MODIFY_BSS_PARAMETER_CONFIRM;

typedef struct CSR_MLME_MODIFY_BSS_PARAMETER_REQUEST
{
    CSR_DATAREF                Data;
    CSR_DATAREF                Dummydataref2;
    CSR_VIF_IDENTIFIER         VirtualInterfaceIdentifier;
    CSR_TIME_UNITS             BeaconPeriod;
    CSR_BEACON_PERIODS         DtimPeriod;
    CSR_CAPABILITY_INFORMATION CapabilityInformation;
    CSR_MACADDRESS             Bssid;
    CSR_NATURAL16              RtsThreshold;
} CSR_MLME_MODIFY_BSS_PARAMETER_REQUEST;

typedef struct CSR_MLME_PAUSE_AUTONOMOUS_SCAN_CONFIRM
{
    CSR_DATAREF            Dummydataref1;
    CSR_DATAREF            Dummydataref2;
    CSR_VIF_IDENTIFIER     VirtualInterfaceIdentifier;
    CSR_RESULT_CODE        ResultCode;
    CSR_AUTONOMOUS_SCAN_ID AutonomousScanId;
} CSR_MLME_PAUSE_AUTONOMOUS_SCAN_CONFIRM;

typedef struct CSR_MLME_PAUSE_AUTONOMOUS_SCAN_REQUEST
{
    CSR_DATAREF            Dummydataref1;
    CSR_DATAREF            Dummydataref2;
    CSR_VIF_IDENTIFIER     VirtualInterfaceIdentifier;
    CSR_AUTONOMOUS_SCAN_ID AutonomousScanId;
    s16               Pause;
} CSR_MLME_PAUSE_AUTONOMOUS_SCAN_REQUEST;

typedef struct CSR_MLME_POWERMGT_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_POWERMGT_CONFIRM;

typedef struct CSR_MLME_POWERMGT_REQUEST
{
    CSR_DATAREF               Dummydataref1;
    CSR_DATAREF               Dummydataref2;
    CSR_VIF_IDENTIFIER        VirtualInterfaceIdentifier;
    CSR_POWER_MANAGEMENT_MODE PowerManagementMode;
    s16                  ReceiveDtims;
    CSR_BEACON_PERIODS        ListenInterval;
    CSR_TRAFFIC_WINDOW        TrafficWindow;
} CSR_MLME_POWERMGT_REQUEST;

typedef struct CSR_MLME_SCAN_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_SCAN_CONFIRM;

typedef struct CSR_MLME_SCAN_REQUEST
{
    CSR_DATAREF        ChannelList;
    CSR_DATAREF        InformationElements;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_IFINTERFACE    Ifindex;
    CSR_SCAN_TYPE      ScanType;
    CSR_MICROSECONDS32 ProbeDelay;
    CSR_TIME_UNITS     MinChannelTime;
    CSR_TIME_UNITS     MaxChannelTime;
} CSR_MLME_SCAN_REQUEST;

typedef struct CSR_MLME_SCAN_CANCEL_REQUEST
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
} CSR_MLME_SCAN_CANCEL_REQUEST;

typedef struct CSR_MLME_SETKEYS_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_SETKEYS_CONFIRM;

typedef struct CSR_MLME_SETKEYS_REQUEST
{
    CSR_DATAREF               Key;
    CSR_DATAREF               Dummydataref2;
    CSR_VIF_IDENTIFIER        VirtualInterfaceIdentifier;
    CSR_NATURAL16             Length;
    CSR_NATURAL16             KeyId;
    CSR_KEY_TYPE              KeyType;
    CSR_MACADDRESS            Address;
    CSR_NATURAL16             SequenceNumber[8];
    CSR_CIPHER_SUITE_SELECTOR CipherSuiteSelector;
} CSR_MLME_SETKEYS_REQUEST;

typedef struct CSR_MLME_SET_CHANNEL_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_SET_CHANNEL_CONFIRM;

typedef struct CSR_MLME_SET_CHANNEL_REQUEST
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_IFINTERFACE    Ifindex;
    CSR_CHANNEL_NUMBER Channel;
    CSR_MACADDRESS     Address;
    CSR_TIME_UNITS     AvailabilityDuration;
    CSR_TIME_UNITS     AvailabilityInterval;
} CSR_MLME_SET_CHANNEL_REQUEST;

typedef struct CSR_MLME_SET_PACKET_FILTER_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_SET_PACKET_FILTER_CONFIRM;

typedef struct CSR_MLME_SET_PACKET_FILTER_REQUEST
{
    CSR_DATAREF            InformationElements;
    CSR_DATAREF            Dummydataref2;
    CSR_VIF_IDENTIFIER     VirtualInterfaceIdentifier;
    CSR_PACKET_FILTER_MODE PacketFilterMode;
    CSR_IPV4_ADDRESS       ArpFilterAddress;
} CSR_MLME_SET_PACKET_FILTER_REQUEST;

typedef struct CSR_MLME_SET_TIM_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_SET_TIM_CONFIRM;

typedef struct CSR_MLME_SET_TIM_REQUEST
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_ASSOCIATION_ID AssociationId;
    s16           TimValue;
} CSR_MLME_SET_TIM_REQUEST;

typedef struct CSR_MLME_SM_START_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_SM_START_CONFIRM;

typedef struct CSR_MLME_SM_START_REQUEST
{
    CSR_DATAREF                Beacon;
    CSR_DATAREF                BssParameters;
    CSR_VIF_IDENTIFIER         VirtualInterfaceIdentifier;
    CSR_IFINTERFACE            Ifindex;
    CSR_CHANNEL_NUMBER         Channel;
    CSR_MACADDRESS             InterfaceAddress;
    CSR_MACADDRESS             Bssid;
    CSR_TIME_UNITS             BeaconPeriod;
    CSR_BEACON_PERIODS         DtimPeriod;
    CSR_CAPABILITY_INFORMATION CapabilityInformation;
} CSR_MLME_SM_START_REQUEST;

typedef struct CSR_MLME_START_AGGREGATION_CONFIRM
{
    CSR_DATAREF         Dummydataref1;
    CSR_DATAREF         Dummydataref2;
    CSR_VIF_IDENTIFIER  VirtualInterfaceIdentifier;
    CSR_MACADDRESS      PeerQstaAddress;
    CSR_PRIORITY        UserPriority;
    CSR_DIRECTION       Direction;
    CSR_RESULT_CODE     ResultCode;
    CSR_SEQUENCE_NUMBER SequenceNumber;
} CSR_MLME_START_AGGREGATION_CONFIRM;

typedef struct CSR_MLME_START_AGGREGATION_REQUEST
{
    CSR_DATAREF                  Dummydataref1;
    CSR_DATAREF                  Dummydataref2;
    CSR_VIF_IDENTIFIER           VirtualInterfaceIdentifier;
    CSR_MACADDRESS               PeerQstaAddress;
    CSR_PRIORITY                 UserPriority;
    CSR_DIRECTION                Direction;
    CSR_STARTING_SEQUENCE_NUMBER StartingSequenceNumber;
    CSR_NATURAL16                BufferSize;
    CSR_TIME_UNITS               BlockAckTimeout;
} CSR_MLME_START_AGGREGATION_REQUEST;

typedef struct CSR_MLME_STOP_AGGREGATION_CONFIRM
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_MACADDRESS     PeerQstaAddress;
    CSR_PRIORITY       UserPriority;
    CSR_DIRECTION      Direction;
    CSR_RESULT_CODE    ResultCode;
} CSR_MLME_STOP_AGGREGATION_CONFIRM;

typedef struct CSR_MLME_STOP_AGGREGATION_REQUEST
{
    CSR_DATAREF        Dummydataref1;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_MACADDRESS     PeerQstaAddress;
    CSR_PRIORITY       UserPriority;
    CSR_DIRECTION      Direction;
} CSR_MLME_STOP_AGGREGATION_REQUEST;

typedef struct CSR_MLME_TRIGGERED_GET_INDICATION
{
    CSR_DATAREF        MibAttributeValue;
    CSR_DATAREF        Dummydataref2;
    CSR_VIF_IDENTIFIER VirtualInterfaceIdentifier;
    CSR_MIB_STATUS     Status;
    CSR_NATURAL16      ErrorIndex;
    CSR_TRIGGERED_ID   TriggeredId;
} CSR_MLME_TRIGGERED_GET_INDICATION;

typedef struct CSR_SIGNAL_PRIMITIVE
{
    CSR_SIGNAL_PRIMITIVE_HEADER SignalPrimitiveHeader;
    union
    {
        CSR_MA_PACKET_REQUEST                    MaPacketRequest;
        CSR_MA_PACKET_CONFIRM                    MaPacketConfirm;
        CSR_MA_PACKET_INDICATION                 MaPacketIndication;
        CSR_MA_PACKET_CANCEL_REQUEST             MaPacketCancelRequest;
        CSR_MA_VIF_AVAILABILITY_RESPONSE         MaVifAvailabilityResponse;
        CSR_MA_VIF_AVAILABILITY_INDICATION       MaVifAvailabilityIndication;
        CSR_MA_PACKET_ERROR_INDICATION           MaPacketErrorIndication;
        CSR_MLME_RESET_REQUEST                   MlmeResetRequest;
        CSR_MLME_RESET_CONFIRM                   MlmeResetConfirm;
        CSR_MLME_GET_REQUEST                     MlmeGetRequest;
        CSR_MLME_GET_CONFIRM                     MlmeGetConfirm;
        CSR_MLME_SET_REQUEST                     MlmeSetRequest;
        CSR_MLME_SET_CONFIRM                     MlmeSetConfirm;
        CSR_MLME_GET_NEXT_REQUEST                MlmeGetNextRequest;
        CSR_MLME_GET_NEXT_CONFIRM                MlmeGetNextConfirm;
        CSR_MLME_POWERMGT_REQUEST                MlmePowermgtRequest;
        CSR_MLME_POWERMGT_CONFIRM                MlmePowermgtConfirm;
        CSR_MLME_SCAN_REQUEST                    MlmeScanRequest;
        CSR_MLME_SCAN_CONFIRM                    MlmeScanConfirm;
        CSR_MLME_HL_SYNC_REQUEST                 MlmeHlSyncRequest;
        CSR_MLME_HL_SYNC_CONFIRM                 MlmeHlSyncConfirm;
        CSR_MLME_MEASURE_REQUEST                 MlmeMeasureRequest;
        CSR_MLME_MEASURE_CONFIRM                 MlmeMeasureConfirm;
        CSR_MLME_MEASURE_INDICATION              MlmeMeasureIndication;
        CSR_MLME_SETKEYS_REQUEST                 MlmeSetkeysRequest;
        CSR_MLME_SETKEYS_CONFIRM                 MlmeSetkeysConfirm;
        CSR_MLME_DELETEKEYS_REQUEST              MlmeDeletekeysRequest;
        CSR_MLME_DELETEKEYS_CONFIRM              MlmeDeletekeysConfirm;
        CSR_MLME_AUTONOMOUS_SCAN_LOSS_INDICATION MlmeAutonomousScanLossIndication;
        CSR_MLME_CONNECTED_INDICATION            MlmeConnectedIndication;
        CSR_MLME_SCAN_CANCEL_REQUEST             MlmeScanCancelRequest;
        CSR_MLME_HL_SYNC_CANCEL_REQUEST          MlmeHlSyncCancelRequest;
        CSR_MLME_HL_SYNC_CANCEL_CONFIRM          MlmeHlSyncCancelConfirm;
        CSR_MLME_ADD_PERIODIC_REQUEST            MlmeAddPeriodicRequest;
        CSR_MLME_ADD_PERIODIC_CONFIRM            MlmeAddPeriodicConfirm;
        CSR_MLME_DEL_PERIODIC_REQUEST            MlmeDelPeriodicRequest;
        CSR_MLME_DEL_PERIODIC_CONFIRM            MlmeDelPeriodicConfirm;
        CSR_MLME_ADD_AUTONOMOUS_SCAN_REQUEST     MlmeAddAutonomousScanRequest;
        CSR_MLME_ADD_AUTONOMOUS_SCAN_CONFIRM     MlmeAddAutonomousScanConfirm;
        CSR_MLME_DEL_AUTONOMOUS_SCAN_REQUEST     MlmeDelAutonomousScanRequest;
        CSR_MLME_DEL_AUTONOMOUS_SCAN_CONFIRM     MlmeDelAutonomousScanConfirm;
        CSR_MLME_SET_PACKET_FILTER_REQUEST       MlmeSetPacketFilterRequest;
        CSR_MLME_SET_PACKET_FILTER_CONFIRM       MlmeSetPacketFilterConfirm;
        CSR_MLME_STOP_MEASURE_REQUEST            MlmeStopMeasureRequest;
        CSR_MLME_STOP_MEASURE_CONFIRM            MlmeStopMeasureConfirm;
        CSR_MLME_PAUSE_AUTONOMOUS_SCAN_REQUEST   MlmePauseAutonomousScanRequest;
        CSR_MLME_PAUSE_AUTONOMOUS_SCAN_CONFIRM   MlmePauseAutonomousScanConfirm;
        CSR_MLME_AUTONOMOUS_SCAN_DONE_INDICATION MlmeAutonomousScanDoneIndication;
        CSR_MLME_ADD_TRIGGERED_GET_REQUEST       MlmeAddTriggeredGetRequest;
        CSR_MLME_ADD_TRIGGERED_GET_CONFIRM       MlmeAddTriggeredGetConfirm;
        CSR_MLME_DEL_TRIGGERED_GET_REQUEST       MlmeDelTriggeredGetRequest;
        CSR_MLME_DEL_TRIGGERED_GET_CONFIRM       MlmeDelTriggeredGetConfirm;
        CSR_MLME_TRIGGERED_GET_INDICATION        MlmeTriggeredGetIndication;
        CSR_MLME_ADD_BLACKOUT_REQUEST            MlmeAddBlackoutRequest;
        CSR_MLME_ADD_BLACKOUT_CONFIRM            MlmeAddBlackoutConfirm;
        CSR_MLME_BLACKOUT_ENDED_INDICATION       MlmeBlackoutEndedIndication;
        CSR_MLME_DEL_BLACKOUT_REQUEST            MlmeDelBlackoutRequest;
        CSR_MLME_DEL_BLACKOUT_CONFIRM            MlmeDelBlackoutConfirm;
        CSR_MLME_ADD_RX_TRIGGER_REQUEST          MlmeAddRxTriggerRequest;
        CSR_MLME_ADD_RX_TRIGGER_CONFIRM          MlmeAddRxTriggerConfirm;
        CSR_MLME_DEL_RX_TRIGGER_REQUEST          MlmeDelRxTriggerRequest;
        CSR_MLME_DEL_RX_TRIGGER_CONFIRM          MlmeDelRxTriggerConfirm;
        CSR_MLME_CONNECT_STATUS_REQUEST          MlmeConnectStatusRequest;
        CSR_MLME_CONNECT_STATUS_CONFIRM          MlmeConnectStatusConfirm;
        CSR_MLME_MODIFY_BSS_PARAMETER_REQUEST    MlmeModifyBssParameterRequest;
        CSR_MLME_MODIFY_BSS_PARAMETER_CONFIRM    MlmeModifyBssParameterConfirm;
        CSR_MLME_ADD_TEMPLATE_REQUEST            MlmeAddTemplateRequest;
        CSR_MLME_ADD_TEMPLATE_CONFIRM            MlmeAddTemplateConfirm;
        CSR_MLME_CONFIG_QUEUE_REQUEST            MlmeConfigQueueRequest;
        CSR_MLME_CONFIG_QUEUE_CONFIRM            MlmeConfigQueueConfirm;
        CSR_MLME_ADD_TSPEC_REQUEST               MlmeAddTspecRequest;
        CSR_MLME_ADD_TSPEC_CONFIRM               MlmeAddTspecConfirm;
        CSR_MLME_DEL_TSPEC_REQUEST               MlmeDelTspecRequest;
        CSR_MLME_DEL_TSPEC_CONFIRM               MlmeDelTspecConfirm;
        CSR_MLME_START_AGGREGATION_REQUEST       MlmeStartAggregationRequest;
        CSR_MLME_START_AGGREGATION_CONFIRM       MlmeStartAggregationConfirm;
        CSR_MLME_BLOCKACK_ERROR_INDICATION       MlmeBlockackErrorIndication;
        CSR_MLME_STOP_AGGREGATION_REQUEST        MlmeStopAggregationRequest;
        CSR_MLME_STOP_AGGREGATION_CONFIRM        MlmeStopAggregationConfirm;
        CSR_MLME_SM_START_REQUEST                MlmeSmStartRequest;
        CSR_MLME_SM_START_CONFIRM                MlmeSmStartConfirm;
        CSR_MLME_LEAVE_REQUEST                   MlmeLeaveRequest;
        CSR_MLME_LEAVE_CONFIRM                   MlmeLeaveConfirm;
        CSR_MLME_SET_TIM_REQUEST                 MlmeSetTimRequest;
        CSR_MLME_SET_TIM_CONFIRM                 MlmeSetTimConfirm;
        CSR_MLME_GET_KEY_SEQUENCE_REQUEST        MlmeGetKeySequenceRequest;
        CSR_MLME_GET_KEY_SEQUENCE_CONFIRM        MlmeGetKeySequenceConfirm;
        CSR_MLME_SET_CHANNEL_REQUEST             MlmeSetChannelRequest;
        CSR_MLME_SET_CHANNEL_CONFIRM             MlmeSetChannelConfirm;
        CSR_MLME_ADD_MULTICAST_ADDRESS_REQUEST   MlmeAddMulticastAddressRequest;
        CSR_MLME_ADD_MULTICAST_ADDRESS_CONFIRM   MlmeAddMulticastAddressConfirm;
        CSR_DEBUG_STRING_INDICATION              DebugStringIndication;
        CSR_DEBUG_WORD16_INDICATION              DebugWord16Indication;
        CSR_DEBUG_GENERIC_REQUEST                DebugGenericRequest;
        CSR_DEBUG_GENERIC_CONFIRM                DebugGenericConfirm;
        CSR_DEBUG_GENERIC_INDICATION             DebugGenericIndication;
    } u;
} CSR_SIGNAL;

#define SIG_FILTER_SIZE 6

u32 SigGetFilterPos(u16 aSigID);

#endif
