/*
 * Copyright (c) 2018 The Linux Foundation. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
 * above copyright notice and this permission notice appear in all
 * copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 * PERFORMANCE OF THIS SOFTWARE.
 */

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

#include "uniform_reo_cmd_header.h"

// ################ START SUMMARY #################
//
//	Dword	Fields
//	0	struct uniform_reo_cmd_header cmd_header;
//	1	rx_reo_queue_desc_addr_31_0[31:0]
//	2	rx_reo_queue_desc_addr_39_32[7:0], update_receive_queue_number[8], update_vld[9], update_associated_link_descriptor_counter[10], update_disable_duplicate_detection[11], update_soft_reorder_enable[12], update_ac[13], update_bar[14], update_rty[15], update_chk_2k_mode[16], update_oor_mode[17], update_ba_window_size[18], update_pn_check_needed[19], update_pn_shall_be_even[20], update_pn_shall_be_uneven[21], update_pn_handling_enable[22], update_pn_size[23], update_ignore_ampdu_flag[24], update_svld[25], update_ssn[26], update_seq_2k_error_detected_flag[27], update_pn_error_detected_flag[28], update_pn_valid[29], update_pn[30], clear_stat_counters[31]
//	3	receive_queue_number[15:0], vld[16], associated_link_descriptor_counter[18:17], disable_duplicate_detection[19], soft_reorder_enable[20], ac[22:21], bar[23], rty[24], chk_2k_mode[25], oor_mode[26], pn_check_needed[27], pn_shall_be_even[28], pn_shall_be_uneven[29], pn_handling_enable[30], ignore_ampdu_flag[31]
//	4	ba_window_size[7:0], pn_size[9:8], svld[10], ssn[22:11], seq_2k_error_detected_flag[23], pn_error_detected_flag[24], pn_valid[25], flush_from_cache[26], reserved_4a[31:27]
//	5	pn_31_0[31:0]
//	6	pn_63_32[31:0]
//	7	pn_95_64[31:0]
//	8	pn_127_96[31:0]
//
// ################ END SUMMARY #################

#define NUM_OF_DWORDS_REO_UPDATE_RX_REO_QUEUE 9

struct reo_update_rx_reo_queue {
    struct            uniform_reo_cmd_header                       cmd_header;
             uint32_t rx_reo_queue_desc_addr_31_0     : 32; //[31:0]
             uint32_t rx_reo_queue_desc_addr_39_32    :  8, //[7:0]
                      update_receive_queue_number     :  1, //[8]
                      update_vld                      :  1, //[9]
                      update_associated_link_descriptor_counter:  1, //[10]
                      update_disable_duplicate_detection:  1, //[11]
                      update_soft_reorder_enable      :  1, //[12]
                      update_ac                       :  1, //[13]
                      update_bar                      :  1, //[14]
                      update_rty                      :  1, //[15]
                      update_chk_2k_mode              :  1, //[16]
                      update_oor_mode                 :  1, //[17]
                      update_ba_window_size           :  1, //[18]
                      update_pn_check_needed          :  1, //[19]
                      update_pn_shall_be_even         :  1, //[20]
                      update_pn_shall_be_uneven       :  1, //[21]
                      update_pn_handling_enable       :  1, //[22]
                      update_pn_size                  :  1, //[23]
                      update_ignore_ampdu_flag        :  1, //[24]
                      update_svld                     :  1, //[25]
                      update_ssn                      :  1, //[26]
                      update_seq_2k_error_detected_flag:  1, //[27]
                      update_pn_error_detected_flag   :  1, //[28]
                      update_pn_valid                 :  1, //[29]
                      update_pn                       :  1, //[30]
                      clear_stat_counters             :  1; //[31]
             uint32_t receive_queue_number            : 16, //[15:0]
                      vld                             :  1, //[16]
                      associated_link_descriptor_counter:  2, //[18:17]
                      disable_duplicate_detection     :  1, //[19]
                      soft_reorder_enable             :  1, //[20]
                      ac                              :  2, //[22:21]
                      bar                             :  1, //[23]
                      rty                             :  1, //[24]
                      chk_2k_mode                     :  1, //[25]
                      oor_mode                        :  1, //[26]
                      pn_check_needed                 :  1, //[27]
                      pn_shall_be_even                :  1, //[28]
                      pn_shall_be_uneven              :  1, //[29]
                      pn_handling_enable              :  1, //[30]
                      ignore_ampdu_flag               :  1; //[31]
             uint32_t ba_window_size                  :  8, //[7:0]
                      pn_size                         :  2, //[9:8]
                      svld                            :  1, //[10]
                      ssn                             : 12, //[22:11]
                      seq_2k_error_detected_flag      :  1, //[23]
                      pn_error_detected_flag          :  1, //[24]
                      pn_valid                        :  1, //[25]
                      flush_from_cache                :  1, //[26]
                      reserved_4a                     :  5; //[31:27]
             uint32_t pn_31_0                         : 32; //[31:0]
             uint32_t pn_63_32                        : 32; //[31:0]
             uint32_t pn_95_64                        : 32; //[31:0]
             uint32_t pn_127_96                       : 32; //[31:0]
};

/*

struct uniform_reo_cmd_header cmd_header
			
			Consumer: REO
			
			Producer: SW
			
			
			
			Details for command execution tracking purposes.

rx_reo_queue_desc_addr_31_0
			
			Consumer: REO
			
			Producer: SW
			
			
			
			Address (lower 32 bits) of the REO queue descriptor
			
			<legal all>

rx_reo_queue_desc_addr_39_32
			
			Consumer: REO
			
			Producer: SW
			
			
			
			Address (upper 8 bits) of the REO queue descriptor
			
			<legal all>

update_receive_queue_number
			
			Consumer: REO
			
			Producer: SW
			
			When set, receive_queue_number from this command will be
			updated in the descriptor.
			
			<legal all>

update_vld
			
			Consumer: REO
			
			Producer: SW
			
			
			
			When clear, REO will NOT update the VLD bit setting. For
			this setting, SW MUST set the Flush_from_cache bit in this
			command.
			
			
			
			When set, VLD from this command will be updated in the
			descriptor.
			
			<legal all>

update_associated_link_descriptor_counter
			
			Consumer: REO
			
			Producer: SW
			
			When set, Associated_link_descriptor_counter from this
			command will be updated in the descriptor.
			
			<legal all>

update_disable_duplicate_detection
			
			Consumer: REO
			
			Producer: SW
			
			When set, Disable_duplicate_detection from this command
			will be updated in the descriptor.
			
			<legal all>

update_soft_reorder_enable
			
			Consumer: REO
			
			Producer: SW
			
			When set, Soft_reorder_enable from this command will be
			updated in the descriptor.
			
			<legal all>

update_ac
			
			Consumer: REO
			
			Producer: SW
			
			When set, AC from this command will be updated in the
			descriptor.
			
			<legal all>

update_bar
			
			Consumer: REO
			
			Producer: SW
			
			When set, BAR from this command will be updated in the
			descriptor.
			
			<legal all>

update_rty
			
			Consumer: REO
			
			Producer: SW
			
			When set, RTY from this command will be updated in the
			descriptor.
			
			<legal all>

update_chk_2k_mode
			
			Consumer: REO
			
			Producer: SW
			
			When set, Chk_2k_mode from this command will be updated
			in the descriptor.
			
			<legal all>

update_oor_mode
			
			Consumer: REO
			
			Producer: SW
			
			When set, OOR_Mode from this command will be updated in
			the descriptor.
			
			<legal all>

update_ba_window_size
			
			Consumer: REO
			
			Producer: SW
			
			When set, BA_window_size from this command will be
			updated in the descriptor.
			
			<legal all>

update_pn_check_needed
			
			Consumer: REO
			
			Producer: SW
			
			When set, Pn_check_needed from this command will be
			updated in the descriptor.
			
			<legal all>

update_pn_shall_be_even
			
			Consumer: REO
			
			Producer: SW
			
			When set, Pn_shall_be_even from this command will be
			updated in the descriptor.
			
			<legal all>

update_pn_shall_be_uneven
			
			Consumer: REO
			
			Producer: SW
			
			When set, Pn_shall_be_uneven from this command will be
			updated in the descriptor.
			
			<legal all>

update_pn_handling_enable
			
			Consumer: REO
			
			Producer: SW
			
			When set, Pn_handling_enable from this command will be
			updated in the descriptor.
			
			<legal all>

update_pn_size
			
			Consumer: REO
			
			Producer: SW
			
			When set, Pn_size from this command will be updated in
			the descriptor.
			
			<legal all>

update_ignore_ampdu_flag
			
			Consumer: REO
			
			Producer: SW
			
			When set, Ignore_ampdu_flag from this command will be
			updated in the descriptor.
			
			<legal all>

update_svld
			
			Consumer: REO
			
			Producer: SW
			
			When set, Svld from this command will be updated in the
			descriptor.
			
			<legal all>

update_ssn
			
			Consumer: REO
			
			Producer: SW
			
			When set, SSN from this command will be updated in the
			descriptor.
			
			<legal all>

update_seq_2k_error_detected_flag
			
			Consumer: REO
			
			Producer: SW
			
			When set, Seq_2k_error_detected_flag from this command
			will be updated in the descriptor.
			
			<legal all>

update_pn_error_detected_flag
			
			Consumer: REO
			
			Producer: SW
			
			When set, pn_error_detected_flag from this command will
			be updated in the descriptor.
			
			<legal all>

update_pn_valid
			
			Consumer: REO
			
			Producer: SW
			
			When set, pn_valid from this command will be updated in
			the descriptor.
			
			<legal all>

update_pn
			
			Consumer: REO
			
			Producer: SW
			
			When set, all pn_... fields from this command will be
			updated in the descriptor.
			
			<legal all>

clear_stat_counters
			
			Consumer: REO
			
			Producer: SW
			
			When set, REO will clear (=> set to 0) the following
			stat counters in the REO_QUEUE_STRUCT
			
			
			
			Last_rx_enqueue_TimeStamp
			
			Last_rx_dequeue_Timestamp
			
			Rx_bitmap (not a counter, but bitmap is cleared)
			
			Timeout_count
			
			Forward_due_to_bar_count
			
			Duplicate_count
			
			Frames_in_order_count
			
			BAR_received_count
			
			MPDU_Frames_processed_count
			
			MSDU_Frames_processed_count
			
			Total_processed_byte_count
			
			Late_receive_MPDU_count
			
			window_jump_2k
			
			Hole_count
			
			
			
			<legal all>

receive_queue_number
			
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

vld
			
			Field only valid when Update_VLD is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

associated_link_descriptor_counter
			
			Field only valid when
			Update_Associated_link_descriptor_counter is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

disable_duplicate_detection
			
			Field only valid when Update_Disable_duplicate_detection
			is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

soft_reorder_enable
			
			Field only valid when Update_Soft_reorder_enable is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

ac
			
			Field only valid when Update_AC is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

bar
			
			Field only valid when Update_BAR is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

rty
			
			Field only valid when Update_RTY is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

chk_2k_mode
			
			Field only valid when Update_Chk_2k_Mode is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

oor_mode
			
			Field only valid when Update_OOR_Mode is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

pn_check_needed
			
			Field only valid when Update_Pn_check_needed is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

pn_shall_be_even
			
			Field only valid when Update_Pn_shall_be_even is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

pn_shall_be_uneven
			
			Field only valid when Update_Pn_shall_be_uneven is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

pn_handling_enable
			
			Field only valid when Update_Pn_handling_enable is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

ignore_ampdu_flag
			
			Field only valid when Update_Ignore_ampdu_flag is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

ba_window_size
			
			Field only valid when Update_BA_window_size is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

pn_size
			
			Field only valid when Update_Pn_size is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			
			
			<enum 0     pn_size_24>
			
			<enum 1     pn_size_48>
			
			<enum 2     pn_size_128>
			
			
			
			<legal 0-2>

svld
			
			Field only valid when Update_Svld is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

ssn
			
			Field only valid when Update_SSN is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

seq_2k_error_detected_flag
			
			Field only valid when Update_Seq_2k_error_detected_flag
			is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

pn_error_detected_flag
			
			Field only valid when Update_pn_error_detected_flag is
			set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

pn_valid
			
			Field only valid when Update_pn_valid is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

flush_from_cache
			
			When set, REO shall, after finishing the execution of
			this command, flush the related descriptor from the cache.
			
			<legal all>

reserved_4a
			
			<legal 0>

pn_31_0
			
			Field only valid when Update_Pn is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

pn_63_32
			
			Field only valid when Update_pn is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

pn_95_64
			
			Field only valid when Update_pn is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>

pn_127_96
			
			Field only valid when Update_pn is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/

#define REO_UPDATE_RX_REO_QUEUE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_OFFSET 0x00000000
#define REO_UPDATE_RX_REO_QUEUE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_LSB 0
#define REO_UPDATE_RX_REO_QUEUE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_MASK 0xffffffff

/* Description		REO_UPDATE_RX_REO_QUEUE_1_RX_REO_QUEUE_DESC_ADDR_31_0
			
			Consumer: REO
			
			Producer: SW
			
			
			
			Address (lower 32 bits) of the REO queue descriptor
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_1_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET 0x00000004
#define REO_UPDATE_RX_REO_QUEUE_1_RX_REO_QUEUE_DESC_ADDR_31_0_LSB    0
#define REO_UPDATE_RX_REO_QUEUE_1_RX_REO_QUEUE_DESC_ADDR_31_0_MASK   0xffffffff

/* Description		REO_UPDATE_RX_REO_QUEUE_2_RX_REO_QUEUE_DESC_ADDR_39_32
			
			Consumer: REO
			
			Producer: SW
			
			
			
			Address (upper 8 bits) of the REO queue descriptor
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_RX_REO_QUEUE_DESC_ADDR_39_32_LSB   0
#define REO_UPDATE_RX_REO_QUEUE_2_RX_REO_QUEUE_DESC_ADDR_39_32_MASK  0x000000ff

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RECEIVE_QUEUE_NUMBER
			
			Consumer: REO
			
			Producer: SW
			
			When set, receive_queue_number from this command will be
			updated in the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RECEIVE_QUEUE_NUMBER_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RECEIVE_QUEUE_NUMBER_LSB    8
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RECEIVE_QUEUE_NUMBER_MASK   0x00000100

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_VLD
			
			Consumer: REO
			
			Producer: SW
			
			
			
			When clear, REO will NOT update the VLD bit setting. For
			this setting, SW MUST set the Flush_from_cache bit in this
			command.
			
			
			
			When set, VLD from this command will be updated in the
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_VLD_OFFSET                  0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_VLD_LSB                     9
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_VLD_MASK                    0x00000200

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER
			
			Consumer: REO
			
			Producer: SW
			
			When set, Associated_link_descriptor_counter from this
			command will be updated in the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_LSB 10
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MASK 0x00000400

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_DISABLE_DUPLICATE_DETECTION
			
			Consumer: REO
			
			Producer: SW
			
			When set, Disable_duplicate_detection from this command
			will be updated in the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_DISABLE_DUPLICATE_DETECTION_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_DISABLE_DUPLICATE_DETECTION_LSB 11
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_DISABLE_DUPLICATE_DETECTION_MASK 0x00000800

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SOFT_REORDER_ENABLE
			
			Consumer: REO
			
			Producer: SW
			
			When set, Soft_reorder_enable from this command will be
			updated in the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SOFT_REORDER_ENABLE_OFFSET  0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SOFT_REORDER_ENABLE_LSB     12
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SOFT_REORDER_ENABLE_MASK    0x00001000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_AC
			
			Consumer: REO
			
			Producer: SW
			
			When set, AC from this command will be updated in the
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_AC_OFFSET                   0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_AC_LSB                      13
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_AC_MASK                     0x00002000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BAR
			
			Consumer: REO
			
			Producer: SW
			
			When set, BAR from this command will be updated in the
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BAR_OFFSET                  0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BAR_LSB                     14
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BAR_MASK                    0x00004000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RTY
			
			Consumer: REO
			
			Producer: SW
			
			When set, RTY from this command will be updated in the
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RTY_OFFSET                  0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RTY_LSB                     15
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RTY_MASK                    0x00008000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_CHK_2K_MODE
			
			Consumer: REO
			
			Producer: SW
			
			When set, Chk_2k_mode from this command will be updated
			in the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_CHK_2K_MODE_OFFSET          0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_CHK_2K_MODE_LSB             16
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_CHK_2K_MODE_MASK            0x00010000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_OOR_MODE
			
			Consumer: REO
			
			Producer: SW
			
			When set, OOR_Mode from this command will be updated in
			the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_OOR_MODE_OFFSET             0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_OOR_MODE_LSB                17
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_OOR_MODE_MASK               0x00020000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BA_WINDOW_SIZE
			
			Consumer: REO
			
			Producer: SW
			
			When set, BA_window_size from this command will be
			updated in the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BA_WINDOW_SIZE_OFFSET       0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BA_WINDOW_SIZE_LSB          18
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BA_WINDOW_SIZE_MASK         0x00040000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_CHECK_NEEDED
			
			Consumer: REO
			
			Producer: SW
			
			When set, Pn_check_needed from this command will be
			updated in the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_CHECK_NEEDED_OFFSET      0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_CHECK_NEEDED_LSB         19
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_CHECK_NEEDED_MASK        0x00080000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_EVEN
			
			Consumer: REO
			
			Producer: SW
			
			When set, Pn_shall_be_even from this command will be
			updated in the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_EVEN_OFFSET     0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_EVEN_LSB        20
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_EVEN_MASK       0x00100000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_UNEVEN
			
			Consumer: REO
			
			Producer: SW
			
			When set, Pn_shall_be_uneven from this command will be
			updated in the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_UNEVEN_OFFSET   0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_UNEVEN_LSB      21
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_UNEVEN_MASK     0x00200000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_HANDLING_ENABLE
			
			Consumer: REO
			
			Producer: SW
			
			When set, Pn_handling_enable from this command will be
			updated in the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_HANDLING_ENABLE_OFFSET   0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_HANDLING_ENABLE_LSB      22
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_HANDLING_ENABLE_MASK     0x00400000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SIZE
			
			Consumer: REO
			
			Producer: SW
			
			When set, Pn_size from this command will be updated in
			the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SIZE_OFFSET              0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SIZE_LSB                 23
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SIZE_MASK                0x00800000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_IGNORE_AMPDU_FLAG
			
			Consumer: REO
			
			Producer: SW
			
			When set, Ignore_ampdu_flag from this command will be
			updated in the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_IGNORE_AMPDU_FLAG_OFFSET    0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_IGNORE_AMPDU_FLAG_LSB       24
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_IGNORE_AMPDU_FLAG_MASK      0x01000000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SVLD
			
			Consumer: REO
			
			Producer: SW
			
			When set, Svld from this command will be updated in the
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SVLD_OFFSET                 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SVLD_LSB                    25
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SVLD_MASK                   0x02000000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SSN
			
			Consumer: REO
			
			Producer: SW
			
			When set, SSN from this command will be updated in the
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SSN_OFFSET                  0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SSN_LSB                     26
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SSN_MASK                    0x04000000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG
			
			Consumer: REO
			
			Producer: SW
			
			When set, Seq_2k_error_detected_flag from this command
			will be updated in the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_LSB 27
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_MASK 0x08000000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_ERROR_DETECTED_FLAG
			
			Consumer: REO
			
			Producer: SW
			
			When set, pn_error_detected_flag from this command will
			be updated in the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_ERROR_DETECTED_FLAG_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_ERROR_DETECTED_FLAG_LSB  28
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_ERROR_DETECTED_FLAG_MASK 0x10000000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_VALID
			
			Consumer: REO
			
			Producer: SW
			
			When set, pn_valid from this command will be updated in
			the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_VALID_OFFSET             0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_VALID_LSB                29
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_VALID_MASK               0x20000000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN
			
			Consumer: REO
			
			Producer: SW
			
			When set, all pn_... fields from this command will be
			updated in the descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_OFFSET                   0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_LSB                      30
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_MASK                     0x40000000

/* Description		REO_UPDATE_RX_REO_QUEUE_2_CLEAR_STAT_COUNTERS
			
			Consumer: REO
			
			Producer: SW
			
			When set, REO will clear (=> set to 0) the following
			stat counters in the REO_QUEUE_STRUCT
			
			
			
			Last_rx_enqueue_TimeStamp
			
			Last_rx_dequeue_Timestamp
			
			Rx_bitmap (not a counter, but bitmap is cleared)
			
			Timeout_count
			
			Forward_due_to_bar_count
			
			Duplicate_count
			
			Frames_in_order_count
			
			BAR_received_count
			
			MPDU_Frames_processed_count
			
			MSDU_Frames_processed_count
			
			Total_processed_byte_count
			
			Late_receive_MPDU_count
			
			window_jump_2k
			
			Hole_count
			
			
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_CLEAR_STAT_COUNTERS_OFFSET         0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_CLEAR_STAT_COUNTERS_LSB            31
#define REO_UPDATE_RX_REO_QUEUE_2_CLEAR_STAT_COUNTERS_MASK           0x80000000

/* Description		REO_UPDATE_RX_REO_QUEUE_3_RECEIVE_QUEUE_NUMBER
			
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_RECEIVE_QUEUE_NUMBER_OFFSET        0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_RECEIVE_QUEUE_NUMBER_LSB           0
#define REO_UPDATE_RX_REO_QUEUE_3_RECEIVE_QUEUE_NUMBER_MASK          0x0000ffff

/* Description		REO_UPDATE_RX_REO_QUEUE_3_VLD
			
			Field only valid when Update_VLD is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_VLD_OFFSET                         0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_VLD_LSB                            16
#define REO_UPDATE_RX_REO_QUEUE_3_VLD_MASK                           0x00010000

/* Description		REO_UPDATE_RX_REO_QUEUE_3_ASSOCIATED_LINK_DESCRIPTOR_COUNTER
			
			Field only valid when
			Update_Associated_link_descriptor_counter is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_LSB 17
#define REO_UPDATE_RX_REO_QUEUE_3_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MASK 0x00060000

/* Description		REO_UPDATE_RX_REO_QUEUE_3_DISABLE_DUPLICATE_DETECTION
			
			Field only valid when Update_Disable_duplicate_detection
			is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_DISABLE_DUPLICATE_DETECTION_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_DISABLE_DUPLICATE_DETECTION_LSB    19
#define REO_UPDATE_RX_REO_QUEUE_3_DISABLE_DUPLICATE_DETECTION_MASK   0x00080000

/* Description		REO_UPDATE_RX_REO_QUEUE_3_SOFT_REORDER_ENABLE
			
			Field only valid when Update_Soft_reorder_enable is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_SOFT_REORDER_ENABLE_OFFSET         0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_SOFT_REORDER_ENABLE_LSB            20
#define REO_UPDATE_RX_REO_QUEUE_3_SOFT_REORDER_ENABLE_MASK           0x00100000

/* Description		REO_UPDATE_RX_REO_QUEUE_3_AC
			
			Field only valid when Update_AC is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_AC_OFFSET                          0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_AC_LSB                             21
#define REO_UPDATE_RX_REO_QUEUE_3_AC_MASK                            0x00600000

/* Description		REO_UPDATE_RX_REO_QUEUE_3_BAR
			
			Field only valid when Update_BAR is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_BAR_OFFSET                         0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_BAR_LSB                            23
#define REO_UPDATE_RX_REO_QUEUE_3_BAR_MASK                           0x00800000

/* Description		REO_UPDATE_RX_REO_QUEUE_3_RTY
			
			Field only valid when Update_RTY is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_RTY_OFFSET                         0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_RTY_LSB                            24
#define REO_UPDATE_RX_REO_QUEUE_3_RTY_MASK                           0x01000000

/* Description		REO_UPDATE_RX_REO_QUEUE_3_CHK_2K_MODE
			
			Field only valid when Update_Chk_2k_Mode is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_CHK_2K_MODE_OFFSET                 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_CHK_2K_MODE_LSB                    25
#define REO_UPDATE_RX_REO_QUEUE_3_CHK_2K_MODE_MASK                   0x02000000

/* Description		REO_UPDATE_RX_REO_QUEUE_3_OOR_MODE
			
			Field only valid when Update_OOR_Mode is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_OOR_MODE_OFFSET                    0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_OOR_MODE_LSB                       26
#define REO_UPDATE_RX_REO_QUEUE_3_OOR_MODE_MASK                      0x04000000

/* Description		REO_UPDATE_RX_REO_QUEUE_3_PN_CHECK_NEEDED
			
			Field only valid when Update_Pn_check_needed is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_PN_CHECK_NEEDED_OFFSET             0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_PN_CHECK_NEEDED_LSB                27
#define REO_UPDATE_RX_REO_QUEUE_3_PN_CHECK_NEEDED_MASK               0x08000000

/* Description		REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_EVEN
			
			Field only valid when Update_Pn_shall_be_even is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_EVEN_OFFSET            0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_EVEN_LSB               28
#define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_EVEN_MASK              0x10000000

/* Description		REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_UNEVEN
			
			Field only valid when Update_Pn_shall_be_uneven is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_UNEVEN_OFFSET          0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_UNEVEN_LSB             29
#define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_UNEVEN_MASK            0x20000000

/* Description		REO_UPDATE_RX_REO_QUEUE_3_PN_HANDLING_ENABLE
			
			Field only valid when Update_Pn_handling_enable is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_PN_HANDLING_ENABLE_OFFSET          0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_PN_HANDLING_ENABLE_LSB             30
#define REO_UPDATE_RX_REO_QUEUE_3_PN_HANDLING_ENABLE_MASK            0x40000000

/* Description		REO_UPDATE_RX_REO_QUEUE_3_IGNORE_AMPDU_FLAG
			
			Field only valid when Update_Ignore_ampdu_flag is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_IGNORE_AMPDU_FLAG_OFFSET           0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_IGNORE_AMPDU_FLAG_LSB              31
#define REO_UPDATE_RX_REO_QUEUE_3_IGNORE_AMPDU_FLAG_MASK             0x80000000

/* Description		REO_UPDATE_RX_REO_QUEUE_4_BA_WINDOW_SIZE
			
			Field only valid when Update_BA_window_size is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_BA_WINDOW_SIZE_OFFSET              0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_BA_WINDOW_SIZE_LSB                 0
#define REO_UPDATE_RX_REO_QUEUE_4_BA_WINDOW_SIZE_MASK                0x000000ff

/* Description		REO_UPDATE_RX_REO_QUEUE_4_PN_SIZE
			
			Field only valid when Update_Pn_size is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			
			
			<enum 0     pn_size_24>
			
			<enum 1     pn_size_48>
			
			<enum 2     pn_size_128>
			
			
			
			<legal 0-2>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_PN_SIZE_OFFSET                     0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_PN_SIZE_LSB                        8
#define REO_UPDATE_RX_REO_QUEUE_4_PN_SIZE_MASK                       0x00000300

/* Description		REO_UPDATE_RX_REO_QUEUE_4_SVLD
			
			Field only valid when Update_Svld is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_SVLD_OFFSET                        0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_SVLD_LSB                           10
#define REO_UPDATE_RX_REO_QUEUE_4_SVLD_MASK                          0x00000400

/* Description		REO_UPDATE_RX_REO_QUEUE_4_SSN
			
			Field only valid when Update_SSN is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_SSN_OFFSET                         0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_SSN_LSB                            11
#define REO_UPDATE_RX_REO_QUEUE_4_SSN_MASK                           0x007ff800

/* Description		REO_UPDATE_RX_REO_QUEUE_4_SEQ_2K_ERROR_DETECTED_FLAG
			
			Field only valid when Update_Seq_2k_error_detected_flag
			is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_SEQ_2K_ERROR_DETECTED_FLAG_OFFSET  0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_SEQ_2K_ERROR_DETECTED_FLAG_LSB     23
#define REO_UPDATE_RX_REO_QUEUE_4_SEQ_2K_ERROR_DETECTED_FLAG_MASK    0x00800000

/* Description		REO_UPDATE_RX_REO_QUEUE_4_PN_ERROR_DETECTED_FLAG
			
			Field only valid when Update_pn_error_detected_flag is
			set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_PN_ERROR_DETECTED_FLAG_OFFSET      0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_PN_ERROR_DETECTED_FLAG_LSB         24
#define REO_UPDATE_RX_REO_QUEUE_4_PN_ERROR_DETECTED_FLAG_MASK        0x01000000

/* Description		REO_UPDATE_RX_REO_QUEUE_4_PN_VALID
			
			Field only valid when Update_pn_valid is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_PN_VALID_OFFSET                    0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_PN_VALID_LSB                       25
#define REO_UPDATE_RX_REO_QUEUE_4_PN_VALID_MASK                      0x02000000

/* Description		REO_UPDATE_RX_REO_QUEUE_4_FLUSH_FROM_CACHE
			
			When set, REO shall, after finishing the execution of
			this command, flush the related descriptor from the cache.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_FLUSH_FROM_CACHE_OFFSET            0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_FLUSH_FROM_CACHE_LSB               26
#define REO_UPDATE_RX_REO_QUEUE_4_FLUSH_FROM_CACHE_MASK              0x04000000

/* Description		REO_UPDATE_RX_REO_QUEUE_4_RESERVED_4A
			
			<legal 0>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_RESERVED_4A_OFFSET                 0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_RESERVED_4A_LSB                    27
#define REO_UPDATE_RX_REO_QUEUE_4_RESERVED_4A_MASK                   0xf8000000

/* Description		REO_UPDATE_RX_REO_QUEUE_5_PN_31_0
			
			Field only valid when Update_Pn is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_5_PN_31_0_OFFSET                     0x00000014
#define REO_UPDATE_RX_REO_QUEUE_5_PN_31_0_LSB                        0
#define REO_UPDATE_RX_REO_QUEUE_5_PN_31_0_MASK                       0xffffffff

/* Description		REO_UPDATE_RX_REO_QUEUE_6_PN_63_32
			
			Field only valid when Update_pn is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_6_PN_63_32_OFFSET                    0x00000018
#define REO_UPDATE_RX_REO_QUEUE_6_PN_63_32_LSB                       0
#define REO_UPDATE_RX_REO_QUEUE_6_PN_63_32_MASK                      0xffffffff

/* Description		REO_UPDATE_RX_REO_QUEUE_7_PN_95_64
			
			Field only valid when Update_pn is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_7_PN_95_64_OFFSET                    0x0000001c
#define REO_UPDATE_RX_REO_QUEUE_7_PN_95_64_LSB                       0
#define REO_UPDATE_RX_REO_QUEUE_7_PN_95_64_MASK                      0xffffffff

/* Description		REO_UPDATE_RX_REO_QUEUE_8_PN_127_96
			
			Field only valid when Update_pn is set
			
			
			
			Field value to be copied over into the RX_REO_QUEUE
			descriptor.
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_8_PN_127_96_OFFSET                   0x00000020
#define REO_UPDATE_RX_REO_QUEUE_8_PN_127_96_LSB                      0
#define REO_UPDATE_RX_REO_QUEUE_8_PN_127_96_MASK                     0xffffffff


#endif // _REO_UPDATE_RX_REO_QUEUE_H_
