halmac_module.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #ifndef _HALMAC_MODULE_H_
  2. #define _HALMAC_MODULE_H_
  3. #define HALMAC_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + (c))
  4. #define HALMAC_CURRENT_VERSION HALMAC_VERSION(HALMAC_MAJOR_VER, HALMAC_PROTOTYPE_VER, HALMAC_MINOR_VER)
  5. #define MAX_ARG_NUM 10
  6. #define TLP_TYPE_NONE 0x00000000
  7. #define TLP_TYPE_PU8 0x00000001
  8. #define TLP_TYPE_PU16 0x00000002
  9. #define TLP_TYPE_PU32 0x00000003
  10. #define TLP_TYPE_PU64 0x00000004
  11. #define TLP_TYPE_PS8 0x00000005
  12. #define TLP_TYPE_PS16 0x00000006
  13. #define TLP_TYPE_PS32 0x00000007
  14. #define TLP_TYPE_PS64 0x00000008
  15. #define TLP_TYPE_PVOID 0x00000009
  16. #define TLP_TYPE_PU8_BUFFER 0x0000000A
  17. #define TLP_TYPE_POS_API_ENTRY 0x0000000B
  18. #define TLP_TYPE_PHALMAC_WLAN_ADDR 0x0000000C
  19. #define TLP_TYPE_PHALMAC_PHY_PARAMETER_INFO 0x0000000D
  20. #define TLP_TYPE_PHALMAC_CH_INFO 0x0000000E
  21. #define TLP_TYPE_PHALMAC_CH_SWITCH_OPTION 0x0000000F
  22. #define TLP_TYPE_PHALMAC_GENERAL_INFO 0x00000010
  23. #define TLP_TYPE_PHALMAC_CMD_PROCESS_STATUS 0x00000011
  24. #define TLP_TYPE_PHALMAC_INTERFACE 0x00000012
  25. #define TLP_TYPE_PHALMAC_MAC_POWER 0x00000013
  26. #define TLP_TYPE_PHALMAC_RXAGG_CFG 0x00000014
  27. #define TLP_TYPE_PHALMAC_WIRELESS_MODE 0x00000015
  28. #define TLP_TYPE_PHALMAC_BW 0x00000016
  29. #define TLP_TYPE_PHALMAC_TRX_MODE 0x00000017
  30. #define TLP_TYPE_PHALMAC_EFUSE_READ_CFG 0x00000018
  31. #define TLP_TYPE_PHALMAC_PACKET_ID 0x00000019
  32. #define TLP_TYPE_PHALMAC_DRV_INFO 0x0000001A
  33. #define TLP_TYPE_PHALMAC_FEATURE_ID 0x0000001B
  34. #define TLP_TYPE_PHALMAC_HW_ID 0x0000001C
  35. #define TLP_TYPE_PHALMAC_DRV_RSVD_PG_NUM 0x0000001D
  36. #define TLP_TYPE_PHALMAC_LA_MODE 0x0000001E
  37. #define TLP_TYPE_PHALMAC_PWR_TRACKING 0x0000001F
  38. #define TLP_TYPE_PHALMAC_EFUSE_BANK 0x00000020
  39. #define TLP_TYPE_PHALMAC_IQK 0x00000021
  40. #define TLP_TYPE_PHALMAC_MU_BFER_INIT_PARA 0x00000022
  41. #define TLP_TYPE_PHALMAC_MU_BFEE_INIT_PARA 0x00000023
  42. #define TLP_TYPE_PHALMAC_SU_BFER_INIT_PARA 0x00000024
  43. #define TLP_TYPE_PHALMAC_SND_ROLE 0x00000025
  44. #define TLP_TYPE_PHALMAC_DATA_RATE 0x00000026
  45. #define TLP_TYPE_PHALMAC_CFG_MUMIMO_PARA 0x00000027
  46. #define TLP_TYPE_PU8_1 0x00000028
  47. #define TLP_TYPE_PHALMAC_PG_EFUSE_INFO 0x00000029
  48. #define TLP_TYPE_PU8_2 0x0000002A
  49. #define TLP_TYPE_PHALMAC_INTF_PHY_PLATFORM 0x0000002B
  50. #define TLP_TYPE_PHALMAC_API_REGISTRY 0x0000002C
  51. #define TLP_TYPE_PHALMAC_DLFW_MEM 0x0000002D
  52. #define TLP_TYPE_PHALMAC_FW_VERSION 0x0000002E
  53. #define TLP_TYPE_PHALMAC_SIDEBAND_INT_CFG 0x0000002F
  54. #define TLP_TYPE_PHALMAC_FIFO_SEL 0x00000030
  55. #define TLP_TYPE_PHALMAC_P2PPS 0x00000031
  56. #define TLP_TYPE_PHALMAC_RX_EXPAND_MODE 0x00000032
  57. #define TLP_TYPE_PHALMAC_PCIE_CFG 0x00000033
  58. #define TLP_TYPE_PHALMAC_SDIO_CMD53_4BYTE_MODE 0x00000034
  59. #define TLP_TYPE_PHALMAC_NETWORK_TYPE_SELECT 0x00000035
  60. #define TLP_TYPE_PHALMAC_BCN_CTRL 0x00000036
  61. #define TLP_TYPE_PHALMAC_SDIO_HW_INFO 0x00000037
  62. typedef struct _HALMAC_TLP_STRUCT {
  63. u32 type;
  64. u32 length;
  65. VOID *ptr;
  66. } HALMAC_TLP_STRUCT, *PHALMAC_TLP_STRUCT;
  67. typedef struct _HALMAC_API_ARG {
  68. HALMAC_API_ID api_id;
  69. u32 arg_count;
  70. u32 arg_type_seq[MAX_ARG_NUM];
  71. } HALMAC_API_ARG, *PHALMAC_API_ARG;
  72. typedef struct _HALMAC_OBJ {
  73. u8 init;
  74. u32 version;
  75. PHALMAC_ADAPTER halmac_adapter;
  76. PHALMAC_API halmac_api_entry;
  77. } HALMAC_OBJ, *PHALMAC_OBJ;
  78. HALMAC_RET_STATUS
  79. halmac_initialize_obj(
  80. IN struct _HALMAC_OBJ *halmac_obj,
  81. INOUT PHALMAC_TLP_STRUCT ptlp,
  82. IN u32 tlpCount
  83. );
  84. HALMAC_RET_STATUS
  85. halmac_deinitialize_obj(
  86. IN struct _HALMAC_OBJ *halmac_obj,
  87. INOUT PHALMAC_TLP_STRUCT ptlp,
  88. IN u32 tlpCount
  89. );
  90. HALMAC_RET_STATUS
  91. halmac_set_information(
  92. IN struct _HALMAC_OBJ *halmac_obj,
  93. IN HALMAC_API_ID api_id,
  94. INOUT PHALMAC_TLP_STRUCT ptlp,
  95. IN u32 tlpCount
  96. );
  97. HALMAC_RET_STATUS
  98. halmac_get_information(
  99. IN struct _HALMAC_OBJ *halmac_obj,
  100. IN HALMAC_API_ID api_id,
  101. INOUT PHALMAC_TLP_STRUCT ptlp,
  102. IN u32 tlpCount
  103. );
  104. #endif