# /space/home/slher/rel/Beken/v6_4_5/macsw/ip/lmac/src/rx/rxl/v10/rxl_hwdesc.c File Reference

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_hwdesc_env_tag
| Buffer Management control structure. More...
## Functions
static void | rxl_hd_append (struct rx_dmadesc *desc)
| Appends a descriptor to the list visible to HW Function to initialize the freed HW desc and tail it to the list of HW descriptors.
static void | rxl_pd_append (struct rx_pbd *first, struct rx_pbd *last, struct rx_pbd *spare)
| Appends a list of RX payload buffer descriptors to the list visible to HW Function to initialize the freed HW desc and tail it to the list of HW descriptors.
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 rxdesc | rx_swdesc_tab [NX_RXDESC_CNT]
| Array of RX SW descriptors.
static struct rxl_hwdesc_env_tag | rx_hwdesc_env
| RXL HW descriptor environment variable.
struct rx_dmadesc | rx_dma_hdrdesc [NX_RXDESC_CNT]
| Array of struct containing the RX header descriptors.
struct rx_payloaddesc | rx_payload_desc [NX_RX_PAYLOAD_DESC_CNT]
| Array of struct containing the RX buffer descriptors.

## Detailed Description

Implementation of the API function used to initialize the pools.

Copyright (C) RivieraWaves 2011-2019

Definition in file rxl_hwdesc.c.