summaryrefslogtreecommitdiff
path: root/wl1271/platforms/os/common/inc/osApi.h
diff options
context:
space:
mode:
Diffstat (limited to 'wl1271/platforms/os/common/inc/osApi.h')
-rw-r--r--wl1271/platforms/os/common/inc/osApi.h703
1 files changed, 0 insertions, 703 deletions
diff --git a/wl1271/platforms/os/common/inc/osApi.h b/wl1271/platforms/os/common/inc/osApi.h
deleted file mode 100644
index 4787a75..0000000
--- a/wl1271/platforms/os/common/inc/osApi.h
+++ /dev/null
@@ -1,703 +0,0 @@
-/*
- * osApi.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.
- */
-
-
-/*--------------------------------------------------------------------------*/
-/* Module: OSAPI.H*/
-/**/
-/* Purpose: This module defines unified interface to the OS specific*/
-/* sources and services.*/
-/**/
-/*--------------------------------------------------------------------------*/
-
-#ifndef __OS_API_H__
-#define __OS_API_H__
-
-/** \file osApi.h
- * \brief Operating System APIs \n
- * This module defines unified interface to the OS specific sources and services
- */
-
-#include "tidef.h"
-#include "TI_IPC_Api.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/** \struct TI_CONNECTION_STATUS
- * \struct *PTI_CONNECTION_STATUS
- * \brief Ti Connection Status
- *
- * \par Description
- *
- * \sa
- */
-typedef struct
-{
- TI_UINT32 Event;
- TI_UINT8* Data;
-} TI_CONNECTION_STATUS, *PTI_CONNECTION_STATUS;
-
-typedef struct
-{
- TI_UINT8 uFormat;
- TI_UINT8 uLevel;
- TI_UINT8 uParamsNum;
- TI_UINT8 uReserved;
- TI_UINT16 uFileId;
- TI_UINT16 uLineNum;
-} TTraceMsg;
-
-#define OS_PAGE_SIZE 4096
-#define MAX_MESSAGE_SIZE 500
-#define MICROSECOND_IN_SECONDS 1000000
-
-#define UINT16_MAX_VAL 0xffff
-#define UINT8_MAX_VAL 0xff
-
-#define TRACE_FORMAT_8_BITS_PARAMS 2
-#define TRACE_FORMAT_16_BITS_PARAMS 4
-#define TRACE_FORMAT_32_BITS_PARAMS 6
-
-#define TRACE_MSG_MAX_PARAMS 32
-#define TRACE_MSG_MIN_LENGTH (sizeof(TTraceMsg))
-#define TRACE_MSG_MAX_LENGTH ((TRACE_MSG_MAX_PARAMS * 4) + sizeof(TTraceMsg))
-
-#define INSERT_BYTE(pBuf, dataByte) (*((TI_UINT8 *)pBuf) = (TI_UINT8 )dataByte ); pBuf++;
-#define INSERT_2_BYTES(pBuf, dataBytes) (*((TI_UINT16 *)pBuf) = (TI_UINT16)dataBytes); pBuf+=2;
-#define INSERT_4_BYTES(pBuf, dataBytes) (*((TI_UINT32 *)pBuf) = (TI_UINT32)dataBytes); pBuf+=4;
-
-
-/****************************************************************************************
- START OF OS API (Common to all GWSI LIB, Driver and TI Driver)
-*****************************************************************************************/
-
-
-/****************************************************************************************
- OS HW API NEEDED BY DRIVER
-*****************************************************************************************/
-
-/** \brief OS Disable IRQ
- *
- * \param OsContext - Handle to the OS object
- * \return void
- *
- * \par Description
- * This function disables the Interrupts
- *
- * \sa
- */
-void os_disableIrq (TI_HANDLE OsContext);
-
-/** \brief OS Enable IRQ
- *
- * \param OsContext - Handle to the OS object
- * \return void
- *
- * \par Description
- * This function enables the Interrupts
- *
- * \sa
- */
-void os_enableIrq (TI_HANDLE OsContext);
-
-/** \brief OS IRQ Serviced
- *
- * \param OsContext - Handle to the OS object
- * \return void
- *
- * \par Description
- * This function is used in Level IRQ only. At this point the interrupt line is not asserted anymore
- * and we can inform the OS to enable IRQ again.
- *
- * \sa
- */
-void os_InterruptServiced (TI_HANDLE OsContext);
-
-/****************************************************************************************
- * OS Report API *
- ****************************************************************************************/
-
-/** \brief OS Set Debug Mode
- *
- * \param enable - Indicates if debug mode should be enabled or disabled ( TI_TRUE | TI_FALSE )
- * \return void
- *
- * \par Description
- * This function sets the Debug Mode flag to True or False - according to user's request
- *
- * \sa
- */
-void os_setDebugMode (TI_BOOL enable);
-
-/** \brief OS Printf
- *
- * \param format - String to print (with formatted parametrs in string if needed) and parameters values
- * if formatted parameters are used in string
- * \return void
- *
- * \par Description
- * This function prints formatted output using OS available printf method
- *
- * \sa
- */
-void os_printf (const char *format ,...);
-
-/****************************************************************************************
- * OS Memory API *
- ****************************************************************************************/
-
-/** \brief OS Memory Allocation
- *
- * \param OsContext - Handle to the OS object
- * \param Size - Size (in bytes) to be allocated
- * \return Pointer to the allocated memory on success ; NULL on failure (there isn't enough memory available)
- *
- * \par Description
- * This function allocates resident (nonpaged) system-space memory with calling specific OS allocation function. \n
- * It is assumed that this function will never be called in an interrupt context since the OS allocation function
- * has the potential to put the caller to sleep while waiting for memory to become available.
- *
- * \sa
- */
-void *os_memoryAlloc (TI_HANDLE OsContext,TI_UINT32 Size);
-
-/** \brief OS Memory CAllocation
- *
- * \param OsContext - Handle to the OS object
- * \param Number - Number of element to be allocated
- * \param Size - Size (in bytes) of one element
- * \return Pointer to the allocated memory on success ; NULL on failure (there isn't enough memory available)
- *
- * \par Description
- * This function allocates an array in memory with elements initialized to 0.
- * Allocates resident (nonpaged) system-space memory for an array with elements initialized to 0,
- * with specific OS allocation function.
- * It is assumed that this function will never be called in an interrupt context since the OS allocation function
- * has the potential to put the caller to sleep while waiting for memory to become available.
- *
- * \sa
- */
-void *os_memoryCAlloc (TI_HANDLE OsContext, TI_UINT32 Number, TI_UINT32 Size);
-
-/** \brief OS Memory Set
- *
- * \param OsContext - Handle to the OS object
- * \param pMemPtr - Pointer to the base address of a memory block
- * \param Value - Value to set to memory block
- * \param Length - Length (in bytes) of memory block
- * \return void
- *
- * \par Description
- * This function fills a block of memory with a given value
- *
- * \sa
- */
-void os_memorySet (TI_HANDLE OsContext, void *pMemPtr, TI_INT32 Value, TI_UINT32 Length);
-
-/** \brief OS Memory Zero
- *
- * \param OsContext - Handle to the OS object
- * \param pMemPtr - Pointer to the base address of a memory block
- * \param Length - Length (in bytes) of memory block
- * \return void
- *
- * \par Description
- * This function fills a block of memory with zeros
- *
- * \sa
- */
-void os_memoryZero (TI_HANDLE OsContext, void *pMemPtr, TI_UINT32 Length);
-
-/** \brief OS Memory Copy
- *
- * \param OsContext - Handle to the OS object
- * \param pDestination - Pointer to destination buffer
- * \param pSource - Pointer to Source buffer
- * \param Size - Size (in bytes) to copy
- * \return void
- *
- * \par Description
- * This function copies a specified number of bytes from one caller-supplied location (source buffer) to another (destination buffer)
- *
- * \sa
- */
-void os_memoryCopy (TI_HANDLE OsContext, void *pDestination, void *pSource, TI_UINT32 Size);
-
-/** \brief OS Memory Free
- *
- * \param OsContext - Handle to the OS object
- * \param pMemPtr - Pointer to the base address of a memory block
- * \param Size - Size (in bytes) to free
- * \return void
- *
- * \par Description
- * This function releases a block of memory which was previously allocated by user
- *
- * \sa
- */
-void os_memoryFree (TI_HANDLE OsContext, void *pMemPtr, TI_UINT32 Size);
-
-/** \brief OS Memory Compare
- *
- * \param OsContext - Handle to the OS object
- * \param Buf1 - Pointer to the first buffer in comperation
- * \param Buf2 - Pointer to the second buffer in comperation
- * \param Count - Count (in bytes) to compare
- * \return A value which indicates the relationship between the two compared buffers:
- * value < 0: Buf1 less than Buf2
- * value == 0: Buf1 identical to Buf2
- * value > 0: Buf1 greater than Buf2
- *
- * \par Description
- * This function compares between two given buffers
- *
- * \sa
- */
-TI_INT32 os_memoryCompare (TI_HANDLE OsContext, TI_UINT8* Buf1, TI_UINT8* Buf2, TI_INT32 Count);
-
-/** \brief OS Memory Allocation for HW DMA
- *
- * \param pOsContext - Handle to the OS object
- * \param Size - Size (in bytes) to allocate
- * \return Pointer to the allocated memory on success ; NULL on failure (there isn't enough memory available)
- *
- * \par Description
- * This function allocates resident (nonpaged) system-space memory for HW DMA operations
- *
- * \sa
- */
-void *os_memoryAlloc4HwDma (TI_HANDLE pOsContext, TI_UINT32 Size);
-
-/** \brief OS Memory for HW DMA Free
- *
- * \param pOsContext - Handle to the OS object
- * \param pMem_ptr - Pointer to the base virtual address of allocated memory block
- * This is the address that was returned to user when he allocated the memory for HW DMA usage
- * \param Size - Size (in bytes) of the memory block to be released. This parameter must be identical to the Length
- * which was given by the user when he allocated the memory block for HW DMA usage
- * \return Pointer to the allocated memory on success ; NULL on failure (there isn't enough memory available)
- *
- * \par Description
- * This function releases a block of memory previously allocated by user for HW DMA operations
- *
- * \sa
- */
-void os_memory4HwDmaFree (TI_HANDLE pOsContext, void *pMem_ptr, TI_UINT32 Size);
-
-/** \brief OS Memory Copy from User
- *
- * \param OsContext - Handle to the OS object
- * \param pDstPtr - Pointer to destination buffer
- * \param pSrcPtr - Pointer to Source buffer
- * \param Size - Size (in bytes) to copy
- * \return TI_OK on success ; TI_NOK otherwise
- *
- * \par Description
- * This function copies a specified number of bytes from one caller-supplied location (Source) to another (Destination)
- *
- * \sa
- */
-int os_memoryCopyFromUser (TI_HANDLE OsContext, void *pDstPtr, void *pSrcPtr, TI_UINT32 Size);
-
-/** \brief OS Memory Copy To User
- *
- * \param OsContext - Handle to the OS object
- * \param pDstPtr - Pointer to destination buffer
- * \param pSrcPtr - Pointer to Source buffer
- * \param Size - Size (in bytes) to copy
- * \return TI_OK on success ; TI_NOK otherwise
- *
- * \par Description
- * This function copies a specified number of bytes from one caller-supplied location (Source) to another (Destination)
- *
- * \sa
- */
-int os_memoryCopyToUser (TI_HANDLE OsContext, void *pDstPtr, void *pSrcPtr, TI_UINT32 Size);
-
-/****************************************************************************************
- * OS TIMER API *
- ****************************************************************************************/
-/** \brief Timer Callback Function
- *
- * \param Context - Handle to the OS object
- * \return void
- *
- * \par Description
- * This callback is passed by user to OS timer when created, and is called directly from OS timer context when expired.
- * E.g. the user user the timer in order to operate this function after a defined time expires
- *
- */
-typedef void (*fTimerFunction)(TI_HANDLE Context);
-
-/** \brief OS Timer Create
- *
- * \param OsContext - Handle to the OS object
- * \param pRoutine - Pointer to user's Timer Callback function
- * \param hFuncHandle - Handle to user's Timer Callback function parameters
- * \return Handle to timer object on success ; NULL on failure
- *
- * \par Description
- * This function creates and initializes an OS timer object associated with a user's Timer Callback function \n
- * \note 1) The user's callback is called directly from OS timer context when expired.
- * \note 2) In some OSs, it may be needed to use an intermediate callback in the
- * \note osapi layer (use os_timerHandlr for that).
- *
- * \sa
- */
-TI_HANDLE os_timerCreate (TI_HANDLE OsContext, fTimerFunction pRoutine, TI_HANDLE hFuncHandle);
-
-/** \brief OS Timer Destroy
- *
- * \param OsContext - Handle to the OS object
- * \param TimerHandle - Handle to timer object which user got when created the timer
- * \return void
- *
- * \par Description
- * This function destroys the OS timer object which was previously created by user
- *
- * \sa
- */
-void os_timerDestroy (TI_HANDLE OsContext, TI_HANDLE TimerHandle);
-
-/** \brief OS Timer Start
- *
- * \param OsContext - Handle to the OS object
- * \param TimerHandle - Handle to timer object which user got when created the timer
- * \param DelayMs - The time in MS untill the timer is awaken
- * \return void
- *
- * \par Description
- * This function Start the OS timer object which was previously created by user
- *
- * \sa
- */
-void os_timerStart (TI_HANDLE OsContext, TI_HANDLE TimerHandle, TI_UINT32 DelayMs);
-
-/** \brief OS Timer Stop
- *
- * \param OsContext - Handle to the OS object
- * \param TimerHandle - Handle to timer object which user got when created the timer
- * \return void
- *
- * \par Description
- * This function Stops the OS timer object which was previously created by user
- *
- * \sa
- */
-void os_timerStop (TI_HANDLE OsContext, TI_HANDLE TimerHandle);
-
-/** \brief OS Periodic Interrupt Timer Start
- *
- * \param OsContext - Handle to the OS object
- * \return void
- *
- * \par Description
- * This function starts the periodic interrupt mechanism. This function is used when PRIODIC_INTERRUPT mode is used.
- * This Mode is enabled when interrupts that are usually received from the FW are masked,
- * and there is need to check- in a given time periods - if handling of any FW interrupt is needed.
- *
- * \sa
- */
-#ifdef PRIODIC_INTERRUPT
-void os_periodicIntrTimerStart (TI_HANDLE OsContext);
-#endif
-
-/** \brief OS Time Stamp Ms
- *
- * \param OsContext - Handle to the OS object
- * \return The number of milliseconds that have elapsed since the system was booted
- *
- * \par Description
- * This function returns the number of milliseconds that have elapsed since the system was booted.
- */
-TI_UINT32 os_timeStampMs (TI_HANDLE OsContext);
-
-/** \brief OS Time Stamp Us
- *
- * \param OsContext - Handle to the OS object
- * \return The number of microseconds that have elapsed since the system was booted
- *
- * \par Description
- * This function returns the number of microseconds that have elapsed since the system was booted. \n
- * Note that sometimes this function will be called with NULL(!!!) as argument!
- */
-TI_UINT32 os_timeStampUs (TI_HANDLE OsContext);
-
-/** \brief OS Stall uSec
- *
- * \param OsContext - Handle to the OS object
- * \param uSec - The time to delay in microseconds
- * \return void
- *
- * \par Description
- * This function makes delay in microseconds
- *
- * \sa
- */
-void os_StalluSec (TI_HANDLE OsContext, TI_UINT32 uSec);
-
-
-/****************************************************************************************
- * Protection services API *
- ****************************************************************************************/
-
-/** \brief OS Protect Create
- *
- * \param OsContext - Handle to the OS object
- * \return Handle of the created mutex/spin lock object on Success ; NULL on Failure (not enough memory available or problems to initializing the mutex)
- *
- * \par Description
- * This function allocates a mutex/spin lock object.
- * The mutex/spinlock object which is created by this function is used for mutual-exclusion and protection of resources which are shared between
- * multi-Tasks/Threads
- *
- * \sa
- */
-TI_HANDLE os_protectCreate (TI_HANDLE OsContext);
-
-/** \brief OS Protect Destroy
- *
- * \param OsContext - Handle to the OS object
- * \param ProtectContext - Handle to the mutex/spin lock object
- * \return void
- *
- * \par Description
- * This function destroys s a mutex/spin lock object which was previously created by user:
- * it frees the mutex/spin lock and then frees the object's memory
- *
- * \sa
- */
-void os_protectDestroy (TI_HANDLE OsContext, TI_HANDLE ProtectContext);
-
-/** \brief OS Protect Lock
- *
- * \param OsContext - Handle to the OS object
- * \param ProtectContext - Handle to the mutex/spin lock object
- * \return void
- *
- * \par Description
- * This function locks the mutex/spin lock object. E.g. the caller acquires a mutex/spin lock and gains exclusive
- * access to the shared resources, that the mutex/spin lock protects of.
- *
- * \sa
- */
-void os_protectLock (TI_HANDLE OsContext, TI_HANDLE ProtectContext);
-
-/** \brief OS Protect Unlock
- *
- * \param OsContext - Handle to the OS object
- * \param ProtectContext - Handle to the mutex/spin lock object
- * \return void
- *
- * \par Description
- * This function unlocks the mutex/spin lock object.
- *
- * \sa
- */
-void os_protectUnlock (TI_HANDLE OsContext, TI_HANDLE ProtectContext);
-
-/* Wakelock functionality */
-int os_wake_lock (TI_HANDLE OsContext);
-int os_wake_unlock (TI_HANDLE OsContext);
-int os_wake_lock_timeout (TI_HANDLE OsContext);
-int os_wake_lock_timeout_enable (TI_HANDLE OsContext);
-
-#define os_profile(hos,fn,par)
-
-
-/****************************************************************************************
- START OF GWSI DRIVER API
-*****************************************************************************************/
-
-/** \brief OS Signaling Object Create
- *
- * \param OsContext - Handle to the OS object
- * \return Pointer to Signal Object on Success ; NULL on Failure
- *
- * \par Description
- * This function creates a new Signaling Object or opens an already exists Signaling Object.
- * The Signaling Object created by this function is used for mutual-exclusion and protection
- * of resources which are shared between multi-Tasks/Threads by using a signaling mechanism
- *
- * \sa
- */
-void *os_SignalObjectCreate (TI_HANDLE OsContext);
-
-/** \brief OS Signaling Object Wait
- *
- * \param OsContext - Handle to the OS object
- * \param ptr - Pointer to Signaling Object previously created by user
- * \return TI_OK (0) on Success ; TI_NOK (1) on Failure
- *
- * \par Description
- * This function perform waiting on Signaling Object. The coller waits until signaled or until timeout
- *
- * \sa
- */
-int os_SignalObjectWait (TI_HANDLE OsContext, void *ptr);
-
-/** \brief OS Signaling Object Set
- *
- * \param OsContext - Handle to the OS object
- * \param ptr - Pointer to Signaling Object previously created by user
- * \return TI_OK (0) on Success ; TI_NOK (1) on Failure
- *
- * \par Description
- * This function sets a Signaling Object to signaled state (e.g the siganeling object is released)
- *
- * \sa
- */
-int os_SignalObjectSet (TI_HANDLE OsContext, void *ptr);
-
-/** \brief OS Signaling Object Free
- *
- * \param OsContext - Handle to the OS object
- * \param ptr - Pointer to Signaling Object previously created by user
- * \return TI_OK (0) on Success ; TI_NOK (1) on Failure
- *
- * \par Description
- * This function frees (closes) a Signaling Object Handle
- *
- * \sa
- */
-int os_SignalObjectFree (TI_HANDLE OsContext, void *ptr);
-
-/** \brief OS Schedule Request
- *
- * \param OsContext - Handle to the OS object
- * \return TI_OK (0) on Success ; TI_NOK (1) on Failure
- *
- * \par Description
- * This function performs scheduling (context switch) according to user request
- *
- * \sa
- */
-int os_RequestSchedule (TI_HANDLE OsContext);
-
-
-/****************************************************************************************
- START OF TI DRIVER API
-*****************************************************************************************/
-
-/** \brief OS Read Memory Register UINT32
- *
- * \param OsContext - Handle to the OS object
- * \param Register - Pointer to register address
- * \param Data - Pointer to output read data
- * \return void
- *
- * \par Description
- * This function reads register in 32 bit length
- *
- * \sa
- */
-void os_hwReadMemRegisterUINT32 (TI_HANDLE OsContext, TI_UINT32* Register, TI_UINT32* Data);
-
-/** \brief OS Write Memory Register UINT32
- *
- * \param OsContext - Handle to the OS object
- * \param Register - Pointer to register address
- * \param Data - Data to write to register
- * \return void
- *
- * \par Description
- * This function reads register in 32 bit length
- *
- * \sa
- */
-void os_hwWriteMemRegisterUINT32 (TI_HANDLE OsContext, TI_UINT32* Register, TI_UINT32 Data);
-
-/** \brief OS Receive Packet
- *
- * \param OsContext - Handle to the OS object
- * \param pPacket - Pointer to received packet data
- * \param Length - Length of received packet
- * \return TI_TRUE on Success ; TI_FALSE on Failure
- *
- * \par Description
- * This function transfers a packet from WLAN driver to OS
- *
- * \sa
- */
-TI_BOOL os_receivePacket(TI_HANDLE OsContext, void *pRxDesc ,void *pPacket, TI_UINT16 Length);
-
-/** \brief OS Indicate Event
- *
- * \param OsContext - Handle to the OS object
- * \param pData - Pointer to event data
- * \return TI_OK (0) on Success ;
- *
- * \par Description
- * This function indicate the OS about different connection driver's events,
- * The function performs the rewuired operations for the event - in the OS side
- *
- * \sa
- */
-TI_INT32 os_IndicateEvent (TI_HANDLE OsContext, IPC_EV_DATA *pData);
-
-/** \brief OS Send Trace Message to Logger
- *
- * \param OsContext - The OS handle
- * \param uLevel - Severity level of the trace message
- * \param uFileId - Source file ID of the trace message
- * \param uLineNum - Line number of the trace message
- * \param uParamsNum - Number of parameters in the trace message
- * \param ... - The trace message parameters
- * \return void
- *
- * \par Description
- * This function sends trace message to logger
- *
- * \sa
- */
-void os_Trace (TI_HANDLE OsContext, TI_UINT32 uLevel, TI_UINT32 uFileId, TI_UINT32 uLineNum, TI_UINT32 uParamsNum, ...);
-
-/**
- * \fn os_SetDrvThreadPriority
- * \brief Called upon init to set WLAN driver thread priority.
- *
- * \param OsContext - The OS handle
- * \param uWlanDrvThreadPriority - The WLAN driver thread priority
- * \return
- */
-void os_SetDrvThreadPriority (TI_HANDLE OsContext, TI_UINT32 uWlanDrvThreadPriority);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __OS_API_H__ */