wifi_mac.h
上传用户:gelin96
上传日期:2017-01-08
资源大小:20993k
文件大小:7k
源码类别:

MTK

开发平台:

C++ Builder

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2001
  8. *
  9. *****************************************************************************/
  10. /*****************************************************************************
  11.  *
  12.  * Filename:
  13.  * ---------
  14.  *   wifi_mac.h
  15.  *
  16.  * Project:
  17.  * --------
  18.  *   Maui META APP
  19.  *
  20.  * Description:
  21.  * ------------
  22.  *   WiFi MAC header
  23.  *
  24.  * Author:
  25.  * -------
  26.  *  Andy Ueng (mtk00490)
  27.  *
  28.  *============================================================================
  29.  *             HISTORY
  30.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  31.  *------------------------------------------------------------------------------
  32.  * $Revision$
  33.  * $Modtime$
  34.  * $Log$
  35.  *
  36.  *------------------------------------------------------------------------------
  37.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  38.  *============================================================================
  39.  ****************************************************************************/
  40. #ifndef  _WIFI_MAC_H_
  41. #define  _WIFI_MAC_H_
  42. #include "meta.h"
  43. #ifndef  _MAN_HANDLE_H_
  44. #include "man_handle.h"
  45. #endif
  46. #ifndef  _WIFI_COMMON_H_
  47. #include "wifi_common.h"
  48. #endif
  49. /*---------------------------------------------------------------------------*/
  50. #define  STATE_MAC_OK          0
  51. #define  STATE_MAC_FAIL        1
  52. #define  STATE_MAC_TIMEOUT     2
  53. #define  STATE_MAC_STOP        3
  54. #define  STATE_MAC_SECTION_OK  4
  55. // MCR
  56. #define WIFI_SC_NUM         4   // System Control
  57. #define WIFI_MDP_NUM       18   // Miscellaneous and Debug Port
  58. #define WIFI_PLCI_NUM      12   // Physical Layer Control Interface
  59. #define WIFI_MPTC_NUM      18   // MAC Protocol Timing Control
  60. #define WIFI_NC_NUM         4   // NVA Control
  61. #define WIFI_BG_NUM         8   // Beacon Generation
  62. #define WIFI_SE_NUM        11   // Security Engine
  63. #define WIFI_TC_NUM        12   // Transmitter Control
  64. #define WIFI_RC_NUM        15   // Receiver Control
  65. #define WIFI_HIF_SDIO_NUM   7   // HIF_SDIO
  66. #define WIFI_HIF_SPI_NUM    6   // HIF_SPI
  67. #define WIFI_MCR_MAX_NUM   WIFI_MPTC_NUM
  68. #define WIFI_HIF_SDIO_SPECIFIC_NUM  2
  69. #define WIFI_HIF_SDIO_PORT_NUM      5
  70. #define WIFI_HIF_SPI_SPECIFIC_NUM   2
  71. #define WIFI_HIF_SPI_PORT_NUM       4
  72. // MCR16
  73. #define WIFI_HIF_HPI_SPECIFIC_NUM   4
  74. #define WIFI_HIF_HPI_PORT_NUM       4
  75. #define WIFI_HIF_HPI_NUM            8   // HIF_HPI
  76. #define WIFI_HIF_MAX_NUM            WIFI_HIF_HPI_NUM
  77. #define WIFI_MCR16_MAX_NUM          WIFI_HIF_HPI_NUM
  78. /*---------------------------------------------------------------------------*/
  79. typedef enum
  80. {
  81.     WIFI_MCR_SC = 0,
  82.     WIFI_MCR_MDP,
  83.     WIFI_MCR_PLCI,
  84.     WIFI_MCR_MPTC,
  85.     WIFI_MCR_NC,
  86.     WIFI_MCR_BG,
  87.     WIFI_MCR_SE,
  88.     WIFI_MCR_TC,
  89.     WIFI_MCR_RC,
  90.     WIFI_MCR_HIF_SDIO,
  91.     WIFI_MCR_HIF_SPI,
  92.     WIFI_MCR_TYPE_NUM
  93. }E_WIFI_MCR_TYPE;
  94. typedef enum
  95. {
  96.     WIFI_MCR16_HIF_HPI=0,
  97.     WIFI_MCR16_TYPE_NUM
  98. }E_WIFI_MCR16_TYPE;
  99. typedef struct
  100. {
  101.     AnsiString name;
  102.     bool checked;
  103.     bool RO; // read only
  104.     bool RC; // R/C
  105.     unsigned int addr;
  106.     unsigned int value;
  107. } S_WIFI_MCR_SETTING;
  108. typedef struct
  109. {
  110.     AnsiString name;
  111.     bool checked;
  112.     bool RO; // read only
  113.     bool RC; // R/C
  114.     unsigned int addr;
  115.     unsigned short value;
  116. } S_WIFI_MCR16_SETTING;
  117. typedef enum
  118. {
  119.    WIFI_HIF_SDIO_SPECIFIC = 0,
  120.    WIFI_HIF_SDIO_PORT0,
  121.    WIFI_HIF_SDIO_PORT1,
  122.    WIFI_HIF_SDIO_PORT2,
  123.    WIFI_HIF_SDIO_PORT3,
  124.    WIFI_HIF_SDIO_PORT4
  125. } E_WIFI_HIF_SDIO;
  126. typedef enum
  127. {
  128.    WIFI_HIF_HPI_SPECIFIC = 0,
  129.    WIFI_HIF_HPI_PORT
  130. } E_WIFI_HIF_HPI;
  131. typedef enum
  132. {
  133.    WIFI_HIF_SPI_SPECIFIC = 0,
  134.    WIFI_HIF_SPI_PORT0,
  135.    WIFI_HIF_SPI_PORT1,
  136.    WIFI_HIF_SPI_PORT2,
  137.    WIFI_HIF_SPI_PORT3,
  138. } E_WIFI_HIF_SPI;
  139. typedef struct
  140. {
  141.     WiFi_MACReg32_S mac_reg32[512];
  142.     unsigned int count;
  143. } S_WiFi_MCR;
  144. typedef struct
  145. {
  146.     WiFi_MACReg16_S mac_reg16[WIFI_MAX_COUNT];
  147.     unsigned int count;
  148. } S_WiFi_MCR16;
  149. /*---------------------------------------------------------------------------*/
  150. class  CWIFIMAC
  151. {
  152. private:
  153.      // common
  154.      int   m_iConfirmState;
  155.      bool  m_bIsRunning;
  156.      CMETAHANDLE m_META_HANDLE_Obj;
  157.      
  158.      bool  m_bHasMeasured;
  159.      char             *m_pcMacAddrBuf;
  160.      int               m_iMacAddrBufSize;
  161.      WiFi_MacAddress_S  m_mac_addr;
  162.      S_WiFi_MCR        m_sMCR;
  163.      S_WiFi_MCR16      m_sMCR16;
  164.      //unsigned int m_uiMacAddr;
  165.      //unsigned int m_uiMacAddrBegin;
  166.      //unsigned int m_uiMacAddrEnd;
  167.      //unsigned int m_uiMacAddrStep;
  168.      //unsigned int m_uiMacData;
  169.      S_WIFI_MCR_SETTING  m_sMCR_Setting[WIFI_MCR_TYPE_NUM][WIFI_MCR_MAX_NUM];
  170.      S_WIFI_MCR16_SETTING  m_sMCR16_Setting[WIFI_MCR16_TYPE_NUM][WIFI_MCR16_MAX_NUM];
  171. protected:
  172.    void  Confirm( int confirm_state );
  173. public:
  174.    CWIFIMAC( void );
  175.    ~CWIFIMAC();
  176.    void  REQ_Finish( void );
  177.    void  REQ_TimeOut( void );
  178. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  179.  // Public member
  180.    void  (*ConfirmCallback)( void );
  181.    void  REQ_Stop(  );
  182.    // NVRAM
  183.    bool  Decompose_MacAddress( void );
  184.    bool  Compose_MacAddress( void );
  185.    void  REQ_Read_From_NVRAM( void );
  186.    void  CNF_ReadFromNVRAM( void );
  187.    void  REQ_Write_To_NVRAM( void );
  188.    void  CNF_WriteToNVRAM( void );
  189.    // MCR setting
  190.    // resiger
  191.    void  REQ_Read_MCR_Setting_From_Reg_Start( S_WiFi_MCR &mcr );
  192.    void  REQ_Read_MCR_Setting_From_Reg( void );
  193.    void  REQ_Write_MCR_Setting_To_Reg_Start( S_WiFi_MCR &mcr );
  194.    void  REQ_Write_MCR_Setting_To_Reg( void );
  195.    void  REQ_Read_MCR16_Setting_From_Reg_Start( S_WiFi_MCR16 &mcr16 );
  196.    void  REQ_Read_MCR16_Setting_From_Reg( void );
  197.    void  REQ_Write_MCR16_Setting_To_Reg_Start( S_WiFi_MCR16 &mcr16 );
  198.    void  REQ_Write_MCR16_Setting_To_Reg( void );
  199.    // INI file
  200.    bool  REQ_Read_From_File( char *filename, WiFi_HostInterface_E host_inf );
  201.    bool  REQ_Write_To_File( char *filename, WiFi_HostInterface_E host_inf );
  202.    // global information
  203.    int   Get_ConfirmState( void );
  204.    unsigned int   Get_MCR_Setting_Value( int type, int idx );
  205.    void           Set_MCR_Setting_Value( int type, int idx, unsigned int value );
  206.    unsigned short Get_MCR16_Setting_Value( int type, int idx );
  207.    void           Set_MCR16_Setting_Value( int type, int idx, unsigned short value );
  208.    void           Set_MCR_Setting( int type, int idx, S_WIFI_MCR_SETTING mcr );
  209.    void           Set_MCR16_Setting( int type, int idx, S_WIFI_MCR16_SETTING mcr16 );
  210.    S_WiFi_MCR     Get_MCR( void );
  211.    void           Set_MCR( S_WiFi_MCR &mcr );
  212.    S_WiFi_MCR16   Get_MCR16( void );
  213.    void           Set_MCR16( S_WiFi_MCR16 &mcr16 );
  214. };
  215. /*---------------------------------------------------------------------------*/
  216. #endif