# /space/home/slher/rel/Beken/v6_4_5/macsw/ip/lmac/src/hal/hal_machw.h File Reference

Definition of the API used to initialize and control the MAC HW. More...

`#include "hal_desc.h"`
`#include "reg_mac_core.h"`

Go to the source code of this file.

## Defines
#define | HAL_MACHW_BCN_TX_DELAY_US (2048)
| Duration between AP TBTT and Beacon Transmission (in us, should be a multiple of 128us).
#define | MU_MIMO_MASTER_TX_IRQ NXMAC_SEC_USER_TX_TRIGGER_BIT
| Global Interrupt bit for TX IRQ on secondary user.
#define | TX_SEC_IRQ_BITS
| Bits indicating activity on secondary users (separated trigger and buffer).
## Enumerations
enum | { HW_IDLE = 0, HW_RESERVED, HW_DOZE, HW_ACTIVE }
| For MAC HW States. More...
enum | { MODE_802_11B = 0, MODE_802_11A, MODE_802_11G, MODE_802_11N_2_4, MODE_802_11N_5, MODE_RESERVED, MODE_802_11AC_5 }
| 802.11 modes More...
enum | { HAL_AC0_TIMER = 0, HAL_AC1_TIMER, HAL_AC2_TIMER, HAL_AC3_TIMER, HAL_BCN_TIMER, HAL_IDLE_TIMER, HAL_RX_TIMER, HAL_MM_TIMER, HAL_KE_TIMER, HAL_TIMER_MAX }
| Mapping of HW timers. More...
enum | { HAL_AC0_TIMER_BIT = CO_BIT(HAL_AC0_TIMER), HAL_AC1_TIMER_BIT = CO_BIT(HAL_AC1_TIMER), HAL_AC2_TIMER_BIT = CO_BIT(HAL_AC2_TIMER), HAL_AC3_TIMER_BIT = CO_BIT(HAL_AC3_TIMER), HAL_BCN_TIMER_BIT = CO_BIT(HAL_BCN_TIMER), HAL_IDLE_TIMER_BIT = CO_BIT(HAL_IDLE_TIMER), HAL_RX_TIMER_BIT = CO_BIT(HAL_RX_TIMER), HAL_MM_TIMER_BIT = CO_BIT(HAL_MM_TIMER), HAL_KE_TIMER_BIT = CO_BIT(HAL_KE_TIMER) }
| Bits associated to HW timers. More...
## Functions
__INLINE uint32_t | hal_machw_time (void)
| Get the current HW time.
__INLINE bool | hal_machw_time_cmp (uint32_t time1, uint32_t time2)
| Compare timer absolute expiration time.
__INLINE bool | hal_machw_time_past (uint32_t time)
| Compare timer absolute expiration time.
__INLINE void | hal_machw_udelay (uint32_t us)
| Block execution for the given number of us.
__INLINE uint32_t | hal_machw_rx_bcn_duration (struct rx_hd *rhd, uint16_t len)
| Compute duration it took to transmit the received frame.
__INLINE bool | hal_machw_bfmee_support (void)
| Check whether BFMEE is supported by the MAC and PHY HW.
__INLINE bool | hal_machw_bfmer_support (void)
| Check whether BFMER is supported by the MAC and PHY HW.
__INLINE bool | hal_machw_mu_mimo_rx_support (void)
| Check whether Mu-MIMO RX is supported by the MAC and PHY HW.
__INLINE bool | hal_machw_mu_mimo_tx_support (void)
| Check whether Mu-MIMO TX is supported by the MAC and PHY HW.
__INLINE bool | hal_machw_he_support (void)
| Check whether HE is supported by the MAC and PHY HW.
void | hal_machw_init (void)
| Interrupt Controller initialization.
void | hal_machw_reset (void)
| MAC HW reset function.
uint8_t | hal_machw_search_addr (struct mac_addr *addr)
| Function accessing the HW address search engine.
void | hal_machw_disable_int (void)
| MAC HW interrupt disable function.
void | hal_machw_stop (void)
| Stop the operation of the MAC HW.
void | hal_machw_monitor_mode (void)
| Put back the MAC HW in monitoring mode.
int | hal_machw_tsf_move (int32_t offset)
| Apply an offset (positive or negative) to the TSF timer.
bool | hal_machw_sleep_check (void)
| Check if the HW timers don expire too early to go to sleep.
void | hal_machw_gen_handler (void)
| Interrupt Handling.
void | hal_machw_idle_req (void)
| Ask to HW to move to IDLE state.
## Variables
const uint8_t | rxv2macrate []
| Table of conversion between a RX vector rate to a MAC HW rate.

## Detailed Description

Definition of the API used to initialize and control the MAC HW.

File contains the API to perform the functions of the MAC HW initialization and interrupt handling. This module initializes the MAC HW registers and handles the different interrupts raised by MAC HW.

Copyright (C) RivieraWaves 2011-2019

Definition in file hal_machw.h.