Implementation of the API function used to initialize the pools. More...
#include "rxl_hwdesc.h"#include "ke_event.h"#include "rxl_cntrl.h"#include "rxu_cntrl.h"#include "co_utils.h"#include "macif.h"#include "txl_cfm.h"#include "co_endian.h"#include "reg_mac_pl.h"#include "reg_mac_core.h"Go to the source code of this file.
Data Structures | |
| struct | rxl_buffer_tag |
| Structure caching the RX buffers parameters. More... | |
| struct | rxl_hwdesc_env_tag |
| Buffer Management control structure. More... | |
Defines | |
| #define | RXL_WRAP CO_BIT(31) |
| Bit indicating a buffer wrap in the read and write addresses. | |
| #define | RXL_RXDESC_SIZE (sizeof_b(struct rxdesc)) |
| RX descriptor size. | |
| #define | RXL_RHD_HEADER (sizeof_b(struct rx_upload_cntrl_tag) / 4) |
| Head room for RHD. | |
| #define | RXL_RHD_FOOTER ((RXL_RXDESC_SIZE - sizeof_b(struct rx_hd)) / 4 - RXL_RHD_HEADER) |
| Tail room for RHD. | |
| #define | RXL_RBD_HEADER 0 |
| Head room for RBD. | |
| #define | RXL_RBD_FOOTER ((sizeof_b(struct rx_payloaddesc) - sizeof_b(struct rx_pbd)) / 4) |
| Tail room for RBD. | |
| #define | RXL_BUFFER1_SIZE ((RWNX_MAX_AMSDU_RX + RXL_RXDESC_SIZE) / 2) |
| Size of the RX buffer 1 (the size of 2 big A-MSDUs + their descriptors). | |
| #define | RXL_BUFFER2_SIZE ((512 + RXL_RXDESC_SIZE) / 4) |
| Size of the RX buffer 2 (512 bytes + the size of a RX descriptor). | |
| #define | RXL_HW_BUFFER_INIT(id) |
| Macro initializing the buffer pointers to the HW. | |
Enumerations | |
| enum | rx_buf_id { DH_BUF = 0, IH_BUF = 1 } |
RX buffers identifiers. More... | |
Functions | |
| __INLINE bool | rxl_dh_buf_has_data (void) |
| Return the DH buffer status. | |
| __INLINE bool | rxl_ih_buf_has_data (void) |
| Return the IH buffer status. | |
| __INLINE uint32_t | rxl_add_wrap_bit (uint32_t new_read, uint32_t old_read) |
| Set correctly the wrap bit (bit 31) to the new read address, based on the previous read address. | |
| __INLINE void | rxl_update_hw_buf_read (uint32_t new_read, int id) |
| Update the read address HW register. | |
| __INLINE void | rxl_update_sw_buf_read (uint32_t new_read, struct rxl_buffer_tag *buf) |
| Update the read address of the FW. | |
| __INLINE void | rxl_adjust_sw_buf_read (struct rxl_buffer_tag *buf) |
| Check if there is enough space between the SW read address and the end of the buffer. | |
| __INLINE void | rxl_adjust_frmlen (struct rx_hd *rhd) |
| Remove the MIC/ICV/FCS length from the frame length. | |
| static bool | rxl_rxcntrl_frame (struct rxdesc *rxdesc) |
| This function processes the received control frames. | |
| static struct rx_payloaddesc * | rxl_payload_transfer (struct rx_payloaddesc **curr_pd, uint16_t upload_len, uint32_t hostbuf, uint16_t *payl_offset, int dma_idx, int irq_en) |
| Upload a payload to a higher layer buffer. | |
| static void | rxl_go_to_last_rbd (struct rxdesc *rxdesc, struct rx_payloaddesc *pd, struct rx_payloaddesc *prev_pd) |
| Loop on the payload descriptors until the RX_PD_LASTBUF flag is found. | |
| void | rxl_hwdesc_init (void) |
| Initialize the pools of element Function to initialize the Rx buffer and descriptor pools. | |
| void | rxl_hwdesc_monitor (bool enable) |
| This function is called when an interface is changing its type, in order to configure correctly the RX path for either monitor or active mode. | |
| void | rxl_frame_release (struct rxdesc *rxdesc) |
| This function cleans up the complete frame data structures. | |
| void | rxl_mpdu_copy (struct rx_pbd *pbd, uint16_t length, uint16_t offset, uint32_t *dst) |
| Do a SW copy of a received MPDU. | |
| void | rxl_mpdu_partial_transfer (struct rxdesc *rxdesc, uint16_t upload_len, uint32_t hostbuf, uint16_t payl_offset, cb_rx_dma_func_ptr cb, void *env) |
| Do a partial upload of a MPDU to a host buffer. | |
| void | rxl_mpdu_transfer (struct rxdesc *rxdesc) |
| This function programs the DMA transfer of the received payload to the host memory. | |
| void | rxl_mpdu_free (struct rxdesc *rxdesc) |
| Free the HW descriptors attached to the SW descriptor passed as parameter. | |
| struct rxdesc * | rxl_rxdesc_get (void) |
| Get the RX descriptor pointing to the first MPDU ready for processing. | |
| void | rxl_rxdesc_ready_for_processing (struct rxdesc *rxdesc) |
| Indicate that the MPDU associated to the descriptor is ready for processing. | |
| void | rxl_mpdu_isr (void) |
| Service routine for the MAC HW RX interrupt. | |
| void | rxl_immediate_frame_get (void) |
| Function used to get the immediate frame that was indicated from its dedicated interrupt. | |
| void | rxl_current_desc_get (struct rx_hd **rhd, struct rx_pbd **rbd) |
| This function returns the pointer to the first RX Header and Buffer descriptors chained to the MAC HW. | |
Variables | |
| static struct rxl_hwdesc_env_tag | rx_hwdesc_env |
| RXL HW descriptor environment variable. | |
| static uint32_t | rxl_hw_buffer1 [RXL_BUFFER1_SIZE] |
| RX buffer 1, i.e. | |
| static uint32_t | rxl_hw_buffer2 [RXL_BUFFER2_SIZE] |
| RX buffer 2, i.e. | |
Implementation of the API function used to initialize the pools.
Copyright (C) RivieraWaves 2011-2019
Definition in file rxl_hwdesc.c.
1.6.1