xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/mvl88w8977/mlan/esa/common/pmkCache_rom.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /** @file pmkcache_rom.h
2  *
3  *  @brief This file contains the defien for pmk cache
4  *
5  * Copyright (C) 2014-2017, Marvell International Ltd.
6  *
7  * This software file (the "File") is distributed by Marvell International
8  * Ltd. under the terms of the GNU General Public License Version 2, June 1991
9  * (the "License").  You may use, redistribute and/or modify this File in
10  * accordance with the terms and conditions of the License, a copy of which
11  * is available by writing to the Free Software Foundation, Inc.,
12  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the
13  * worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
14  *
15  * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
16  * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
17  * ARE EXPRESSLY DISCLAIMED.  The License provides additional details about
18  * this warranty disclaimer.
19  */
20 
21 /******************************************************
22 Change log:
23     03/07/2014: Initial version
24 ******************************************************/
25 #ifndef PMK_CACHE_ROM_H__
26 #define PMK_CACHE_ROM_H__
27 
28 #include "wltypes.h"
29 #include "IEEE_types.h"
30 #include "hostsa_ext_def.h"
31 
32 #define PSK_PASS_PHRASE_LEN_MAX 64
33 #define PMK_LEN_MAX  32
34 #define MAX_PMK_SIZE 32
35 
36 typedef struct {
37 	union {
38 		IEEEtypes_MacAddr_t Bssid;
39 		char Ssid[32];
40 	} key;
41 	UINT8 PMK[MAX_PMK_SIZE];	/* PMK / PSK */
42 	UINT8 length;
43 	UINT8 passphrase[PSK_PASS_PHRASE_LEN_MAX];
44 	SINT8 replacementRank;
45 } pmkElement_t;
46 
47 /*!
48 ** \brief      Finds a PMK matching a given BSSID
49 ** \param      pBssid pointer to the desired BSSID
50 ** \return     pointer to the matching PMK.
51 **             NULL, if no matching PMK entry is found
52 */
53 extern UINT8 *pmkCacheFindPMK(void *priv, IEEEtypes_MacAddr_t *pBssid);
54 #if 0
55 extern BOOLEAN (*pmkCacheFindPSKElement_hook) (UINT8 *pSsid,
56 					       UINT8 ssidLen,
57 					       pmkElement_t **ptr_val);
58 #endif
59 extern pmkElement_t *pmkCacheFindPSKElement(void *priv, UINT8 *pSsid,
60 					    UINT8 ssidLen);
61 
62 /*!
63 ** \brief      adds a new PMK entry to PMK cache.
64 ** \param      pBssid pointer to Bssid for which to add the PMK
65 ** \param      pPMK pointer to PMK data
66 */
67 //extern BOOLEAN (*pmkCacheAddPMK_hook)(IEEEtypes_MacAddr_t * pBssid,
68 //                                      UINT8 *pPMK);
69 extern void pmkCacheAddPMK(void *priv, IEEEtypes_MacAddr_t *pBssid,
70 			   UINT8 *pPMK);
71 
72 /*!
73 ** \brief      Adds a new PSK to PMK cache.
74 ** \param      pSsid pointer to desired SSID for which to add the PSK entry.
75 ** \param      ssidLen length of the SSID string.
76 ** \param      pPSK pointer to PSK to store.
77 */
78 #if 0
79 extern BOOLEAN (*pmkCacheAddPSK_hook) (UINT8 *pSsid,
80 				       UINT8 ssidLen, UINT8 *pPSK);
81 #endif
82 extern void pmkCacheAddPSK(void *priv, UINT8 *pSsid,
83 			   UINT8 ssidLen, UINT8 *pPSK, UINT8 *pPassphrase);
84 
85 /*!
86 ** \brief      Delete a particular PMK entry from PMK cache.
87 ** \param      pBssid pointer to BSSID that needs to be deleted
88 */
89 extern void pmkCacheDeletePMK(void *priv, t_u8 *pBssid);
90 
91 /*!
92 ** \brief      delete a particular PSK entry from PMK cache
93 ** \param      Ssid pointer to SSID that needs to be deleted
94 ** \param      ssidLen length of the string pointed to by Ssid
95 */
96 extern void pmkCacheDeletePSK(void *priv, UINT8 *ssid, UINT8 ssidLen);
97 #if 0
98 extern BOOLEAN (*pmkCacheGeneratePSK_hook) (UINT8 *pSsid,
99 					    UINT8 ssidLen,
100 					    char *pPassphrase, UINT8 *pPSK);
101 #endif
102 extern void pmkCacheGeneratePSK(void *priv, UINT8 *pSsid,
103 				UINT8 ssidLen, char *pPassphrase, UINT8 *pPSK);
104 
105 //extern BOOLEAN (*pmkCacheNewElement_hook)(pmkElement_t ** ptr_val);
106 extern pmkElement_t *pmkCacheNewElement(void *priv);
107 
108 //extern BOOLEAN (*pmkCacheFindPMKElement_hook)(IEEEtypes_MacAddr_t * pBssid,
109 //                                              pmkElement_t ** ptr_val);
110 extern pmkElement_t *pmkCacheFindPMKElement(void *priv,
111 					    IEEEtypes_MacAddr_t *pBssid);
112 
113 extern void pmkCacheUpdateReplacementRank(pmkElement_t *pPMKElement);
114 
115 extern SINT8 replacementRankMax;
116 
117 /* ROM linkages */
118 extern SINT32 ramHook_MAX_PMK_CACHE_ENTRIES;
119 extern pmkElement_t *ramHook_pmkCache;
120 extern char *ramHook_PSKPassPhrase;
121 
122 //extern void (*ramHook_hal_SetCpuMaxSpeed)(void);
123 //extern void (*ramHook_hal_RestoreCpuSpeed)(void);
124 
125 #endif
126