diff options
| author | Dave Wilson <[email protected]> | 2015-03-17 19:50:07 -0700 |
|---|---|---|
| committer | Dave Wilson <[email protected]> | 2015-03-17 19:50:07 -0700 |
| commit | 97cf5197cf5b882b2c689d8dc2b555f2edf8f418 (patch) | |
| tree | 46f3701832d70b420eb0fc0eb93261f9da45db3f /network/wlan/ihvsample/utils.h | |
| parent | ef1905bf1e8825bb31120dfb27e0daf3154d859a (diff) | |
Initial publish
Diffstat (limited to 'network/wlan/ihvsample/utils.h')
| -rw-r--r-- | network/wlan/ihvsample/utils.h | 318 |
1 files changed, 318 insertions, 0 deletions
diff --git a/network/wlan/ihvsample/utils.h b/network/wlan/ihvsample/utils.h new file mode 100644 index 00000000..d2d4a80c --- /dev/null +++ b/network/wlan/ihvsample/utils.h @@ -0,0 +1,318 @@ + + +////////////////// +// Macros // +////////////////// + + +// Trace Macros + + +VOID +SampleTraceFn +( + LPCSTR pszFormat, + LPCSTR pszVal1, + DWORD dwVal1 +); + +#define TRACE_MESSAGE( _x ) SampleTraceFn( "INFO: %s\n",_x, 0 ); +#define TRACE_MESSAGE_VAL( _x, _y ) SampleTraceFn( "INFO: %s %lu\n", _x, _y ); + + +// +// Error Handling +// +#define BAIL_ON_WIN32_ERROR( __x ) \ + if ( ERROR_SUCCESS != (__x) ) \ + { \ + goto error; \ + } \ + + +// +// COM failure +// +#define BAIL_ON_FAILURE( __hr ) \ + if ( FAILED( __hr ) ) \ + { \ + goto error; \ + } \ + +// +// combine win32 and com error codes. +// +#define WIN32_FROM_HRESULT(hr) \ + (SUCCEEDED(hr) ? ERROR_SUCCESS : \ + (HRESULT_FACILITY(hr) == FACILITY_WIN32 ? HRESULT_CODE(hr) : (hr))) + + +// Combined Error Macro +#define WIN32_COMBINED_ERROR( _dwError, _hr ) ( (_dwError)?(_dwError):WIN32_FROM_HRESULT((_hr))) + +// +// Unconditional bail +// +#define BAIL( ) goto error; + + +// +// Maximum number of new threads +// to spawn at any given time. +// +#define MAX_THREAD_COUNT 100 + + + +// +// Debug Macro. +// +#ifdef DBG +#define ASSERT(exp) \ + if (!(exp)) \ + { \ + AssertFunc( __FILE__, __LINE__ ); \ + } + +#define ASSERTFAILURE() \ + AssertFunc( __FILE__, __LINE__ ); +#else +#define ASSERT(exp) +#define ASSERTFAILURE() +#endif // DBG + + + +// Private Memory alloc function +LPVOID +PrivateMemoryAlloc +( + size_t MemSize +); + +// Private Memory free function +VOID +PrivateMemoryFree +( + LPVOID pvBuffer +); + + +// +// Array length. +// +#define ARRAY_LENGTH( _x ) (sizeof( (_x) ) / sizeof( (_x)[0] )) + +// +// Declarations for service specific global Variables +// +extern PDOT11EXT_APIS g_pDot11ExtApi; +extern CRITICAL_SECTION g_csSynch; +extern DWORD g_dwThreadCount; +extern DWORD g_dwSessionID; +extern BOOL g_bAllowInit; + + + + + + + + +// Pre-declaration for the ADAPTER_DETAILS structure. +typedef +struct _ADAPTER_DETAILS +ADAPTER_DETAILS, *PADAPTER_DETAILS; + + + + +// +// Handler type for pre-association. +// +typedef +DWORD +(WINAPI *PRE_ASSOCIATE_FUNCTION) +( + PADAPTER_DETAILS pAdapterDetails, + DWORD* pdwReasonCode +); + + +// +// Handler type for post-association. +// +typedef +DWORD +(WINAPI *POST_ASSOCIATE_FUNCTION) +( + PADAPTER_DETAILS pAdapterDetails, + HANDLE hSecuritySessionID, + PDOT11_PORT_STATE pPortState, + ULONG uDot11AssocParamsBytes, + PDOT11_ASSOCIATION_COMPLETION_PARAMETERS pDot11AssocParams +); + + + +// +// Handler type for stop-post-association. +// +typedef +DWORD +(WINAPI *STOP_POST_ASSOCIATE_FUNCTION) +( + PADAPTER_DETAILS pAdapterDetails, + PDOT11_MAC_ADDRESS pPeer, + DOT11_ASSOC_STATUS dot11AssocStatus +); + + + +// +// Handler type for receive packet. +// +typedef +DWORD +(WINAPI *IHV_RECEIVE_PACKET_HANDLER) +( + PADAPTER_DETAILS pAdapterDetails, + DWORD dwInBufferSize, + LPVOID pvInBuffer +); + + + +// +// Handler type for IHV result indication. +// +typedef +DWORD +(WINAPI *IHV_INDICATE_RESULT_HANDLER) +( + PADAPTER_DETAILS pAdapterDetails, + DOT11_MSONEX_RESULT msOneXResult, + PDOT11_MSONEX_RESULT_PARAMS pDot11MsOneXResultParams +); + + + +// Assert function in debug builds. +VOID +AssertFunc +( + _In_ LPCSTR pszFile, + int nLine +); + + +// +// Register intention to start shut down. +// +VOID +StartShutdown +( + VOID +); + + +// +// Wait for posted thread count to go down to zero. +// +VOID +WaitOnZeroThreads +( + VOID +); + + +// +// Populate IHV handler function pointers to IHV Framework. +// +VOID +HandlerInit +( + OUT PDOT11EXT_IHV_HANDLERS pDot11IHVHandlers +); + + +// +// Call createthread to start a new thread and ensure +// the adapter stays active till the thread finishes +// by putting a refcount increment/decrement around +// the lifetime of the thread. +// +DWORD +StartNewProtectedThread +( + HANDLE hIhvExtAdapter, + LPTHREAD_START_ROUTINE pStartRoutine, + LPVOID pvParams +); + + +// Typedef for unaligned BSS Entry to process beacons. +typedef UNALIGNED DOT11_BSS_ENTRY* PULDOT11_BSS_ENTRY; + +// +// Function to match beacon and profile. +// +BOOL +WINAPI +MatchBssDescription +( + PDOT11EXT_IHV_PROFILE_PARAMS pIhvProfileParams, + PIHV_CONNECTIVITY_PROFILE pConnectivityProfile, + PIHV_SECURITY_PROFILE pSecurityProfile, + PULDOT11_BSS_ENTRY pBssEntry +); + + +// +// Functions to copy and free discovery profiles. +// + +DWORD +CopyConnectivityProfile +( + IN PDOT11EXT_IHV_CONNECTIVITY_PROFILE pSrc, + OUT PDOT11EXT_IHV_CONNECTIVITY_PROFILE pDst +); + + +VOID +FreeConnectivityProfile +( + IN PDOT11EXT_IHV_CONNECTIVITY_PROFILE pSrc +); + + +DWORD +CopySecurityProfile +( + IN PDOT11EXT_IHV_SECURITY_PROFILE pSrc, + OUT PDOT11EXT_IHV_SECURITY_PROFILE pDst +); + +VOID +FreeSecurityProfile +( + IN PDOT11EXT_IHV_SECURITY_PROFILE pSrc +); + + + +VOID +FreeDiscoveryProfile +( + IN PDOT11EXT_IHV_DISCOVERY_PROFILE pSrc +); + + + +DWORD +CopyDiscoveryProfile +( + IN PDOT11EXT_IHV_DISCOVERY_PROFILE pSrc, + OUT PDOT11EXT_IHV_DISCOVERY_PROFILE pDst +); |
