9#ifdef _PRE_WLAN_FEATURE_AUTOAGGR
17#include "dmac_alg_if_part_rom.h"
30#define ALG_AGGR_4MS_TO_250US_SHIFT 4
31#define ALG_AGGR_SHORT_STAT_SHIFT 3
32#define ALG_AGGR_LONG_STAT_SHIFT 4
34#define alg_aggr_stat_smooth_short_per(_avg_per, _instant_per, _scale) \
35 ((((osal_u16)((_avg_per) * ((1ul << (ALG_AGGR_SHORT_STAT_SHIFT + (_scale))) - 1))) >> \
36 (ALG_AGGR_SHORT_STAT_SHIFT + (_scale))) + ((_instant_per) >> (ALG_AGGR_SHORT_STAT_SHIFT + (_scale))))
38#define alg_aggr_stat_smooth_long_per(_avg_per, _instant_per, _scale) \
39 ((((osal_u16)((_avg_per) * ((1ul << (ALG_AGGR_LONG_STAT_SHIFT + (_scale))) - 1)))>> \
40 (ALG_AGGR_LONG_STAT_SHIFT + (_scale))) + ((_instant_per) >> (ALG_AGGR_LONG_STAT_SHIFT + (_scale))))
46#define alg_aggr_get_best_rate_bytes_limit_4ms(best_rate_kbps) ((best_rate_kbps) >> 1)
48#define alg_aggr_param_offset(_elem) (alg_stru_elem_offset(alg_aggr_stru, _elem))
49#define alg_aggr_calc_cfg_id_offest(alg_cfg_id) ((alg_cfg_id) - MAC_ALG_CFG_AGGR_START)
54 ALG_AGGR_AUTO_MODE = 0,
55 ALG_AGGR_FIXED_MODE = 1,
60 ALG_AGGR_MIN_AGGR_TIME_IDX = 0,
61 ALG_AGGR_500US_TIME_IDX = 1,
62 ALG_AGGR_1MS_TIME_IDX = 2,
63 ALG_AGGR_2MS_TIME_IDX = 3,
64 ALG_AGGR_4MS_TIME_IDX = 4,
65 ALG_AGGR_MAX_AGGR_TIME_IDX = 5,
66 ALG_AGGR_TIME_IDX_BUTT
67} alg_aggr_time_index_enum;
68typedef osal_u8 alg_aggr_time_idx_enum_uint8;
130} alg_aggr_user_info_stru;
140 aggr_config_param_handle_func cfg_param_handle;
141} alg_aggr_cfg_param_table_stru;
148osal_void alg_aggr_init_user_info(alg_aggr_user_info_stru *aggr_info,
osal_u8 aggr_time_idx, dmac_user_stru *dmac_user);
149alg_aggr_stru *alg_aggr_get_dev_info(
osal_void);
152osal_u32 alg_aggr_config_param(
const dmac_vap_stru *dmac_vap,
const dmac_ioctl_alg_param_stru *alg_param);
153#ifdef _PRE_WLAN_TPC_DO_PROBE
158osal_u32 alg_aggr_probe_deadlock(dmac_user_stru *dmac_user,
osal_u8 lock_type);
162typedef osal_u32 (*alg_aggr_set_cfg_cb)(
const dmac_ioctl_alg_param_stru *alg_param,
osal_u32 *ret);
163typedef osal_u32 (*alg_aggr_init_user_info_cb)(alg_aggr_user_info_stru *aggr_info,
osal_u8 aggr_time_idx,
164 dmac_user_stru *dmac_user);
165typedef osal_u32 (*alg_aggr_normal_proc_cb)(dmac_user_stru *dmac_user, alg_aggr_user_info_stru *aggr_info,
167typedef osal_u32 (*alg_aggr_set_sch_aggr_cb)(dmac_user_stru *dmac_user,
osal_u8 aggr_time_idx,
osal_u8 tid_id,
171typedef osal_u32 (*alg_aggr_brate_update_cb)(dmac_user_stru *dmac_user,
osal_u32 rate_kbps,
172 alg_autorate_rate_detail_stru *rate_detail,
osal_u32 *ret);
osal_u8 alg_cfg_param_type_enum_uint8
Definition alg_common_macros_rom.h:489
#define ALG_AGGR_TIME_LIST_NUM
Definition alg_common_macros_rom.h:41
int osal_s32
Definition osal_types.h:19
unsigned char osal_u8
Definition osal_types.h:11
osal_u8 osal_bool
Definition osal_types.h:27
void osal_void
Definition osal_types.h:29
unsigned int osal_u32
Definition osal_types.h:13
unsigned short osal_u16
Definition osal_types.h:12
Definition alg_common_rom.h:77
Definition alg_common_rom.h:376
Definition alg_common_rom.h:411
Definition dmac_ext_if_rom.h:106
Definition hal_common_ops_rom.h:56
Definition hal_ops_common_rom.h:240
Definition dmac_ext_if_device_rom.h:98
Definition oal_net_pkt_rom.h:83
Definition hal_ops_common_rom.h:529