1a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
2a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * osApi.h
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/*--------------------------------------------------------------------------*/
36a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Module:      OSAPI.H*/
37a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**/
38a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Purpose:     This module defines unified interface to the OS specific*/
39a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*              sources and services.*/
40a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**/
41a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*--------------------------------------------------------------------------*/
42a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
43a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef __OS_API_H__
44a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define __OS_API_H__
45a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
46a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \file  osApi.h
47a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Operating System APIs	\n
48a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This module defines unified interface to the OS specific sources and services
49a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
50a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
51a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "tidef.h"
52a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "TI_IPC_Api.h"
53a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
54a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifdef __cplusplus
55a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtextern "C" {
56a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
57a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
58a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
59a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \struct TI_CONNECTION_STATUS
60a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \struct *PTI_CONNECTION_STATUS
61a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Ti Connection Status
62a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
63a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
64a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
65a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
66a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
67a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef struct
68a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
69a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT32      Event;
70a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT8*      Data;
71a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} TI_CONNECTION_STATUS, *PTI_CONNECTION_STATUS;
72a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
73a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef struct
74a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
75a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT8 	uFormat;
76a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT8 	uLevel;
77a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT8 	uParamsNum;
78a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT8 	uReserved;
79a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT16 	uFileId;
80a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT16 	uLineNum;
81a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} TTraceMsg;
82a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
83a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define OS_PAGE_SIZE            4096
84a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define MAX_MESSAGE_SIZE        500
85a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define MICROSECOND_IN_SECONDS  1000000
86a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
87a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define UINT16_MAX_VAL					0xffff
88a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define UINT8_MAX_VAL					0xff
89a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
90a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TRACE_FORMAT_8_BITS_PARAMS		2
91a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TRACE_FORMAT_16_BITS_PARAMS		4
92a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TRACE_FORMAT_32_BITS_PARAMS		6
93a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
94a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TRACE_MSG_MAX_PARAMS			32
95a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TRACE_MSG_MIN_LENGTH			(sizeof(TTraceMsg))
96a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TRACE_MSG_MAX_LENGTH			((TRACE_MSG_MAX_PARAMS * 4) + sizeof(TTraceMsg))
97a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
98a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define INSERT_BYTE(pBuf, dataByte)     (*((TI_UINT8  *)pBuf) = (TI_UINT8 )dataByte ); pBuf++;
99a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define INSERT_2_BYTES(pBuf, dataBytes) (*((TI_UINT16 *)pBuf) = (TI_UINT16)dataBytes); pBuf+=2;
100a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define INSERT_4_BYTES(pBuf, dataBytes) (*((TI_UINT32 *)pBuf) = (TI_UINT32)dataBytes); pBuf+=4;
101a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
102a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
103a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/****************************************************************************************
104a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt						START OF OS API (Common to all GWSI LIB, Driver and TI Driver)
105a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*****************************************************************************************/
106a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
107a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
108a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/****************************************************************************************
109a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                        OS HW API NEEDED BY DRIVER
110a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*****************************************************************************************/
111a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
112a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Disable IRQ
113a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
114a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
115a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
116a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
117a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
118a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function disables the Interrupts
119a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
120a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
121a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
122a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_disableIrq (TI_HANDLE OsContext);
123a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
124a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Enable IRQ
125a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
126a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
127a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
128a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
129a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
130a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function enables the Interrupts
131a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
132a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
133a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
134a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_enableIrq (TI_HANDLE OsContext);
135a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
136a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS  IRQ Serviced
137a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
138a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
139a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
140a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
141a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
142a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function is used in Level IRQ only. At this point the interrupt line is not asserted anymore
143a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * and we can inform the OS to enable IRQ again.
144a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
145a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
146a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
147a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_InterruptServiced (TI_HANDLE OsContext);
148a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
149a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/****************************************************************************************
150a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *						OS Report API													*
151a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************************/
152a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
153a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Set Debug Mode
154a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
155a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  enable 	- Indicates if debug mode should be enabled or disabled ( TI_TRUE | TI_FALSE )
156a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
157a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
158a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
159a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function sets the Debug Mode flag to True or False - according to user's request
160a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
161a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
162a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
163a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_setDebugMode (TI_BOOL enable);
164a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
165a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Printf
166a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
167a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  format 	- String to print (with formatted parametrs in string if needed) and parameters values
168a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *					  if formatted parameters are used in string
169a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
170a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
171a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
172a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function prints formatted output using OS available printf method
173a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
174a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
175a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
176a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_printf (const char *format ,...);
177a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
178a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/****************************************************************************************
179a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *						OS Memory API													*
180a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************************/
181a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
182a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Memory Allocation
183a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
184a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
185a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Size 		- Size (in bytes) to be allocated
186a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return Pointer to the allocated memory on success	;  NULL on failure (there isn't enough memory available)
187a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
188a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
189a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function allocates resident (nonpaged) system-space memory with calling specific OS allocation function.	\n
190a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * It is assumed that this function will never be called in an interrupt context since the OS allocation function
191a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * has the potential to put the caller to sleep  while waiting for memory to become available.
192a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
193a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
194a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
195a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid *os_memoryAlloc (TI_HANDLE OsContext,TI_UINT32 Size);
196a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
197a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Memory CAllocation
198a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
199a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
200a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Number 		- Number of element to be allocated
201a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Size 		- Size (in bytes) of one element
202a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return Pointer to the allocated memory on success	;  NULL on failure (there isn't enough memory available)
203a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
204a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
205a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function allocates an array in memory with elements initialized to 0.
206a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Allocates resident (nonpaged) system-space memory for an array with elements initialized to 0,
207a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * with specific OS allocation function.
208a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * It is assumed that this function will never be called in an interrupt context since the OS allocation function
209a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * has the potential to put the caller to sleep  while waiting for memory to become available.
210a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
211a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
212a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
213a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid *os_memoryCAlloc (TI_HANDLE OsContext, TI_UINT32 Number, TI_UINT32 Size);
214a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
215a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Memory Set
216a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
217a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
218a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pMemPtr 		- Pointer to the base address of a memory block
219a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Value 		- Value to set to memory block
220a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Length 		- Length (in bytes) of memory block
221a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
222a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
223a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
224a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function fills a block of memory with a given value
225a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
226a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
227a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
228a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_memorySet (TI_HANDLE OsContext, void *pMemPtr, TI_INT32 Value, TI_UINT32 Length);
229a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
230a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Memory Zero
231a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
232a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
233a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pMemPtr 		- Pointer to the base address of a memory block
234a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Length 		- Length (in bytes) of memory block
235a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
236a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
237a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
238a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function fills a block of memory with zeros
239a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
240a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
241a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
242a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_memoryZero (TI_HANDLE OsContext, void *pMemPtr, TI_UINT32 Length);
243a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
244a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Memory Copy
245a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
246a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
247a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pDestination - Pointer to destination buffer
248a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pSource 		- Pointer to Source buffer
249a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Size 		- Size (in bytes) to copy
250a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
251a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
252a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
253a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function copies a specified number of bytes from one caller-supplied location (source buffer) to another (destination buffer)
254a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
255a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
256a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
257a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_memoryCopy (TI_HANDLE OsContext, void *pDestination, void *pSource, TI_UINT32 Size);
258a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
259a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Memory Free
260a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
261a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
262a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pMemPtr 		- Pointer to the base address of a memory block
263a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Size 		- Size (in bytes) to free
264a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
265a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
266a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
267a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function releases a block of memory which was previously allocated by user
268a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
269a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
270a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
271a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_memoryFree (TI_HANDLE OsContext, void *pMemPtr, TI_UINT32 Size);
272a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
273a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Memory Compare
274a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
275a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
276a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Buf1 		- Pointer to the first buffer in comperation
277a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Buf2 		- Pointer to the second buffer in comperation
278a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Count 		- Count (in bytes) to compare
279a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return A value which indicates the relationship between the two compared buffers:
280a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *         value < 0:	Buf1 less than Buf2
281a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *         value == 0: 	Buf1 identical to Buf2
282a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *         value > 0: 	Buf1 greater than Buf2
283a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
284a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
285a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function compares between two given buffers
286a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
287a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
288a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
289a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_INT32 os_memoryCompare (TI_HANDLE OsContext, TI_UINT8* Buf1, TI_UINT8* Buf2, TI_INT32 Count);
290a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
291a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Memory Allocation for HW DMA
292a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
293a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pOsContext 	- Handle to the OS object
294a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Size 		- Size (in bytes) to allocate
295a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return Pointer to the allocated memory on success	;  NULL on failure (there isn't enough memory available)
296a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
297a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
298a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function allocates resident (nonpaged) system-space memory for HW DMA operations
299a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
300a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
301a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
302a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid *os_memoryAlloc4HwDma (TI_HANDLE pOsContext, TI_UINT32 Size);
303a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
304a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Memory for HW DMA Free
305a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
306a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pOsContext 	- Handle to the OS object
307a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pMem_ptr 	- Pointer to the base virtual address of allocated memory block
308a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *                        This is the address that was returned to user when he allocated the memory for HW DMA usage
309a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Size 		- Size (in bytes) of the memory block to be released. This parameter must be identical to the Length
310a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *						  which was given by the user when he allocated the memory block for HW DMA usage
311a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return Pointer to the allocated memory on success	;  NULL on failure (there isn't enough memory available)
312a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
313a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
314a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function releases a block of memory previously allocated by user for HW DMA operations
315a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
316a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
317a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
318a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_memory4HwDmaFree (TI_HANDLE pOsContext, void *pMem_ptr, TI_UINT32 Size);
319a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
320a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Memory Copy from User
321a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
322a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
323a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pDstPtr 		- Pointer to destination buffer
324a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pSrcPtr 		- Pointer to Source buffer
325a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Size 		- Size (in bytes) to copy
326a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return TI_OK on success	;  TI_NOK otherwise
327a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
328a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
329a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function copies a specified number of bytes from one caller-supplied location (Source) to another (Destination)
330a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
331a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
332a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
333a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtint os_memoryCopyFromUser (TI_HANDLE OsContext, void *pDstPtr, void *pSrcPtr, TI_UINT32 Size);
334a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
335a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Memory Copy To User
336a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
337a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
338a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pDstPtr 		- Pointer to destination buffer
339a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pSrcPtr 		- Pointer to Source buffer
340a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Size 		- Size (in bytes) to copy
341a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return TI_OK on success	;  TI_NOK otherwise
342a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
343a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
344a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function copies a specified number of bytes from one caller-supplied location (Source) to another (Destination)
345a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
346a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
347a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
348a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtint os_memoryCopyToUser (TI_HANDLE OsContext, void *pDstPtr, void *pSrcPtr, TI_UINT32 Size);
349a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
350a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/****************************************************************************************
351a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *							OS TIMER API												*
352a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************************/
353a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  Timer Callback Function
354a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
355a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Context 	- Handle to the OS object
356a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
357a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
358a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
359a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This callback is passed by user to OS timer when created, and is called directly from OS timer context when expired.
360a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * E.g. the user user the timer in order to operate this function after a defined time expires
361a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
362a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
363a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef void (*fTimerFunction)(TI_HANDLE Context);
364a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
365a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Timer Create
366a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
367a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
368a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pRoutine 	- Pointer to user's Timer Callback function
369a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  hFuncHandle 	- Handle to user's Timer Callback function parameters
370a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return Handle to timer object on success	;  NULL on failure
371a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
372a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
373a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function creates and initializes an OS timer object associated with a user's Timer Callback function	\n
374a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \note   1) The user's callback is called directly from OS timer context when expired.
375a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \note   2) In some OSs, it may be needed to use an intermediate callback in the
376a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \note      osapi layer (use os_timerHandlr for that).
377a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
378a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
379a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
380a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_HANDLE os_timerCreate (TI_HANDLE OsContext, fTimerFunction pRoutine, TI_HANDLE hFuncHandle);
381a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
382a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Timer Destroy
383a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
384a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
385a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  TimerHandle 	- Handle to timer object which user got when created the timer
386a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
387a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
388a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
389a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function destroys the OS timer object which was previously created by user
390a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
391a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
392a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
393a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_timerDestroy (TI_HANDLE OsContext, TI_HANDLE TimerHandle);
394a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
395a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Timer Start
396a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
397a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
398a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  TimerHandle 	- Handle to timer object which user got when created the timer
399a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  DelayMs 		- The time in MS untill the timer is awaken
400a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
401a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
402a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
403a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function Start the OS timer object which was previously created by user
404a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
405a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
406a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
407a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_timerStart (TI_HANDLE OsContext, TI_HANDLE TimerHandle, TI_UINT32 DelayMs);
408a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
409a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Timer Stop
410a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
411a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
412a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  TimerHandle 	- Handle to timer object which user got when created the timer
413a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
414a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
415a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
416a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function Stops the OS timer object which was previously created by user
417a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
418a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
419a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
420a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_timerStop (TI_HANDLE OsContext, TI_HANDLE TimerHandle);
421a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
422a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Periodic Interrupt Timer Start
423a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
424a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
425a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
426a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
427a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
428a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function starts the periodic interrupt mechanism. This function is used when PRIODIC_INTERRUPT mode is used.
429a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This Mode is enabled when interrupts that are usually received from the FW are masked,
430a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * and there is need to check- in a given time periods - if handling of any FW interrupt is needed.
431a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
432a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
433a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
434a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifdef PRIODIC_INTERRUPT
435a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_periodicIntrTimerStart (TI_HANDLE OsContext);
436a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
437a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
438a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Time Stamp Ms
439a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
440a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
441a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return The number of milliseconds that have elapsed since the system was booted
442a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
443a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
444a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function returns the number of milliseconds that have elapsed since the system was booted.
445a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
446a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_UINT32 os_timeStampMs (TI_HANDLE OsContext);
447a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
448a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Time Stamp Us
449a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
450a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
451a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return The number of microseconds that have elapsed since the system was booted
452a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
453a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
454a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function returns the number of microseconds that have elapsed since the system was booted.	\n
455a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Note that sometimes this function will be called with NULL(!!!) as argument!
456a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
457a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_UINT32 os_timeStampUs (TI_HANDLE OsContext);
458a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
459a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Stall uSec
460a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
461a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
462a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  uSec 		- The time to delay in microseconds
463a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
464a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
465a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
466a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function makes delay in microseconds
467a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
468a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
469a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
470a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_StalluSec (TI_HANDLE OsContext, TI_UINT32 uSec);
471a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
472a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
473a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/****************************************************************************************
474a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *							Protection services	API										*
475a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************************/
476a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
477a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Protect Create
478a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
479a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
480a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return Handle of the created mutex/spin lock object on Success	; NULL on Failure (not enough memory available or problems to initializing the mutex)
481a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
482a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
483a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function allocates a mutex/spin lock object.
484a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * The mutex/spinlock object which is created by this function is used for mutual-exclusion and protection of resources which are shared between
485a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * multi-Tasks/Threads
486a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
487a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
488a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
489a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_HANDLE os_protectCreate (TI_HANDLE OsContext);
490a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
491a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Protect Destroy
492a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
493a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 		- Handle to the OS object
494a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  ProtectContext 	- Handle to the mutex/spin lock object
495a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
496a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
497a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
498a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function destroys s a mutex/spin lock object which was previously created by user:
499a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * it frees the mutex/spin lock and then frees the object's memory
500a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
501a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
502a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
503a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_protectDestroy (TI_HANDLE OsContext, TI_HANDLE ProtectContext);
504a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
505a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Protect Lock
506a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
507a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 		- Handle to the OS object
508a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  ProtectContext 	- Handle to the mutex/spin lock object
509a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
510a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
511a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
512a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function locks the mutex/spin lock object. E.g. the caller acquires a mutex/spin lock and gains exclusive
513a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * access to the shared resources, that the mutex/spin lock protects of.
514a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
515a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
516a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
517a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_protectLock (TI_HANDLE OsContext, TI_HANDLE ProtectContext);
518a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
519a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Protect Unlock
520a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
521a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 		- Handle to the OS object
522a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  ProtectContext 	- Handle to the mutex/spin lock object
523a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
524a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
525a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
526a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function unlocks the mutex/spin lock object.
527a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
528a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
529a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
530a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_protectUnlock (TI_HANDLE OsContext, TI_HANDLE ProtectContext);
531a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
532a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Wakelock functionality */
533a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtint os_wake_lock (TI_HANDLE OsContext);
534a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtint os_wake_unlock (TI_HANDLE OsContext);
535a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtint os_wake_lock_timeout (TI_HANDLE OsContext);
536a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtint os_wake_lock_timeout_enable (TI_HANDLE OsContext);
537a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
538a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define os_profile(hos,fn,par)
539a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
540a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
541a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/****************************************************************************************
542a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt						START OF GWSI DRIVER API
543a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*****************************************************************************************/
544a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
545a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Signaling Object Create
546a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
547a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 		- Handle to the OS object
548a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return Pointer to Signal Object on Success	;	NULL on Failure
549a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
550a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
551a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function creates a new Signaling Object or opens an already exists Signaling Object.
552a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * The Signaling Object created by this function is used for mutual-exclusion and protection
553a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * of resources which are shared between multi-Tasks/Threads by using a signaling mechanism
554a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
555a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
556a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
557a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid *os_SignalObjectCreate (TI_HANDLE OsContext);
558a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
559a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Signaling Object Wait
560a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
561a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
562a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  ptr 			- Pointer to Signaling Object previously created by user
563a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return TI_OK (0) on Success	;	TI_NOK (1) on Failure
564a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
565a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
566a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function perform waiting on Signaling Object. The coller waits until signaled or until timeout
567a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
568a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
569a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
570a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtint os_SignalObjectWait (TI_HANDLE OsContext, void *ptr);
571a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
572a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Signaling Object Set
573a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
574a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
575a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  ptr 			- Pointer to Signaling Object previously created by user
576a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return TI_OK (0) on Success	;	TI_NOK (1) on Failure
577a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
578a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
579a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function sets a Signaling Object to signaled state (e.g the siganeling object is released)
580a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
581a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
582a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
583a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtint os_SignalObjectSet (TI_HANDLE OsContext, void *ptr);
584a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
585a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Signaling Object Free
586a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
587a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
588a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  ptr 			- Pointer to Signaling Object previously created by user
589a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return TI_OK (0) on Success	;	TI_NOK (1) on Failure
590a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
591a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
592a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function frees (closes) a Signaling Object Handle
593a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
594a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
595a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
596a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtint os_SignalObjectFree (TI_HANDLE OsContext, void *ptr);
597a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
598a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Schedule Request
599a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
600a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
601a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return TI_OK (0) on Success	;	TI_NOK (1) on Failure
602a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
603a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
604a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function performs scheduling (context switch) according to user request
605a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
606a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
607a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
608a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtint os_RequestSchedule (TI_HANDLE OsContext);
609a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
610a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
611a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/****************************************************************************************
612a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt						START OF TI DRIVER API
613a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*****************************************************************************************/
614a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
615a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Read Memory Register UINT32
616a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
617a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
618a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Register		- Pointer to register address
619a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Data			- Pointer to output read data
620a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
621a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
622a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
623a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function reads register in 32 bit length
624a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
625a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
626a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
627a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_hwReadMemRegisterUINT32 (TI_HANDLE OsContext, TI_UINT32* Register, TI_UINT32* Data);
628a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
629a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Write Memory Register UINT32
630a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
631a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
632a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Register		- Pointer to register address
633a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Data			- Data to write to register
634a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
635a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
636a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
637a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function reads register in 32 bit length
638a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
639a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
640a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
641a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_hwWriteMemRegisterUINT32 (TI_HANDLE OsContext, TI_UINT32* Register, TI_UINT32 Data);
642a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
643a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Receive Packet
644a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
645a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
646a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pPacket 		- Pointer to received packet data
647a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  Length 		- Length of received packet
648a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return TI_TRUE on Success	;	TI_FALSE on Failure
649a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
650a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
651a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function transfers a packet from WLAN driver to OS
652a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
653a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
654a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
655a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_BOOL os_receivePacket(TI_HANDLE OsContext, void *pRxDesc ,void *pPacket, TI_UINT16 Length);
656a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
657a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Indicate Event
658a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
659a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext 	- Handle to the OS object
660a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  pData 		- Pointer to event data
661a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return TI_OK (0) on Success	;
662a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
663a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
664a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function indicate the OS about different connection driver's events,
665a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * The function performs the rewuired operations for the event - in the OS side
666a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
667a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
668a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
669a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_INT32 os_IndicateEvent (TI_HANDLE OsContext, IPC_EV_DATA *pData);
670a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
671a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \brief  OS Send Trace Message to Logger
672a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
673a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext    - The OS handle
674a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  uLevel   	- Severity level of the trace message
675a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  uFileId  	- Source file ID of the trace message
676a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  uLineNum 	- Line number of the trace message
677a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  uParamsNum   - Number of parameters in the trace message
678a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  ...          - The trace message parameters
679a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return void
680a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
681a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \par Description
682a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * This function sends trace message to logger
683a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
684a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa
685a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
686a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_Trace (TI_HANDLE OsContext, TI_UINT32 uLevel, TI_UINT32 uFileId, TI_UINT32 uLineNum, TI_UINT32 uParamsNum, ...);
687a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
688a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
689a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \fn     os_SetDrvThreadPriority
690a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief  Called upon init to set WLAN driver thread priority.
691a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
692a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  OsContext              - The OS handle
693a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param  uWlanDrvThreadPriority - The WLAN driver thread priority
694a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return
695a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
696a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid os_SetDrvThreadPriority (TI_HANDLE OsContext, TI_UINT32 uWlanDrvThreadPriority);
697a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
698a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
699a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifdef __cplusplus
700a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}
701a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
702a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
703a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif /* __OS_API_H__ */
704