/* * Copyright (c) 2016-2017 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_GET_QUEUE_STATS_STATUS_H_ #define _REO_GET_QUEUE_STATS_STATUS_H_ #if !defined(__ASSEMBLER__) #endif #include "uniform_reo_status_header.h" // ################ START SUMMARY ################# // // Dword Fields // 0-1 struct uniform_reo_status_header status_header; // 2 ssn[11:0], current_index[19:12], reserved_2[31:20] // 3 pn_31_0[31:0] // 4 pn_63_32[31:0] // 5 pn_95_64[31:0] // 6 pn_127_96[31:0] // 7 last_rx_enqueue_timestamp[31:0] // 8 last_rx_dequeue_timestamp[31:0] // 9 rx_bitmap_31_0[31:0] // 10 rx_bitmap_63_32[31:0] // 11 rx_bitmap_95_64[31:0] // 12 rx_bitmap_127_96[31:0] // 13 rx_bitmap_159_128[31:0] // 14 rx_bitmap_191_160[31:0] // 15 rx_bitmap_223_192[31:0] // 16 rx_bitmap_255_224[31:0] // 17 current_mpdu_count[6:0], current_msdu_count[31:7] // 18 reserved_18[3:0], timeout_count[9:4], forward_due_to_bar_count[15:10], duplicate_count[31:16] // 19 frames_in_order_count[23:0], bar_received_count[31:24] // 20 mpdu_frames_processed_count[31:0] // 21 msdu_frames_processed_count[31:0] // 22 total_processed_byte_count[31:0] // 23 late_receive_mpdu_count[11:0], window_jump_2k[15:12], hole_count[31:16] // 24 reserved_24a[27:0], looping_count[31:28] // // ################ END SUMMARY ################# #define NUM_OF_DWORDS_REO_GET_QUEUE_STATS_STATUS 25 struct reo_get_queue_stats_status { struct uniform_reo_status_header status_header; uint32_t ssn : 12, //[11:0] current_index : 8, //[19:12] reserved_2 : 12; //[31:20] 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] uint32_t last_rx_enqueue_timestamp : 32; //[31:0] uint32_t last_rx_dequeue_timestamp : 32; //[31:0] uint32_t rx_bitmap_31_0 : 32; //[31:0] uint32_t rx_bitmap_63_32 : 32; //[31:0] uint32_t rx_bitmap_95_64 : 32; //[31:0] uint32_t rx_bitmap_127_96 : 32; //[31:0] uint32_t rx_bitmap_159_128 : 32; //[31:0] uint32_t rx_bitmap_191_160 : 32; //[31:0] uint32_t rx_bitmap_223_192 : 32; //[31:0] uint32_t rx_bitmap_255_224 : 32; //[31:0] uint32_t current_mpdu_count : 7, //[6:0] current_msdu_count : 25; //[31:7] uint32_t reserved_18 : 4, //[3:0] timeout_count : 6, //[9:4] forward_due_to_bar_count : 6, //[15:10] duplicate_count : 16; //[31:16] uint32_t frames_in_order_count : 24, //[23:0] bar_received_count : 8; //[31:24] uint32_t mpdu_frames_processed_count : 32; //[31:0] uint32_t msdu_frames_processed_count : 32; //[31:0] uint32_t total_processed_byte_count : 32; //[31:0] uint32_t late_receive_mpdu_count : 12, //[11:0] window_jump_2k : 4, //[15:12] hole_count : 16; //[31:16] uint32_t reserved_24a : 28, //[27:0] looping_count : 4; //[31:28] }; /* struct uniform_reo_status_header status_header Consumer: SW Producer: REO Details that can link this status with the original command. It also contains info on how long REO took to execute this command. ssn Starting Sequence number of the session, this changes whenever window moves. (can be filled by SW then maintained by REO) current_index Points to last forwarded packet reserved_2 pn_31_0 pn_63_32 Bits [63:32] of the PN number. pn_95_64 Bits [95:64] of the PN number. pn_127_96 Bits [127:96] of the PN number. last_rx_enqueue_timestamp Timestamp of arrival of the last MPDU for this queue last_rx_dequeue_timestamp Timestamp of forwarding an MPDU If the queue is empty when a frame gets received, this time shall be initialized to the 'enqueue' timestamp Used for aging rx_bitmap_31_0 When a bit is set, the corresponding frame is currently held in the re-order queue. The bitmap is Fully managed by HW. SW shall init this to 0, and then never ever change it rx_bitmap_63_32 See Rx_bitmap_31_0 description rx_bitmap_95_64 See Rx_bitmap_31_0 description rx_bitmap_127_96 See Rx_bitmap_31_0 description rx_bitmap_159_128 See Rx_bitmap_31_0 description rx_bitmap_191_160 See Rx_bitmap_31_0 description rx_bitmap_223_192 See Rx_bitmap_31_0 description rx_bitmap_255_224 See Rx_bitmap_31_0 description current_mpdu_count The number of MPDUs in the queue. current_msdu_count The number of MSDUs in the queue. reserved_18 timeout_count The number of times that REO started forwarding frames even though there is a hole in the bitmap. Forwarding reason is Timeout The counter saturates and freezes at 0x3F forward_due_to_bar_count The number of times that REO started forwarding frames even though there is a hole in the bitmap. Forwarding reason is reception of BAR frame. The counter saturates and freezes at 0x3F duplicate_count The number of duplicate frames that have been detected frames_in_order_count The number of frames that have been received in order (without a hole that prevented them from being forwarded immediately) This corresponds to the Reorder opcodes: 'FWDCUR' and 'FWD BUF' bar_received_count The number of times a BAR frame is received. This corresponds to the Reorder opcodes with 'DROP' The counter saturates and freezes at 0xFF mpdu_frames_processed_count The total number of MPDU frames that have been processed by REO. This includes the duplicates. msdu_frames_processed_count The total number of MSDU frames that have been processed by REO. This includes the duplicates. total_processed_byte_count An approximation of the number of bytes received for this queue. In 64 byte units late_receive_mpdu_count The number of MPDUs received after the window had already moved on. The 'late' sequence window is defined as (Window SSN - 256) - (Window SSN - 1) This corresponds with Out of order detection in duplicate detect FSM The counter saturates and freezes at 0xFFF window_jump_2k The number of times the window moved more then 2K The counter saturates and freezes at 0xF (Note: field name can not start with number: previous 2k_window_jump) hole_count The number of times a hole was created in the receive bitmap. This corresponds to the Reorder opcodes with 'QCUR' reserved_24a looping_count A count value that indicates the number of times the producer of entries into this Ring has looped around the ring. At initialization time, this value is set to 0. On the first loop, this value is set to 1. After the max value is reached allowed by the number of bits for this field, the count value continues with 0 again. In case SW is the consumer of the ring entries, it can use this field to figure out up to where the producer of entries has created new entries. This eliminates the need to check where the head pointer' of the ring is located once the SW starts processing an interrupt indicating that new entries have been put into this ring... Also note that SW if it wants only needs to look at the LSB bit of this count value. */ #define REO_GET_QUEUE_STATS_STATUS_0_UNIFORM_REO_STATUS_HEADER_STATUS_HEADER_OFFSET 0x00000000 #define REO_GET_QUEUE_STATS_STATUS_0_UNIFORM_REO_STATUS_HEADER_STATUS_HEADER_LSB 28 #define REO_GET_QUEUE_STATS_STATUS_0_UNIFORM_REO_STATUS_HEADER_STATUS_HEADER_MASK 0xffffffff #define REO_GET_QUEUE_STATS_STATUS_1_UNIFORM_REO_STATUS_HEADER_STATUS_HEADER_OFFSET 0x00000004 #define REO_GET_QUEUE_STATS_STATUS_1_UNIFORM_REO_STATUS_HEADER_STATUS_HEADER_LSB 28 #define REO_GET_QUEUE_STATS_STATUS_1_UNIFORM_REO_STATUS_HEADER_STATUS_HEADER_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_2_SSN Starting Sequence number of the session, this changes whenever window moves. (can be filled by SW then maintained by REO) */ #define REO_GET_QUEUE_STATS_STATUS_2_SSN_OFFSET 0x00000008 #define REO_GET_QUEUE_STATS_STATUS_2_SSN_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_2_SSN_MASK 0x00000fff /* Description REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX Points to last forwarded packet */ #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_OFFSET 0x00000008 #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_LSB 12 #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_MASK 0x000ff000 /* Description REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2 */ #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_OFFSET 0x00000008 #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_LSB 20 #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_MASK 0xfff00000 /* Description REO_GET_QUEUE_STATS_STATUS_3_PN_31_0 */ #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_OFFSET 0x0000000c #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_4_PN_63_32 Bits [63:32] of the PN number. */ #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_OFFSET 0x00000010 #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_5_PN_95_64 Bits [95:64] of the PN number. */ #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_OFFSET 0x00000014 #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_6_PN_127_96 Bits [127:96] of the PN number. */ #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_OFFSET 0x00000018 #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP Timestamp of arrival of the last MPDU for this queue */ #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_OFFSET 0x0000001c #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP Timestamp of forwarding an MPDU If the queue is empty when a frame gets received, this time shall be initialized to the 'enqueue' timestamp Used for aging */ #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_OFFSET 0x00000020 #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0 When a bit is set, the corresponding frame is currently held in the re-order queue. The bitmap is Fully managed by HW. SW shall init this to 0, and then never ever change it */ #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_OFFSET 0x00000024 #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32 See Rx_bitmap_31_0 description */ #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_OFFSET 0x00000028 #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64 See Rx_bitmap_31_0 description */ #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_OFFSET 0x0000002c #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96 See Rx_bitmap_31_0 description */ #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_OFFSET 0x00000030 #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128 See Rx_bitmap_31_0 description */ #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_OFFSET 0x00000034 #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160 See Rx_bitmap_31_0 description */ #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_OFFSET 0x00000038 #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192 See Rx_bitmap_31_0 description */ #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_OFFSET 0x0000003c #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224 See Rx_bitmap_31_0 description */ #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_OFFSET 0x00000040 #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT The number of MPDUs in the queue. */ #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_OFFSET 0x00000044 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_MASK 0x0000007f /* Description REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT The number of MSDUs in the queue. */ #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_OFFSET 0x00000044 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_LSB 7 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_MASK 0xffffff80 /* Description REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18 */ #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_OFFSET 0x00000048 #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_MASK 0x0000000f /* Description REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT The number of times that REO started forwarding frames even though there is a hole in the bitmap. Forwarding reason is Timeout The counter saturates and freezes at 0x3F */ #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_OFFSET 0x00000048 #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_LSB 4 #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_MASK 0x000003f0 /* Description REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT The number of times that REO started forwarding frames even though there is a hole in the bitmap. Forwarding reason is reception of BAR frame. The counter saturates and freezes at 0x3F */ #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_OFFSET 0x00000048 #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_LSB 10 #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_MASK 0x0000fc00 /* Description REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT The number of duplicate frames that have been detected */ #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_OFFSET 0x00000048 #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_LSB 16 #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_MASK 0xffff0000 /* Description REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT The number of frames that have been received in order (without a hole that prevented them from being forwarded immediately) This corresponds to the Reorder opcodes: 'FWDCUR' and 'FWD BUF' */ #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_OFFSET 0x0000004c #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_MASK 0x00ffffff /* Description REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT The number of times a BAR frame is received. This corresponds to the Reorder opcodes with 'DROP' The counter saturates and freezes at 0xFF */ #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_OFFSET 0x0000004c #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_LSB 24 #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_MASK 0xff000000 /* Description REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT The total number of MPDU frames that have been processed by REO. This includes the duplicates. */ #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_OFFSET 0x00000050 #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT The total number of MSDU frames that have been processed by REO. This includes the duplicates. */ #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_OFFSET 0x00000054 #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT An approximation of the number of bytes received for this queue. In 64 byte units */ #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_OFFSET 0x00000058 #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_MASK 0xffffffff /* Description REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT The number of MPDUs received after the window had already moved on. The 'late' sequence window is defined as (Window SSN - 256) - (Window SSN - 1) This corresponds with Out of order detection in duplicate detect FSM The counter saturates and freezes at 0xFFF */ #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_OFFSET 0x0000005c #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_MASK 0x00000fff /* Description REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K The number of times the window moved more then 2K The counter saturates and freezes at 0xF (Note: field name can not start with number: previous 2k_window_jump) */ #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_OFFSET 0x0000005c #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_LSB 12 #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_MASK 0x0000f000 /* Description REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT The number of times a hole was created in the receive bitmap. This corresponds to the Reorder opcodes with 'QCUR' */ #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_OFFSET 0x0000005c #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_LSB 16 #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_MASK 0xffff0000 /* Description REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A */ #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_OFFSET 0x00000060 #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_LSB 0 #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_MASK 0x0fffffff /* Description REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT A count value that indicates the number of times the producer of entries into this Ring has looped around the ring. At initialization time, this value is set to 0. On the first loop, this value is set to 1. After the max value is reached allowed by the number of bits for this field, the count value continues with 0 again. In case SW is the consumer of the ring entries, it can use this field to figure out up to where the producer of entries has created new entries. This eliminates the need to check where the head pointer' of the ring is located once the SW starts processing an interrupt indicating that new entries have been put into this ring... Also note that SW if it wants only needs to look at the LSB bit of this count value. */ #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_OFFSET 0x00000060 #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_LSB 28 #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_MASK 0xf0000000 #endif // _REO_GET_QUEUE_STATS_STATUS_H_