/*------------------------------------------------------------ (C) Copyright [2006-2008] Marvell International Ltd. All Rights Reserved ------------------------------------------------------------*/ #ifndef _OSA_OLD_API_H #define _OSA_OLD_API_H #if !defined (OSA_QUEUE_NAMES) #define OSA_QUEUE_NAMES #endif /***************************************************************************** * OSA Data Types ****************************************************************************/ #include "osa.h" #ifdef PLAT_USE_THREADX #include #include #include #endif typedef void* OSATaskRef; typedef void* OSAHISRRef; typedef void* OSASemaRef; typedef void* OSAMutexRef; typedef void* OSAMsgQRef; typedef void* OSAMailboxQRef; typedef void* OSAPoolRef; typedef void* OSATimerRef; typedef void* OSAFlagRef; typedef void* OSAPartitionPoolRef; /* Remain for backwards compatibility */ typedef void* OSTaskRef; typedef void* OSSemaRef; typedef void* OSMutexRef; typedef void* OSMsgQRef; typedef void* OSMailboxQRef; typedef void* OSPoolRef; typedef void* OSTimerRef; typedef void* OSFlagRef; typedef UINT8 OS_STATUS ; /***************************************************************************** * OSA Function Prototypes ****************************************************************************/ /*======================================================================== * OSA Initialization: * * Initializes OSA internal structures, tables, and OS specific services. * *========================================================================*/ /*********************************************************************** * * Name: OSAInitialize() * * Description: Initialize OS specific stuff. * * Parameters: None * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAInitialize() OsaInit(NULL) /*********************************************************************** * * Name: OSARun() * * Description: Activates the OS. * * Parameters: None * * Returns: None * * Notes: * ***********************************************************************/ #define OSARun() OsaRun(NULL) /*======================================================================== * OSA Task Management: *========================================================================*/ /*********************************************************************** * * Name: OSATaskCreate * * Description: Create Task. * * Parameters: * OSATaskRef *taskRef [OUT] OS task reference * void *stackPtr [IN] pointer to start of task stack area * UINT32 stackSize [IN] number of bytes in task stack area * UINT8 priority [IN] task priority 0 - 252 * CHAR *taskName [IN] task name * void *taskStart(void*) [IN] pointer to task entry point * void *argv [IN] task entry argument pointer * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ IMPC extern OSA_STATUS OSATaskCreate( OSATaskRef* taskRef, void* stackPtr, UINT32 stackSize, UINT8 priority, CHAR *taskName, void (*taskStart)(void*), void* argv ); /*********************************************************************** * * Name: OSATaskCreateEx * * Description: Create Task. * * Parameters: * OSATaskRef *taskRef [OUT] OS task reference * void *stackPtr [IN] pointer to start of task stack area * UINT32 stackSize [IN] number of bytes in task stack area * UINT8 priority [IN] task priority 0 - 252 * CHAR *taskName [IN] task name * void *taskStart(void*) [IN] pointer to task entry point * void *argv [IN] task entry argument pointer * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * The task created doesn't start automatically. * ***********************************************************************/ IMPC extern OSA_STATUS OSATaskCreateEx( OSATaskRef* taskRef, void* stackPtr, UINT32 stackSize, UINT8 priority, CHAR *taskName, void (*taskStart)(void*), void* argv ); /*********************************************************************** * * Name: OSATaskDelete * * Description: Delete Task. * * Parameters: * OSATaskRef oSArEF [IN] Task Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSATaskDelete(oSArEF) OsaTaskDelete(oSArEF,NULL) /*********************************************************************** * * Name: OSATaskTerminate * * Description: Terminate Task. * * Parameters: * OSATaskRef oSArEF [IN] Task Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSATaskTerminate(oSArEF) OsaTaskTerminate(oSArEF,NULL) /*********************************************************************** * * Name: OSATaskSuspend * * Description: Suspend Task. * * Parameters: * OSATaskRef oSArEF [IN] Task Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSATaskSuspend(oSArEF) OsaTaskSuspend(oSArEF,NULL) /*********************************************************************** * * Name: OSATaskResume * * Description: Resume Task. * * Parameters: * OSATaskRef oSArEF [IN] Task Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSATaskResume(oSArEF) OsaTaskResume(oSArEF,NULL) /*********************************************************************** * * Name: OSATaskSleep * * Description: Task sleep. * * Parameters: * UINT32 tICKS [IN] Ticks to sleep.(1s=200ticks) * * Returns: None * * Notes: * ***********************************************************************/ #define OSATaskSleep(tICKS) OsaTaskSleep(tICKS,NULL) /*********************************************************************** * * Name: OSATaskChangePriority * * Description: Change task priority. * * Parameters: * OSATaskRef oSArEF [IN] Task Reference. * UINT8 nEW [IN] New Priority. * UINT8 *oLD [OUT] Old Priority. * * Returns: * OS_SUCCESS * * Notes: * ***********************************************************************/ #define OSATaskChangePriority(oSArEF,nEW,oLD) OsaTaskChangePriority(oSArEF,nEW,oLD,NULL) /*********************************************************************** * * Name: OSATaskGetPriority * * Description: Get task priority. * * Parameters: * OSATaskRef oSArEF [IN] Task Reference. * UINT8 *pRIORITY [OUT] Priority. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSATaskGetPriority(oSArEF,pRIORITY) OsaTaskGetPriority(oSArEF,pRIORITY,NULL) /*********************************************************************** * * Name: OSAHISRGetPriority * * Description: Get HISR priority. * * Parameters: * OSATaskRef oSArEF [IN] HISR Reference. * UINT8 *pRIORITY [OUT] Priority. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAHISRGetPriority(oSArEF,pRIORITY) OsaHISRGetPriority(oSArEF,pRIORITY,NULL) /*********************************************************************** * * Name: OSATaskYield * * Description: Allow other task to run. * * Parameters: None * * Returns: None * * Notes: * ***********************************************************************/ #define OSATaskYield() OsaTaskYield(NULL) /*********************************************************************** * * Name: OSATaskGetCurrentRef * * Description: Get Task Ref. * * Parameters: * OSATaskRef *PoSArEF [OUT] Task Reference. * * Returns: * OS_SUCCESS * * Notes: * ***********************************************************************/ #define OSATaskGetCurrentRef(PoSArEF) OsaTaskGetCurrentRef(PoSArEF,NULL) /*********************************************************************** * * Name: OSAHISRGetCurrentRef * * Description: Get HISR Ref. * * Parameters: * OSAHISRRef *PoSArEF [OUT] HISR Reference. * * Returns: * OS_SUCCESS * * Notes: * ***********************************************************************/ #define OSAHISRGetCurrentRef(PoSArEF) OsaHISRGetCurrentRef(PoSArEF,NULL) /*********************************************************************** * * Name: OSAGetCurrentThreadRef * * Description: Get Current thread Ref. * * Parameters: * OSATaskRef *PoSArEF [OUT] thread Reference. * * Returns: * OS_SUCCESS * * Notes: * ***********************************************************************/ #define OSAGetCurrentThreadRef(PoSArEF) OsaGetCurrentThreadRef(PoSArEF,NULL) /*********************************************************************** * * Name: OSAGetTaskInfo * * Description: Get the detailed information of specific thread * * Parameters: * OSATaskRef oSArEF [IN] thread Reference. * OSA_TASK *pTaskInfo [OUT] structure of thread info. * * Returns: * OS_SUCCESS * * Notes: * ***********************************************************************/ #define OSAGetTaskInfo(oSArEF, pTaskInfo) OsaGetTaskInfo(oSArEF,pTaskInfo) /*********************************************************************** * * Name: OSAGetThreadListHead * * Description: Get the head of created thread reference list * * Parameters: * OSATaskRef *pListHead [OUT] list head. * * Returns: * OS_SUCCESS * * Notes: * ***********************************************************************/ #define OSAGetThreadListHead(pListHead) OsaGetThreadListHead(pListHead,NULL) /*********************************************************************** * * Name: OSAGetCreatedThreadCount * * Description: Get the count of created thread * Parameters: * unsigned long *pCount [OUT] out. * * Returns: * OS_SUCCESS * * Notes: * ***********************************************************************/ #define OSAGetCreatedThreadCount(pCount) OsaGetCreatedThreadCount(pCount,NULL) /*********************************************************************** * * Name: OSAGetMaxThreadCount * * Description: Get the max number of thread that system can be created * Parameters: * unsigned long *pCount [OUT] out. * * Returns: * OS_SUCCESS * * Notes: * ***********************************************************************/ #define OSAGetMaxThreadCount(pCount) OsaGetMaxThreadCount(pCount,NULL) /*********************************************************************** * * Name: OSAThreadList * * Description: Get the reference list of created thread * Parameters: * OSATaskRef *ptrList [OUT] thread Reference list. * unsigned long maximum_pointerst [IN] length of array * * Returns: * unsigned long Number of threads placed in list * * Notes: * ***********************************************************************/ #define OSAThreadList(ptrList,maximum_pointers) OsaThreadList(ptrList,maximum_pointers,NULL) /*======================================================================== * OSA Semaphore Management *========================================================================*/ /*********************************************************************** * * Name: OSASemaphoreCreate * * Description: Create Semaphore. * * Parameters: * OSASemaRef *semaRef [OUT] OS semaphore reference * UINT32 initialCount [IN] initial count of the semaphore * UINT8 waitingMode [IN] mode of tasks waiting (OS_FIFO, OS_PRIORITY) * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ IMPC extern OSA_STATUS OSASemaphoreCreate ( OSASemaRef *semaRef, UINT32 initialCount, UINT8 waitingMode ); /*********************************************************************** * * Name: OSASemaphoreCreateExt * * Description: Create Semaphore. * * Parameters: * OSASemaRef *semaRef [OUT] OS semaphore reference * UINT32 initialCount [IN] initial count of the semaphore * UINT8 waitingMode [IN] mode of tasks waiting (OS_FIFO, OS_PRIORITY) * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ IMPC extern OSA_STATUS OSASemaphoreCreateExt( OSASemaRef *semaRef, UINT32 initialCount, UINT32 maximumCount, UINT8 waitingMode ); /*********************************************************************** * * Name: OSASemaphoreAcquire * * Description: Acquire semaphore. * * Parameters: * OSASemaRef oSArEF [IN] Reference. * UINT32 tIMEoUT [IN] Timeout in OS Ticks. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSASemaphoreAcquire(oSArEF,tIMEoUT) OsaSemaphoreAcquire(oSArEF,tIMEoUT,NULL) /*********************************************************************** * * Name: OSASemaphorePoll * * Description: Poll semaphore. * * Parameters: * OSASemaRef oSArEF [IN] Reference. * UINT32 *PcOUNT [OUT] Current semaphore count. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSASemaphorePoll(oSArEF,PcOUNT) OsaSemaphorePoll(oSArEF,PcOUNT,NULL) /*********************************************************************** * * Name: OSASemaphoreRelease * * Description: Release semaphore. * * Parameters: * OSASemaRef oSArEF [IN] Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSASemaphoreRelease(oSArEF) OsaSemaphoreRelease(oSArEF,NULL) /*********************************************************************** * * Name: OSASemaphoreReleaseExt * * Description: Release semaphore. * * Parameters: * OSASemaRef oSArEF [IN] Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSASemaphoreReleaseExt(oSArEF) OsaSemaphoreReleaseExt(oSArEF,NULL) /*********************************************************************** * * Name: OSASemaphoreDelete * * Description: Delete semaphore. * * Parameters: * OSASemaRef oSArEF [IN] Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSASemaphoreDelete(oSArEF) OsaSemaphoreDelete(oSArEF,NULL) /*********************************************************************** * * Name: OsaSemaphoreCheck * * Description: Check whether semaphore is valid or not. * * Parameters: * OsaRefT OsaRef [IN] Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSASemaphoreCheck(oSArEF) OsaSemaphoreCheck(oSArEF) /*======================================================================== * OSA Mutex Management *========================================================================*/ IMPC extern OSA_STATUS OSAMutexCreate ( OSMutexRef *mutexRef, /* OS mutex reference */ UINT8 waitingMode /* mode of tasks waiting OS_FIFO, OS_PRIORITY */ ); /*********************************************************************** * * Name: OSAMutexLock * * Description: * * Parameters: * OSAMutexRef oSArEF [IN] Reference. * UINT32 tIMEoUT [IN] Timeout in OS Ticks. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAMutexLock(oSArEF,tIMEoUT) OsaMutexLock(oSArEF,tIMEoUT,NULL) /*********************************************************************** * * Name: OSAMutexUnlock * * Description: * * Parameters: * OSAMutexRef oSArEF [IN] Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAMutexUnlock(oSArEF) OsaMutexUnlock(oSArEF,NULL) /*********************************************************************** * * Name: OSAMutexDelete * * Description: * * Parameters: * OSAMutexRef oSArEF [IN] Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAMutexDelete(oSArEF) OsaMutexDelete(oSArEF,NULL) /*======================================================================== * OSA Interrupt Control *========================================================================*/ /*********************************************************************** * * Name: OSACreateHISR * * Description: Create ISR. * * Parameters: * OSAHISRRef *oSArEF [OUT] oOS HISR reference * CHAR *name [IN] HISR name * void *hisr_entry(void) [IN] pointer to HISR entry point * UINT8 priority [IN] HISR priority 0 - 2 * * Returns: * None * * Notes: * ***********************************************************************/ #define OSACreateHISR(oSArEF, name, hisr_entry, priority) Os_Create_HISR(hisr, name, hisr_entry, priority) /*********************************************************************** * * Name: OSADeleteHISR * * Description: Delete ISR. * * Parameters: * OSAHISRRef *oSArEF [IN] reference * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSADeleteHISR(oSArEF) Os_Delete_HISR(oSArEF) /*********************************************************************** * * Name: OSAActivateHISR * * Description: Activate ISR. * * Parameters: * OSAHISRRef *oSArEF [IN] reference * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAActivateHISR(oSArEF) Os_Activate_HISR(oSArEF) /*=========================================================================== * OSA Real-Time Access: *=========================================================================*/ /*********************************************************************** * * Name: OSAGetTicks * * Description: Number of ticks that passed since last reset. * * Parameters: None * * Returns: UINT32 Number of ticks that passed since last reset * * Notes: * ***********************************************************************/ #define OSAGetTicks() OsaGetTicks(NULL) /*********************************************************************** * * Name: OSAGetClockRate * * Description: Get the current system clock rate. * * Parameters: None * * Returns: UNIT32 - current clock rate (ms / tick) * * Notes: * ***********************************************************************/ #define OSAGetClockRate() OsaGetClockRate(NULL) /*********************************************************************** * * Name: OSATick * * Description: Tick the OS. * * Parameters: None * * Returns: None * * Notes: * ***********************************************************************/ #define OSATick() OsaTick(NULL) /*======================================================================== * OSA Sys Context info *========================================================================*/ #define OSAIsrEnable(mASK) OsaControlInterrupts(mASK,NULL) #define OSAIsrDisable(mASK) OsaControlInterrupts(mASK,NULL) /*********************************************************************** * * Name: OSAContextLock * * Description: Lock context - No interrupts and no preemptions. * * Parameters: None * * Returns: OS_SUCCESS * * Notes: * ***********************************************************************/ #define OSAContextLock() OsaContextLock(NULL) /*********************************************************************** * * Name: OSAContextUnlock * * Description: Restore the context. * * Parameters: None * * Returns: OS_SUCCESS * * Notes: * ***********************************************************************/ #define OSAContextUnlock() OsaContextRestore(NULL) /*********************************************************************** * * Name: OSAContextLockExt * * Description: Lock specific context-only interrtup and HISR preemptions allowed. * * Parameters: None * * Returns: OS_SUCCESS/OS_FAIL * * Notes: * ***********************************************************************/ #define OSAContextLockExt() OsaContextLockExt(NULL) /*********************************************************************** * * Name: OSAContextUnlockExt * * Description: Restore the specific context. * * Parameters: None * * Returns: OS_SUCCESS/OS_FAIL * * Notes: * ***********************************************************************/ #define OSAContextUnlockExt() OsaContextRestoreExt(NULL) /*======================================================================== * OSA Message Passing *========================================================================*/ /*********************************************************************** * * Name: OSAMsgQCreate * * Description: create message queue * * Parameters: * OSMsgQRef *msgQRef [OUT] OS message queue reference . * char *queueName [IN] name of message queue. * UINT32 maxSize [IN] max message size the queue supports . * UINT32 maxNumber [IN] max # of messages in the queue . * UINT32 waitingMode [IN] mode of tasks waiting OS_FIFO, OS_PRIORITY. * Returns: OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ IMPC extern OSA_STATUS OSAMsgQCreate( OSMsgQRef *msgQRef, #if defined (OSA_QUEUE_NAMES) char *queueName, #endif UINT32 maxSize, UINT32 maxNumber, UINT8 waitingMode ); /*********************************************************************** * * Name: OSAMsgQSend * * Description: Send to message Q. * * Parameters: * OSMsgQRef msgQRef [IN] OS message queue reference . * UINT32 size [IN] size of the message * UINT8 *msgPtr [IN] start address of the data to be sent * UINT32 timeout [IN] OS_SUSPEND, OS_NO_SUSPEND, or timeout * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ IMPC extern OSA_STATUS OSAMsgQSend ( OSMsgQRef msgQRef, UINT32 size, UINT8 *msgPtr, UINT32 timeout ); /*********************************************************************** * * Name: OSAMsgQFrontRelease * * Description: Send to message Q. * * Parameters: * OSMsgQRef msgQRef [IN] OS message queue reference . * UINT32 size [IN] size of the message * UINT8 *msgPtr [IN] start address of the data to be sent * UINT32 timeout [IN] OS_SUSPEND, OS_NO_SUSPEND, or timeout * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ IMPC extern OSA_STATUS OSAMsgQFrontRelease ( OSMsgQRef msgQRef, UINT32 size, UINT8 *msgPtr, UINT32 timeout ); /*********************************************************************** * * Name: OSAMsgQRecv * * Description: Recieve from message Q.. * * Parameters: * OSMsgQRef msgQRef [IN] OS message queue reference . * UINT8 *recvMsg OUT] pointer to the message received * UINT32 size [IN] size of the message * UINT32 timeout [IN] OS_SUSPEND, OS_NO_SUSPEND, or timeout * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ IMPC extern OSA_STATUS OSAMsgQRecv ( OSMsgQRef msgQRef, UINT8 *recvMsg, UINT32 size, UINT32 timeout ); /*********************************************************************** * * Name: OSAMsgQPoll * * Description: Get the number of messages in queue. * * Parameters: * OSAMsgQRef oSArEF [IN] Reference. * UINY32 *cOUNT [OT] Number of messages in queue. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAMsgQPoll(oSArEF,cOUNT) OsaMsgQPoll(oSArEF,cOUNT,NULL) /*********************************************************************** * * Name: OSAMsgQDelete * * Description: Delete message Q. * * Parameters: * OSAMsgQRef oSArEF [IN] Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAMsgQDelete(oSArEF) OsaMsgQDelete(oSArEF,NULL) /*======================================================================== * OSA Mailboxes *========================================================================*/ /*********************************************************************** * * Name: OSAMailboxQCreate * * Description: Create a mailbox Q. * Each mailbox entry is 32 bit. * * Parameters: * OSMailboxQRef *mboxQRef [OUT] OS mailbox queue reference. * char *queueName [IN] name of mailbox queue * UINT32 maxNumber [IN] max # of messages in the queue . * UINT8 waitingMode [IN] mode of tasks waiting OS_FIFO, OS_PRIORITY. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ IMPC extern OSA_STATUS OSAMailboxQCreate ( OSMailboxQRef *mboxQRef, /* OS mailbox queue reference */ #if defined (OSA_QUEUE_NAMES) char *queueName, /* name of mailbox queue */ #endif UINT32 maxNumber, /* max # of messages in the queue */ UINT8 waitingMode /* mode of tasks waiting OS_FIFO, OS_PRIORITY */ ); /*********************************************************************** * * Name: OSAMailboxQSend * * Description: Write data to mailbox Q. * * Parameters: * OSAMailboxQRef oSArEF [IN] Reference. * UINT32 pTR [IN] Data to put in mailbox. * UINT32 tIMEOUT [IN] timeout. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAMailboxQSend(oSArEF,pTR,tIMEOUT) OsaMailboxQSend(oSArEF,(UINT32)pTR,tIMEOUT,NULL) /*********************************************************************** * * Name: OSAMailboxQRecv * * Description: Read from mailbox Q. * * Parameters: * OSAMailboxQRef oSArEF [IN] Reference. * UINT32 *pTR [OUT] Data to receive from mailbox. * UINT32 tIMEOUT [IN] timeout. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAMailboxQRecv(oSArEF,pTR,tIMEOUT) OsaMailboxQRecv(oSArEF,(UINT32 *)pTR,tIMEOUT,NULL) /*********************************************************************** * * Name: OSAMailboxQPoll * * Description: Gen the number of messages in queue. * * Parameters: * OSAMailboxQRef oSArEF [IN] Reference. * UINY32 *cOUNT [OUT] Number of messages in queue. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAMailboxQPoll(oSArEF,cOUNT) OsaMailboxQPoll(oSArEF,cOUNT,NULL) /*********************************************************************** * * Name: OSAMailboxQDelete * * Description: Delete mailbox Q. * * Parameters: * OSAMailboxQRef oSArEF [IN] Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAMailboxQDelete(oSArEF) OsaMailboxQDelete(oSArEF,NULL) /*======================================================================== * OSA Event Management: *========================================================================*/ /*********************************************************************** * * Name: OsaFlagWait * * Description: Wait for event. * * Parameters: * OSFlagRef flagRef [IN] OS reference to the flag. * UINT32 mask [IN] flag mask to wait for . * UINT32 operation [IN] OSA_FLAG_AND, OSA_FLAG_AND_CLEAR, OSA_FLAG_OR, OSA_FLAG_OR_CLEAR. * UINT32 *flags [OUT] Current value of all flags * UINT32 timeout [IN] OS_SUSPEND, OS_NO_SUSPEND, or timeout * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ IMPC extern OSA_STATUS OSAFlagWait( OSFlagRef flagRef, UINT32 mask, UINT32 operation, UINT32 *flags, UINT32 timeout ); /*********************************************************************** * * Name: OSAFlagCreate * * Description: Create a flag event group. * * Parameters: * OSFlagRef *rEF [OT] Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAFlagCreate(rEF) OsaFlagCreate(rEF,NULL) /*********************************************************************** * * Name: OSAFlagSet * * Description: Set an event. * * Parameters: * OSFlagRef rEF [IN] Reference. * UINT32 mASK [IN] Flag mask. * UINT32 oP [IN] OSA_FLAG_AND, OSA_FLAG_OR. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAFlagSet(rEF,mASK,oP) OsaFlagSet(rEF,mASK,oP,NULL) /*********************************************************************** * * Name: OSAFlagDelete * * Description: Delete event group. * * Parameters: * OSFlagRef rEF [IN] Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAFlagDelete(rEF) OsaFlagDelete(rEF,NULL) /*======================================================================== * OSA Timer Management: *========================================================================*/ /*********************************************************************** * * Name: OSATimerStart * * Description: Create a Timer if needed and activate it. * * Parameters: * OSTimerRef timerRef [IN] OS supplied timer reference. * UINT32 initialTime [IN] initial expiration time in OS tick (5ms each) * UINT32 rescheduleTime [IN] timer period after initial expiration * void (*callBackRoutine)(UINT32) [IN] timer call-back routine * UINT32 timerArgc [IN] argument to be passed to call-back on expiration * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ IMPC extern OSA_STATUS OSATimerStart( OSTimerRef timerRef, UINT32 initialTime, UINT32 rescheduleTime, void (*callBackRoutine)(UINT32), UINT32 timerArgc ); typedef OsaTimerStatusParamsT OSATimerStatus ; /*********************************************************************** * * Name: OSATimerCreate * * Description: Create a Timer, if no input params the timer will be created on OsaTimerStart. * * Parameters: * OSTimerRef *rEF [OUT] Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSATimerCreate(rEF) OsaTimerCreate(rEF,NULL) /*********************************************************************** * * Name: OSATimerDelete * * Description: Delete timer. * * Parameters: * OSTimerRef rEF [IN] Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSATimerDelete(rEF) OsaTimerDelete(rEF,NULL) /*********************************************************************** * * Name: OSATimerStop * * Description: Stop timer. * * Parameters: * OSTimerRef rEF [IN] Reference. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSATimerStop(rEF) OsaTimerStop(rEF,NULL) /*********************************************************************** * * Name: OSATimerGetStatus * * Description: Get timer status. * * Parameters: * OSTimerRef rEF [IN] Reference. * OSATimerStatus *sTATUS [OT] timer status. * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSATimerGetStatus(rEF,sTATUS) OsaTimerStatus(rEF,sTATUS) /*======================================================================== * OSA Memory Heap Access * * Allocating Memory - * * Deallocating Memory - * *========================================================================*/ /*********************************************************************** * * Name: OSAMemPoolCreate * * Description: Create a memory pool * * Parameters: * OSPoolRef *poolRef [OUT] OS assigned reference to the pool. * UINT32 poolType [IN] OSA_FIXED or OS_VARIABLE * UINT8 *poolBase [IN] pointer to start of pool memory * UINT32 poolSize [IN] number of bytes in the memory pool * UINT32 partitionSize [IN] size of partitions in fixed pools * UINT8 waitingMode [IN] mode of tasks waiting OS_FIFO, OS_PRIORITY * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ IMPC extern OSA_STATUS OSAMemPoolCreate ( OSPoolRef *poolRef, UINT32 poolType, UINT8* poolBase, UINT32 poolSize, UINT32 partitionSize, UINT8 waitingMode ); /*********************************************************************** * * Name: OSAMemPoolCreateExt * * Description: Create a independent memory pool * * Parameters: * OSPoolRef *poolRef [OUT] OS assigned reference to the pool. * UINT32 poolType [IN] OSA_FIXED or OS_VARIABLE * UINT8 *poolBase [IN] pointer to start of pool memory * UINT32 poolSize [IN] number of bytes in the memory pool * UINT32 partitionSize [IN] size of partitions in fixed pools * UINT8 waitingMode [IN] mode of tasks waiting OS_FIFO, OS_PRIORITY * char *poolName [IN] pool name * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ IMPC extern OSA_STATUS OSAMemPoolCreateExt ( OSPoolRef *poolRef, UINT32 poolType, UINT8* poolBase, UINT32 poolSize, UINT32 partitionSize, UINT8 waitingMode, char *poolName ); /*********************************************************************** * * Name: OSAMemPoolAlloc * * Description: allocation from memory pool * * Parameters: * OSPoolRef poolRef [IN] OS assigned reference to the pool. * UINT32 size [IN] number of bytes to be allocated * void **mem [OUT] pointer to start of allocated memory * UINT32 timeout [IN] OS_SUSPEND, OS_NO_SUSPEND, or timeout * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ IMPC extern OSA_STATUS OSAMemPoolAlloc ( OSPoolRef poolRef, UINT32 size, void** mem, UINT32 timeout ); /*********************************************************************** * * Name: OSAMemPoolFree * * Description: free memory * * Parameters: * OSPoolRef poolRef [IN] OS assigned reference to the pool. Unused, can be NULL * void *mem [IN] pointer to start of memory to be freed * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ IMPC extern OSA_STATUS OSAMemPoolFree ( OSPoolRef poolRef, void* mem ); /*********************************************************************** * * Name: OSAMemPoolDelete * * Description: delete memory pool * * Parameters: * OSPoolRef rEF [IN] OS assigned reference to the pool. Unused, can be NULL * * Returns: * OS_SUCCESS * * Notes: * ***********************************************************************/ #define OSAMemPoolDelete(rEF) OS_SUCCESS #if 0 #define OSAMemPoolFixedFree(PmEM) OSAMemPoolFree(NULL,PmEM) #define OSAMemPoolCreateGlobal(rEF,nAME,bASE,pOOLsIZE, pARTsIZE) OSAMemPoolCreate(rEF,OSA_GLOBAL,bASE,pOOLsIZE, pARTsIZE,OS_PRIORITY) #endif /*********************************************************************** * * Name: OsaPartitionPoolCreate * * Description: Create Partition Pool. * * Parameters: * OSAPartitionPoolRef *rEF [OUT] OS assigned reference to the pool * char *nAME [IN] pool name * void *sTARTaDDR [IN] pointer to start of pool memory * UINT32 pOOLsIZE [IN] number of bytes in the memory pool * UINT32 pARTsIZE [IN] size of partitions in fixed pools * UINT8 sUSPEND [IN] mode of tasks waiting OS_FIFO, OS_PRIORITY * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAPartitionPoolCreate(rEF, nAME, sTARTaDDR, pOOLsIZE, pARTsIZE, sUSPEND ) OsaPartitionPoolCreate(rEF, nAME, sTARTaDDR, pOOLsIZE, pARTsIZE, sUSPEND) /*********************************************************************** * * Name: OSAPartitionAllocate * * Description: allocation a block from Partition Pool. * * Parameters: * OSAPartitionPoolRef *rEF [IN] OS assigned reference to the pool * void **pBLOCK [OUT] pointer to start of allocated block * UINT8 sUSPEND [IN] OS_SUSPEND, OS_NO_SUSPEND, or timeout * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAPartitionAllocate(rEF, pBLOCK, sUSPEND) OsaPartitionAllocate(rEF, pBLOCK, sUSPEND) /*********************************************************************** * * Name: OSAPartitionFree * * Description: free the block * * Parameters: * void *pBLOCK [IN] the block to be freedl * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAPartitionFree(pBLOCK) OsaPartitionFree(pBLOCK) /*********************************************************************** * * Name: OSAListAllCreatedTasks * * Description: list all created tasks and HISRs * * Parameters: * None * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAListAllCreatedTasks() OsaListAllCreatedTasks() /*********************************************************************** * * Name: OSAListAllCreatedTimers * * Description: list all created timers * * Parameters: * None * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAListAllCreatedTimers() OsaListAllCreatedTimers() /*********************************************************************** * * Name: OSAListAllCreatedEventFlags * * Description: list all created event flags * * Parameters: * None * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAListAllCreatedEventFlags() OsaListAllCreatedEventFlags() /*********************************************************************** * * Name: OSAListAllCreatedMemBlockPools * * Description: list all created memory block pools * * Parameters: * None * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAListAllCreatedMemBlockPools() OsaListAllCreatedMemBlockPools() /*********************************************************************** * * Name: OSAListAllCreatedMsgQs * * Description: list all created message queues * * Parameters: * None * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAListAllCreatedMsgQs() OsaListAllCreatedMsgQs() /*********************************************************************** * * Name: OSAListAllCreatedSemaphores * * Description: list all created semaphores * * Parameters: * None * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAListAllCreatedSemaphores() OsaListAllCreatedSemaphores() /*********************************************************************** * * Name: OSAListAllCreatedMutexs * * Description: list all created mutexs * * Parameters: * None * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAListAllCreatedMutexs() OsaListAllCreatedMutexs() /*********************************************************************** * * Name: OSAListAllCreatedMemBytesPoolsStatus * * Description: list all created memory bytes pools status * * Parameters: * None * * Returns: * OSA_STATUS OSA Complition Code. * * Notes: * ***********************************************************************/ #define OSAListAllCreatedMemBytesPoolsStatus() OsaListAllCreatedMemBytesPoolsStatus() /*********************************************************************** * * Name: OSAGetDefaultMemPoolFreeSize * * Description: get the avaliable bytes of default heap pool * * Parameters: * None * * Returns: * UINT32 the unused bytes of default heap pool * * Notes: * ***********************************************************************/ #define OSAGetDefaultMemPoolFreeSize() OsaGetDefaultMemPoolFreeSize() /*********************************************************************** * * Name: OSAGetMemPoolFreeSize * * Description: get the avaliable bytes of specificed memory pool * * Parameters: * OSPoolRef rEF [IN] memory pool reference * * Returns: * UINT32 the unused bytes of specificed memory pool * * Notes: * ***********************************************************************/ #define OSAGetMemPoolFreeSize(poolRef) OsaGetMemPoolFreeSize(poolRef) /*********************************************************************** * * Name: OSAGetVersion * * Description: get the current OS verison * * Parameters: * None * * Returns: * UINT8 * OS verison string * * Notes: * ***********************************************************************/ #define OSAGetVersion() OsaGetVersion() /* Remap old names to new ones to remain backwards compatibility with old names. */ #define OS_NULL OSA_NULL #define OS_TIMER_DEAD OSA_TIMER_DEAD #define OS_TIMER_CREATED OSA_TIMER_CREATED #define OS_TIMER_ACTIVE OSA_TIMER_ACTIVE #define OS_TIMER_INACTIVE OSA_TIMER_INACTIVE #define OS_ENABLED OSA_ENABLED #define OS_DISABLED OSA_DISABLED #define OS_SUSPEND OSA_SUSPEND #define OS_NO_SUSPEND OSA_NO_SUSPEND #define OS_FLAG_AND OSA_FLAG_AND #define OS_FLAG_AND_CLEAR OSA_FLAG_AND_CLEAR #define OS_FLAG_OR OSA_FLAG_OR #define OS_FLAG_OR_CLEAR OSA_FLAG_OR_CLEAR #define OS_LOWEST_PRIORITY OSA_LOWEST_PRIORITY #define OS_HIGHEST_PRIORITY OSA_HIGHEST_PRIORITY #define OS_POOL_MEM_OVERHEAD OSA_POOL_MEM_OVERHEAD #define OS_FIXED OSA_FIXED #define OS_VARIABLE OSA_VARIABLE #define OS_FIFO OSA_FIFO #define OS_PRIORITY OSA_PRIORITY #define OSInitialize OSAInitialize #define OSRun OSARun #define OSTaskCreate OSATaskCreate #define OSTaskDelete OSATaskDelete #define OSTaskPriority OSATaskChangePriority #define OSTaskGetPriority OSATaskGetPriority #define OSTaskSuspend OSATaskSuspend #define OSTaskResume OSATaskResume #define OSTaskSleep OSATaskSleep #define OSTaskYield OSATaskYield #define OSFlagCreate OSAFlagCreate #define OSFlagDelete OSAFlagDelete #define OSFlagSet OSAFlagSet #define OSFlagWait OSAFlagWait #define OSFlagPeek OSAFlagPeek #define OSTimerCreate OSATimerCreate #define OSTimerDelete OSATimerDelete #define OSTimerStart OSATimerStart #define OSTimerStop OSATimerStop #define OSTimerGetStatus OSATimerGetStatus #define OSMsgQCreate OSAMsgQCreate #define OSMsgQDelete OSAMsgQDelete #define OSMsgQSend OSAMsgQSend #define OSMsgQRecv OSAMsgQRecv #define OSMsgQPoll OSAMsgQPoll #define OSMailboxQCreate OSAMailboxQCreate #define OSMailboxQDelete OSAMailboxQDelete #define OSMailboxQSend OSAMailboxQSend #define OSMailboxQRecv OSAMailboxQRecv #define OSMailboxQPoll OSAMailboxQPoll #define OSSemaphoreCreate OSASemaphoreCreate #define OSSemaphoreDelete OSASemaphoreDelete #define OSSemaphoreAcquire OSASemaphoreAcquire #define OSSemaphoreRelease OSASemaphoreRelease #define OSSemaphorePoll OSASemaphorePoll #define OSMutexCreate OSAMutexCreate #define OSMutexDelete OSAMutexDelete #define OSMutexLock OSAMutexLock #define OSMutexUnlock OSAMutexUnlock #define OSIsrCreate OSAIsrCreate #define OSIsrDelete OSAIsrDelete #define OSIsrEnable OSAIsrEnable #define OSIsrDisable OSAIsrDisable #define OSIsrNotify OSAIsrNotify #define OSGetTicks OSAGetTicks #define OSGetClockRate OSAGetClockRate #define OSTick OSATick #define OSMemPoolCreate OSAMemPoolCreate #define OSMemPoolDelete OSAMemPoolDelete #define OSMemPoolAlloc OSAMemPoolAlloc #define OSMemPoolFree OSAMemPoolFree #define OSContextLock OSAContextLock #define OSContextUnlock OSAContextUnlock #endif /* _OSA_OLD_API_H */