/* * TI_IPC_Api.h * * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * Neither the name Texas Instruments nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /*---------------------------------------------------------------*/ /**/ /* TI IPC header file*/ /**/ /* Author : Texas Instruments*/ /**/ /* Filename: TI_IPC_Api.h*/ /**/ /* Version :1.0*/ /**/ /* Last update date : 15/03/2004*/ /**/ /*---------------------------------------------------------------*/ #ifndef _TI_IPC_API_H #define _TI_IPC_API_H #include "tidef.h" #define MAX_REGISTERED_MODULES 5 #define MAX_EVENT_DATA_SIZE 128 #define MAX_SEND_EVENTS 4 #ifdef __cplusplus extern "C" { #endif /*******************Defines*********************/ /* WARNING! DON'T CHANGE THE ORDER OF EVENTS! */ /* OS EVENTS MUST COME FIRST!*/ enum { IPC_EVENT_ASSOCIATED = 0, IPC_EVENT_DISASSOCIATED, IPC_EVENT_LINK_SPEED, IPC_EVENT_AUTH_SUCC, IPC_EVENT_SCAN_REPORT, IPC_EVENT_SCAN_COMPLETE, IPC_EVENT_SCAN_STOPPED, IPC_EVENT_CCKM_START, IPC_EVENT_MEDIA_SPECIFIC, IPC_EVENT_MAX_OS_EVENT = IPC_EVENT_MEDIA_SPECIFIC, IPC_EVENT_EAPOL, IPC_EVENT_BOUND, IPC_EVENT_UNBOUND, IPC_EVENT_PREAUTH_EAPOL, IPC_EVENT_RESERVED2, IPC_EVENT_LOW_RSSI, IPC_EVENT_TSPEC_STATUS, IPC_EVENT_TSPEC_RATE_STATUS, IPC_EVENT_MEDIUM_TIME_CROSS, IPC_EVENT_ROAMING_COMPLETE, IPC_EVENT_EAP_AUTH_FAILURE, IPC_EVENT_WPA2_PREAUTHENTICATION, IPC_EVENT_TRAFFIC_INTENSITY_THRESHOLD_CROSSED, IPC_EVENT_SCAN_FAILED, IPC_EVENT_WPS_SESSION_OVERLAP, IPC_EVENT_RSSI_SNR_TRIGGER, IPC_EVENT_RSSI_SNR_TRIGGER_0, IPC_EVENT_LOGGER, IPC_EVENT_NOT_ASSOCIATED, IPC_EVENT_BSS_LOSS, IPC_EVENT_REASSOCIATION_RESP, IPC_EVENT_IMMEDIATE_SCAN_REPORT, IPC_EVENT_CONTINUOUS_SCAN_REPORT, IPC_EVENT_RSSI_SNR_TRIGGER_1, IPC_EVENT_AP_DISCONNECT, IPC_EVENT_TX_RETRY_FALIURE, IPC_EVENT_RE_AUTH_STARTED, IPC_EVENT_RE_AUTH_COMPLETED, IPC_EVENT_RE_AUTH_TERMINATED, IPC_EVENT_TIMEOUT, IPC_EVENT_GWSI, IPC_EVENT_MAX }; enum { DELIVERY_PUSH =0, DELIVERY_GET_DATA }; enum { SCAN_STATUS_COMPLETE = 0, SCAN_STATUS_STOPPED = 1, SCAN_STATUS_FAILED = 2 }; /************************* IOCTLs Functions *******************************/ TI_HANDLE IPC_Init(void); TI_INT32 IPC_DeInit(void); TI_HANDLE IPC_DeviceOpen(void* AdapterName); /* get hDevice Handle*/ TI_INT32 IPC_DeviceClose(TI_HANDLE hDevice); TI_INT32 IPC_DeviceIoControl(TI_HANDLE hDevice, TI_UINT32 IoControlCode, void* pInBuffer, TI_UINT32 InBufferSize, void* pOutBuffer, TI_UINT32 pOutBufferSize, TI_UINT32* pBytesReturned); /************************* Events Functions *******************************/ typedef struct _IPC_EV_DATA * PIPC_EV_DATA; typedef TI_INT32 (*TI_EVENT_CALLBACK) (PIPC_EV_DATA pData); typedef struct _IPC_EVENT_PARAMS { TI_UINT32 uEventType; TI_HANDLE uEventID; TI_UINT32 uProcessID; TI_UINT32 uDeliveryType; TI_HANDLE hUserParam; /* Handle to back reference*/ TI_EVENT_CALLBACK pfEventCallback; }IPC_EVENT_PARAMS; /* EvParams are assumed to be the first field. Any addtions shoild be made afterwards */ typedef struct _IPC_EV_DATA { IPC_EVENT_PARAMS EvParams; TI_UINT32 uBufferSize; TI_UINT8 uBuffer[MAX_EVENT_DATA_SIZE]; }IPC_EV_DATA; /*this function will also enable event and pass all the parameters about it*/ /* returns unique ID of registered event, to be passed later for unregister*/ TI_INT32 IPC_RegisterEvent(TI_HANDLE hDevice, /* Driver Handle*/ IPC_EVENT_PARAMS* pEvParams); /* size of the structure + size of the params*/ TI_INT32 IPC_UnRegisterEvent(TI_HANDLE hDevice, IPC_EVENT_PARAMS* pEvParams); /* returned by IPC_RegisterEvent*/ /***************************************************************************/ #ifdef __cplusplus } #endif #endif /*_IPC_UTIL_H*/