OpenClovis Logo

Macros | Typedefs | Enumerations | Functions | Variables
clOsalApi.h File Reference

Operating System Abstraction Layer API. More...

#include <stdlib.h>
#include <pthread.h>
#include <clCommon.h>
#include <clTimerApi.h>
#include <clHeapApi.h>
#include <clArchHeaders.h>
#include <semaphore.h>

Go to the source code of this file.

Macros

#define CL_OSAL_MIN_STACK_SIZE   196608
 This is required while Thread or Task creation.
#define CL_OSAL_NAME_MAX   32
 The maximum length of thread/task names.
#define CL_OSAL_SHM_EXCEPTION_LENGTH   2048
 Shared memory area definition.

Typedefs

typedef ClOsalCondTClOsalCondIdT
 The type of an identifier to the OSAL condition ID.
typedef pthread_cond_t ClOsalCondT
 The thread condition type wrapped.
typedef ClOsalMutexT * ClOsalMutexIdT
 The type of an identifier to the OSAL Mutex ID.
typedef ClUint32T ClOsalPidT
 The type of an identifier to the OSAL Process ID.
typedef void(* ClOsalProcessFuncT )(void *)
 CAllback type of callback function invoked when a process is created.
typedef ClHandleT ClOsalSemIdT
 The type of an identifier to the OSAL Semaphore ID.
typedef enum ClOsalSharedMutexFlags ClOsalSharedMutexFlagsT
 The mutex type to be initialized.
typedef ClUint32T ClOsalShmIdT
 The type of an identifier to the OSAL Shared Memory ID.
typedef ClPtrT ClOsalTaskDataT
 The type of an identifier to the OSAL Task Data type.
typedef ClUint64T ClOsalTaskIdT
 The type of an identifier to the OSAL Task ID.
typedef void(* ClOsalTaskKeyDeleteCallBackT )(void *)
 CAllback type of callback function invoked when the task specific private key is destruyed.

Enumerations

enum  ClOsalProcessFlagT {
  CL_OSAL_PROCESS_WITH_NEW_SESSION = CL_BIT(0),
  CL_OSAL_PROCESS_WITH_NEW_GROUP = CL_BIT(1)
}
 Process creation flags. More...
enum  ClOsalSchedulePolicyT {
  CL_OSAL_SCHED_OTHER = SCHED_OTHER,
  CL_OSAL_SCHED_FIFO = SCHED_FIFO,
  CL_OSAL_SCHED_RR = SCHED_RR
}
 The following enumeration type contains schedule policy of the tasks that will be created. More...
enum  ClOsalSharedMutexFlags
 The mutex type to be initialized.
enum  ClOsalShmSecurityModeFlagT {
  CL_OSAL_SHM_MODE_READ_USER = 0x0100,
  CL_OSAL_SHM_MODE_READ_GROUP = 0x0020,
  CL_OSAL_SHM_MODE_READ_OTHERS = 0x0004,
  CL_OSAL_SHM_MODE_WRITE_USER = 0x0080,
  CL_OSAL_SHM_MODE_WRITE_GROUP = 0x0010,
  CL_OSAL_SHM_MODE_WRITE_OTHERS = 0x0002
}
 Shared memory security options. More...
enum  ClOsalThreadPriorityT {
  CL_OSAL_THREAD_PRI_NOT_APPLICABLE = 0,
  CL_OSAL_THREAD_PRI_HIGH = 160,
  CL_OSAL_THREAD_PRI_MEDIUM = 80,
  CL_OSAL_THREAD_PRI_LOW = 1
}
 The following enumeration type contains the various thread priorities. More...

Functions

ClRcT clOsalCondBroadcast (ClOsalCondIdT conditionId)
 Broadcasts a condition.
ClRcT clOsalCondCreate (ClOsalCondIdT *pConditionId)
 Creates a condition variable.
ClRcT clOsalCondDelete (ClOsalCondIdT conditionId)
 Deletes a condition variable.
ClRcT clOsalCondDestroy (ClOsalCondT *pCond)
 Destroys a condition variable.
ClRcT clOsalCondInit (ClOsalCondT *pCond)
 Initializes a condition variable.
ClRcT clOsalCondSignal (ClOsalCondIdT conditionId)
 Signals a condition.
ClRcT clOsalCondWait (ClOsalCondIdT conditionId, ClOsalMutexIdT mutexId, ClTimerTimeOutT time)
 Waits for a condition.
ClRcT clOsalFinalize (void)
ClRcT clOsalInitialize (const ClPtrT pConfig)
 Initializes the Operating System Abstraction Layer (OSAL).
ClRcT clOsalMutexCreate (ClOsalMutexIdT *pMutexId)
 Creates a mutex.
ClRcT clOsalMutexCreateAndLock (ClOsalMutexIdT *pMutexId)
 Creates a mutex in locked state.
ClRcT clOsalMutexDelete (ClOsalMutexIdT mutexId)
 Deletes a mutex.
ClRcT clOsalMutexDestroy (ClOsalMutexT *pMutex)
 Destroys a mutex.
ClRcT clOsalMutexInit (ClOsalMutexT *pMutex)
 Initializes a mutex.
ClRcT clOsalMutexLock (ClOsalMutexIdT mutexId)
 Locks a mutex.
ClRcT clOsalMutexUnlock (ClOsalMutexIdT mutexId)
 Unlocks a mutex.
ClRcT clOsalNanoTimeGet (ClNanoTimeT *pTime)
 Returns the time since Epoch, with a best resolution of 1 nanosecond.
ClRcT clOsalPageSizeGet (ClInt32T *pSize)
ClRcT clOsalPrintf (const ClCharT *fmt,...)
 Prints to the standard output.
ClRcT clOsalProcessCreate (ClOsalProcessFuncT fpFunction, void *functionArg, ClOsalProcessFlagT creationFlags, ClOsalPidT *pProcessId)
 Creates a process.
ClRcT clOsalProcessDelete (ClOsalPidT processId)
 Deletes a process.
ClRcT clOsalProcessSelfIdGet (ClOsalPidT *pProcessId)
 Retrieves the processId.
ClRcT clOsalProcessSharedCondInit (ClOsalCondT *pCond)
 Initializes a condition variable that can be used in multiple processes.
ClRcT clOsalProcessSharedMutexInit (ClOsalMutexT *pMutex, ClOsalSharedMutexFlagsT flags, ClUint8T *pKey, ClUint32T keyLen, ClInt32T value)
 Initializes a process-shared mutex.
ClRcT clOsalProcessWait (ClOsalPidT processId)
 Waits for a process to exit.
ClRcT clOsalRecursiveMutexInit (ClOsalMutexT *pMutex)
 Initializes a mutex.
ClRcT clOsalSelfTaskIdGet (ClOsalTaskIdT *pTaskId)
 Retrieves task id.
ClRcT clOsalSemCreate (ClUint8T *pName, ClUint32T value, ClOsalSemIdT *pSemId)
 Creates a semaphore.
ClRcT clOsalSemDelete (ClOsalSemIdT semId)
 Deletes a semaphore.
ClRcT clOsalSemIdGet (ClUint8T *pName, ClOsalSemIdT *pSemId)
 Retrieves the semaphore id.
ClRcT clOsalSemLock (ClOsalSemIdT semId)
 Locks a semaphore.
ClRcT clOsalSemTryLock (ClOsalSemIdT semId)
 Locks a semaphore if it is available.
ClRcT clOsalSemUnlock (ClOsalSemIdT semId)
 Unlocks a semaphore.
ClRcT clOsalSemValueGet (ClOsalSemIdT semId, ClUint32T *pSemValue)
 Retrieves the value of a semaphore.
ClRcT clOsalShmAttach (ClOsalShmIdT shmId, void *pInMem, void **ppOutMem)
 Attaches a shared memory.
ClRcT clOsalShmCreate (ClUint8T *pName, ClUint32T size, ClOsalShmIdT *pShmId)
 Creates a shared memory.
ClRcT clOsalShmDelete (ClOsalShmIdT shmId)
 Deletes a shared memory.
ClRcT clOsalShmDetach (void *pMem)
 Detaches a shared memory.
ClRcT clOsalShmIdGet (ClUint8T *pName, ClOsalShmIdT *pShmId)
 Retrieves a shared memory Id.
ClRcT clOsalShmSecurityModeGet (ClOsalShmIdT shmId, ClUint32T *pMode)
 Retrieves permissions of shared memory.
ClRcT clOsalShmSecurityModeSet (ClOsalShmIdT shmId, ClUint32T mode)
 Sets permissions to shared memory.
ClRcT clOsalShmSizeGet (ClOsalShmIdT shmId, ClUint32T *pSize)
 Retrieves the size of shared memory.
void clOsalSigHandlerInitialize (void)
 Installs and initializes the signal handler.
ClTimeT clOsalStopWatchTimeGet (void)
 Retrieves the time since the machine is up.
ClRcT clOsalTaskCreateAttached (const ClCharT *taskName, ClOsalSchedulePolicyT schedulePolicy, ClUint32T priority, ClUint32T stackSize, void *(*fpTaskFunction)(void *), void *pTaskFuncArgument, ClOsalTaskIdT *pTaskId)
 Creates a task.
ClRcT clOsalTaskCreateDetached (const ClCharT *taskName, ClOsalSchedulePolicyT schedulePolicy, ClUint32T priority, ClUint32T stackSize, void *(*fpTaskFunction)(void *), void *pTaskFuncArgument)
 Creates a task.
ClRcT clOsalTaskDataGet (ClUint32T key, ClOsalTaskDataT *pThreadData)
 Retrieves the thread-specific data.
ClRcT clOsalTaskDataSet (ClUint32T key, ClOsalTaskDataT threadData)
 Sets the thread-specific data.
ClRcT clOsalTaskDelay (ClTimerTimeOutT timeOut)
 Delays a task.
ClRcT clOsalTaskDelete (ClOsalTaskIdT taskId)
 Deletes a task.
ClRcT clOsalTaskDetach (ClOsalTaskIdT taskId)
 No longer interested in the task's alive/dead state.
ClRcT clOsalTaskJoin (ClOsalTaskIdT taskId)
 Joins a task.
ClRcT clOsalTaskKeyCreate (ClUint32T *pKey, ClOsalTaskKeyDeleteCallBackT pCallbackFunc)
 Creates a key for thread-specific data.
ClRcT clOsalTaskKeyDelete (ClUint32T key)
 Deletes the key for thread-specific data.
ClRcT clOsalTaskKill (ClOsalTaskIdT taskId, ClInt32T sig)
 Kills a task by sending a signal.
ClRcT clOsalTaskNameGet (ClOsalTaskIdT taskId, ClCharT **ppTaskName)
 Retrieves task name.
ClRcT clOsalTaskPriorityGet (ClOsalTaskIdT taskId, ClUint32T *pTaskPriority)
 Retrieves the priority of the task.
ClRcT clOsalTaskPrioritySet (ClOsalTaskIdT taskId, ClUint32T taskPriority)
 Sets the priority of the task.
ClRcT clOsalTimeOfDayGet (ClTimerTimeOutT *pTime)
 Retrieves the current time.

Variables

ClOsalShmIdT gClCompUniqueShmId
 Shared memory ID associated with the component.
ClOsalShmAreaDefT * gpClShmArea
 Shared memory associated with the component.

Detailed Description

Operating System Abstraction Layer API.


Generated on Tue Jan 10 10:29:15 PST 2012 for OpenClovis SDK using Doxygen