// Copyright (c) 2013 Qualcomm Atheros, Inc.  All rights reserved.
// $ATH_LICENSE_HW_HDR_C$
//
// DO NOT EDIT!  This file is automatically generated
//               These definitions are tied to a particular hardware layout


#ifndef _MPROT_SS_11N_INFO_H_
#define _MPROT_SS_11N_INFO_H_
#if !defined(__ASSEMBLER__)
#endif

// ################ START SUMMARY #################
//
//	Dword	Fields
//	0	struct l_sig_a l_sig_a_bw20;
//	1	struct l_sig_a l_sig_a_bw40;
//	2-3	struct ht_sig ht_sig_bw20;
//	4-5	struct ht_sig ht_sig_bw40;
//	6	struct tx_service tx_service_bw20;
//	7	struct tx_service tx_service_bw40;
//	8	duration_bw20[15:0], duration_bw40[31:16]
//
// ################ END SUMMARY #################

#define NUM_OF_DWORDS_MPROT_SS_11N_INFO 9

struct mprot_ss_11n_info {
    struct            l_sig_a                       l_sig_a_bw20;
    struct            l_sig_a                       l_sig_a_bw40;
    struct            ht_sig                       ht_sig_bw20;
    struct            ht_sig                       ht_sig_bw40;
    struct            tx_service                       tx_service_bw20;
    struct            tx_service                       tx_service_bw40;
    volatile uint32_t duration_bw20                   : 16, //[15:0]
                      duration_bw40                   : 16; //[31:16]
};

/*

struct l_sig_a l_sig_a_bw20
			
			This field has exactly the same contents as the L_SIG_A
			TLV (without the tag/length word)

struct l_sig_a l_sig_a_bw40
			
			This field has exactly the same contents as the L_SIG_A
			TLV (without the tag/length word)

struct ht_sig ht_sig_bw20
			
			HT SIG field setting for 20 MHz transmission
			
			This field has exactly the same contents as the HT_SIG
			TLV (without the tag/length word)

struct ht_sig ht_sig_bw40
			
			HT SIG field setting for 40 MHz transmission
			
			This field has exactly the same contents as the HT_SIG
			TLV (without the tag/length word)

struct tx_service tx_service_bw20
			
			HT SERVICE field setting for 20 MHz transmission
			
			This field has exactly the same contents as the
			TX_SERVICE TLV (without the tag/length word)

struct tx_service tx_service_bw40
			
			HT SERVICE field setting for 40 MHz transmission
			
			This field has exactly the same contents as the
			TX_SERVICE TLV (without the tag/length word)

duration_bw20
			
			Duration in the generated RTS/CTS frame for 20 MHz
			transmission.

duration_bw40
			
			Duration in the generated RTS/CTS frame for 40 MHz
			transmission.
*/

#define MPROT_SS_11N_INFO_0_L_SIG_A_L_SIG_A_BW20_OFFSET              0x00000000
#define MPROT_SS_11N_INFO_0_L_SIG_A_L_SIG_A_BW20_LSB                 16
#define MPROT_SS_11N_INFO_0_L_SIG_A_L_SIG_A_BW20_MASK                0xffffffff
#define MPROT_SS_11N_INFO_1_L_SIG_A_L_SIG_A_BW40_OFFSET              0x00000004
#define MPROT_SS_11N_INFO_1_L_SIG_A_L_SIG_A_BW40_LSB                 16
#define MPROT_SS_11N_INFO_1_L_SIG_A_L_SIG_A_BW40_MASK                0xffffffff
#define MPROT_SS_11N_INFO_2_HT_SIG_HT_SIG_BW20_OFFSET                0x00000008
#define MPROT_SS_11N_INFO_2_HT_SIG_HT_SIG_BW20_LSB                   16
#define MPROT_SS_11N_INFO_2_HT_SIG_HT_SIG_BW20_MASK                  0xffffffff
#define MPROT_SS_11N_INFO_3_HT_SIG_HT_SIG_BW20_OFFSET                0x0000000c
#define MPROT_SS_11N_INFO_3_HT_SIG_HT_SIG_BW20_LSB                   16
#define MPROT_SS_11N_INFO_3_HT_SIG_HT_SIG_BW20_MASK                  0xffffffff
#define MPROT_SS_11N_INFO_4_HT_SIG_HT_SIG_BW40_OFFSET                0x00000010
#define MPROT_SS_11N_INFO_4_HT_SIG_HT_SIG_BW40_LSB                   16
#define MPROT_SS_11N_INFO_4_HT_SIG_HT_SIG_BW40_MASK                  0xffffffff
#define MPROT_SS_11N_INFO_5_HT_SIG_HT_SIG_BW40_OFFSET                0x00000014
#define MPROT_SS_11N_INFO_5_HT_SIG_HT_SIG_BW40_LSB                   16
#define MPROT_SS_11N_INFO_5_HT_SIG_HT_SIG_BW40_MASK                  0xffffffff
#define MPROT_SS_11N_INFO_6_TX_SERVICE_TX_SERVICE_BW20_OFFSET        0x00000018
#define MPROT_SS_11N_INFO_6_TX_SERVICE_TX_SERVICE_BW20_LSB           16
#define MPROT_SS_11N_INFO_6_TX_SERVICE_TX_SERVICE_BW20_MASK          0xffffffff
#define MPROT_SS_11N_INFO_7_TX_SERVICE_TX_SERVICE_BW40_OFFSET        0x0000001c
#define MPROT_SS_11N_INFO_7_TX_SERVICE_TX_SERVICE_BW40_LSB           16
#define MPROT_SS_11N_INFO_7_TX_SERVICE_TX_SERVICE_BW40_MASK          0xffffffff

/* Description		MPROT_SS_11N_INFO_8_DURATION_BW20
			
			Duration in the generated RTS/CTS frame for 20 MHz
			transmission.
*/
#define MPROT_SS_11N_INFO_8_DURATION_BW20_OFFSET                     0x00000020
#define MPROT_SS_11N_INFO_8_DURATION_BW20_LSB                        0
#define MPROT_SS_11N_INFO_8_DURATION_BW20_MASK                       0x0000ffff

/* Description		MPROT_SS_11N_INFO_8_DURATION_BW40
			
			Duration in the generated RTS/CTS frame for 40 MHz
			transmission.
*/
#define MPROT_SS_11N_INFO_8_DURATION_BW40_OFFSET                     0x00000020
#define MPROT_SS_11N_INFO_8_DURATION_BW40_LSB                        16
#define MPROT_SS_11N_INFO_8_DURATION_BW40_MASK                       0xffff0000


#endif // _MPROT_SS_11N_INFO_H_
