1a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
2a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * TWDriverRadio.c
3a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
4a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
5a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * All rights reserved.
6a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
7a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Redistribution and use in source and binary forms, with or without
8a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * modification, are permitted provided that the following conditions
9a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * are met:
10a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
11a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Redistributions of source code must retain the above copyright
12a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    notice, this list of conditions and the following disclaimer.
13a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Redistributions in binary form must reproduce the above copyright
14a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    notice, this list of conditions and the following disclaimer in
15a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    the documentation and/or other materials provided with the
16a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    distribution.
17a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Neither the name Texas Instruments nor the names of its
18a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    contributors may be used to endorse or promote products derived
19a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    from this software without specific prior written permission.
20a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
21a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
33a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
34a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
35a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \file  TWDriverRadio.c
36a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  \brief TI WLAN BIT
37a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
38a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  \see   TWDriver.h
39a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
40a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
41a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define __FILE_ID__  FILE_ID_119
42a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "TWDriver.h"
43a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "osApi.h"
44a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "TWDriverInternal.h"
45a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "CmdBld.h"
46a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*****************************************************************************
47a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*                                                                            *
48a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*                       Static functions                                     *
49a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*                                                                            *
50a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt******************************************************************************/
51a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
52a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
53a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
54a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*****************************************************************************
55a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*                                                                            *
56a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*                       API functions	                                     *
57a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*                                                                            *
58a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt******************************************************************************/
59a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/****************************************************************************************
60a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *                        TWDriverTestCB
61a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************************/
62a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid TWDriverTestCB(TI_HANDLE hTWD,
63a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt					TI_STATUS eStatus,
64a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt					TI_HANDLE pTestCmdParams)
65a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
66a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	TTwd *pTWD = (TTwd *)hTWD;
67a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
68a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	if (pTWD->pRadioCb != NULL)
69a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	{
70a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	os_memoryCopy(NULL, pTWD->pRadioCb, &pTWD->testCmd.testCmd_u, sizeof(pTWD->testCmd.testCmd_u));
71a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	}
72a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
73a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	if (pTWD->fRadioCb != NULL)
74a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	{
75a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pTWD->fRadioCb(pTWD->hRadioCb, eStatus, pTWD->pRadioCb);
76a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}
77a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}
78a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
79a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/****************************************************************************************
80a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *                        TWDriverTest
81a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************************/
82a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS TWDriverTest(TI_HANDLE hTWD,
83a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt					   TestCmdID_enum eTestCmd,
84a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt					   void* pTestCmdParams,
85a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt					   TTestCmdCB fCb,
86a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt					   TI_HANDLE hCb)
87a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
88a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	TTwd *pTWD = (TTwd *)hTWD;
89a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
90a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	/* check parameters */
91a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	if (( hTWD == NULL ) ||
92a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		( eTestCmd >= MAX_TEST_CMD_ID ) ||
93a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		( fCb == NULL ) ||
94a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		( hCb == NULL ))
95a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	{
96a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		return (TI_NOK);
97a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	}
98a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
99a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pTWD->testCmd.testCmdId = eTestCmd;
100a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
101a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	if (pTestCmdParams != NULL)
102a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	{
103a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	os_memoryCopy(NULL, &pTWD->testCmd.testCmd_u, pTestCmdParams, sizeof(pTWD->testCmd.testCmd_u));
104a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	}
105a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
106a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pTWD->fRadioCb = fCb;
107a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pTWD->pRadioCb = pTestCmdParams;
108a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pTWD->hRadioCb = hCb;
109a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
110a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	return(cmdBld_CmdTest (pTWD->hCmdBld,
111a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt						   (TI_HANDLE)TWDriverTestCB,
112a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt						   hTWD,
113a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt						   &pTWD->testCmd));
114a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}
115