/*
 * Copyright (c) 2020, 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
			
			
			
			For Update_VLD set and VLD clear, SW MUST set the
			Flush_from_cache bit in this command.
			
			
			
			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>
*/


 /* EXTERNAL REFERENCE : struct uniform_reo_cmd_header cmd_header */ 


/* Description		REO_UPDATE_RX_REO_QUEUE_0_CMD_HEADER_REO_CMD_NUMBER
			
			Consumer: REO/SW/DEBUG
			
			Producer: SW 
			
			
			
			This number can be used by SW to track, identify and
			link the created commands with the command statusses
			
			
			
			
			
			<legal all> 
*/
#define REO_UPDATE_RX_REO_QUEUE_0_CMD_HEADER_REO_CMD_NUMBER_OFFSET   0x00000000
#define REO_UPDATE_RX_REO_QUEUE_0_CMD_HEADER_REO_CMD_NUMBER_LSB      0
#define REO_UPDATE_RX_REO_QUEUE_0_CMD_HEADER_REO_CMD_NUMBER_MASK     0x0000ffff

/* Description		REO_UPDATE_RX_REO_QUEUE_0_CMD_HEADER_REO_STATUS_REQUIRED
			
			Consumer: REO
			
			Producer: SW 
			
			
			
			<enum 0 NoStatus> REO does not need to generate a status
			TLV for the execution of this command
			
			<enum 1 StatusRequired> REO shall generate a status TLV
			for the execution of this command
			
			
			
			<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_0_CMD_HEADER_REO_STATUS_REQUIRED_OFFSET 0x00000000
#define REO_UPDATE_RX_REO_QUEUE_0_CMD_HEADER_REO_STATUS_REQUIRED_LSB 16
#define REO_UPDATE_RX_REO_QUEUE_0_CMD_HEADER_REO_STATUS_REQUIRED_MASK 0x00010000

/* Description		REO_UPDATE_RX_REO_QUEUE_0_CMD_HEADER_RESERVED_0A
			
			<legal 0>
*/
#define REO_UPDATE_RX_REO_QUEUE_0_CMD_HEADER_RESERVED_0A_OFFSET      0x00000000
#define REO_UPDATE_RX_REO_QUEUE_0_CMD_HEADER_RESERVED_0A_LSB         17
#define REO_UPDATE_RX_REO_QUEUE_0_CMD_HEADER_RESERVED_0A_MASK        0xfffe0000

/* 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
			
			
			
			For Update_VLD set and VLD clear, SW MUST set the
			Flush_from_cache bit in this command.
			
			
			
			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_
