#ifndef _HALMAC_MODULE_H_ #define _HALMAC_MODULE_H_ #define HALMAC_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + (c)) #define HALMAC_CURRENT_VERSION HALMAC_VERSION(HALMAC_MAJOR_VER, HALMAC_PROTOTYPE_VER, HALMAC_MINOR_VER) #define MAX_ARG_NUM 10 #define TLP_TYPE_NONE 0x00000000 #define TLP_TYPE_PU8 0x00000001 #define TLP_TYPE_PU16 0x00000002 #define TLP_TYPE_PU32 0x00000003 #define TLP_TYPE_PU64 0x00000004 #define TLP_TYPE_PS8 0x00000005 #define TLP_TYPE_PS16 0x00000006 #define TLP_TYPE_PS32 0x00000007 #define TLP_TYPE_PS64 0x00000008 #define TLP_TYPE_PVOID 0x00000009 #define TLP_TYPE_PU8_BUFFER 0x0000000A #define TLP_TYPE_POS_API_ENTRY 0x0000000B #define TLP_TYPE_PHALMAC_WLAN_ADDR 0x0000000C #define TLP_TYPE_PHALMAC_PHY_PARAMETER_INFO 0x0000000D #define TLP_TYPE_PHALMAC_CH_INFO 0x0000000E #define TLP_TYPE_PHALMAC_CH_SWITCH_OPTION 0x0000000F #define TLP_TYPE_PHALMAC_GENERAL_INFO 0x00000010 #define TLP_TYPE_PHALMAC_CMD_PROCESS_STATUS 0x00000011 #define TLP_TYPE_PHALMAC_INTERFACE 0x00000012 #define TLP_TYPE_PHALMAC_MAC_POWER 0x00000013 #define TLP_TYPE_PHALMAC_RXAGG_CFG 0x00000014 #define TLP_TYPE_PHALMAC_WIRELESS_MODE 0x00000015 #define TLP_TYPE_PHALMAC_BW 0x00000016 #define TLP_TYPE_PHALMAC_TRX_MODE 0x00000017 #define TLP_TYPE_PHALMAC_EFUSE_READ_CFG 0x00000018 #define TLP_TYPE_PHALMAC_PACKET_ID 0x00000019 #define TLP_TYPE_PHALMAC_DRV_INFO 0x0000001A #define TLP_TYPE_PHALMAC_FEATURE_ID 0x0000001B #define TLP_TYPE_PHALMAC_HW_ID 0x0000001C #define TLP_TYPE_PHALMAC_DRV_RSVD_PG_NUM 0x0000001D #define TLP_TYPE_PHALMAC_LA_MODE 0x0000001E #define TLP_TYPE_PHALMAC_PWR_TRACKING 0x0000001F #define TLP_TYPE_PHALMAC_EFUSE_BANK 0x00000020 #define TLP_TYPE_PHALMAC_IQK 0x00000021 #define TLP_TYPE_PHALMAC_MU_BFER_INIT_PARA 0x00000022 #define TLP_TYPE_PHALMAC_MU_BFEE_INIT_PARA 0x00000023 #define TLP_TYPE_PHALMAC_SU_BFER_INIT_PARA 0x00000024 #define TLP_TYPE_PHALMAC_SND_ROLE 0x00000025 #define TLP_TYPE_PHALMAC_DATA_RATE 0x00000026 #define TLP_TYPE_PHALMAC_CFG_MUMIMO_PARA 0x00000027 #define TLP_TYPE_PU8_1 0x00000028 #define TLP_TYPE_PHALMAC_PG_EFUSE_INFO 0x00000029 #define TLP_TYPE_PU8_2 0x0000002A #define TLP_TYPE_PHALMAC_INTF_PHY_PLATFORM 0x0000002B #define TLP_TYPE_PHALMAC_API_REGISTRY 0x0000002C #define TLP_TYPE_PHALMAC_DLFW_MEM 0x0000002D #define TLP_TYPE_PHALMAC_FW_VERSION 0x0000002E #define TLP_TYPE_PHALMAC_SIDEBAND_INT_CFG 0x0000002F #define TLP_TYPE_PHALMAC_FIFO_SEL 0x00000030 #define TLP_TYPE_PHALMAC_P2PPS 0x00000031 #define TLP_TYPE_PHALMAC_RX_EXPAND_MODE 0x00000032 #define TLP_TYPE_PHALMAC_PCIE_CFG 0x00000033 #define TLP_TYPE_PHALMAC_SDIO_CMD53_4BYTE_MODE 0x00000034 #define TLP_TYPE_PHALMAC_NETWORK_TYPE_SELECT 0x00000035 #define TLP_TYPE_PHALMAC_BCN_CTRL 0x00000036 #define TLP_TYPE_PHALMAC_SDIO_HW_INFO 0x00000037 typedef struct _HALMAC_TLP_STRUCT { u32 type; u32 length; VOID *ptr; } HALMAC_TLP_STRUCT, *PHALMAC_TLP_STRUCT; typedef struct _HALMAC_API_ARG { HALMAC_API_ID api_id; u32 arg_count; u32 arg_type_seq[MAX_ARG_NUM]; } HALMAC_API_ARG, *PHALMAC_API_ARG; typedef struct _HALMAC_OBJ { u8 init; u32 version; PHALMAC_ADAPTER halmac_adapter; PHALMAC_API halmac_api_entry; } HALMAC_OBJ, *PHALMAC_OBJ; HALMAC_RET_STATUS halmac_initialize_obj( IN struct _HALMAC_OBJ *halmac_obj, INOUT PHALMAC_TLP_STRUCT ptlp, IN u32 tlpCount ); HALMAC_RET_STATUS halmac_deinitialize_obj( IN struct _HALMAC_OBJ *halmac_obj, INOUT PHALMAC_TLP_STRUCT ptlp, IN u32 tlpCount ); HALMAC_RET_STATUS halmac_set_information( IN struct _HALMAC_OBJ *halmac_obj, IN HALMAC_API_ID api_id, INOUT PHALMAC_TLP_STRUCT ptlp, IN u32 tlpCount ); HALMAC_RET_STATUS halmac_get_information( IN struct _HALMAC_OBJ *halmac_obj, IN HALMAC_API_ID api_id, INOUT PHALMAC_TLP_STRUCT ptlp, IN u32 tlpCount ); #endif