khronosfws/openmax_al/src/common/xaplatform.c
branchRCL_3
changeset 20 0ac9a5310753
parent 19 095bea5f582e
child 21 999b2818a0eb
--- a/khronosfws/openmax_al/src/common/xaplatform.c	Tue Aug 31 15:43:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,276 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description: Platform Specific Utility Functions
- *
- */
-
-#include <pthread.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <errno.h>
-
-#include "xaplatform.h"
-
-/** MACROS **/
-
-/**********************************************************************
- * mutex management
- **********************************************************************/
-/* define next if platform supports posix error checking mutex type */
-#undef _MUTEXERRORSUPPORT
-
-#ifdef _MUTEXERRORSUPPORT
-typedef pthread_mutex_t XA_MTX;
-#else
-typedef struct
-    {
-    pthread_mutex_t mutex;
-    pthread_t owner;
-    } XA_MTX;
-#endif
-
-XAresult XAImpl_CreateMutex(XAImplMutexHandle *mtx)
-    {
-    XA_MTX *pMtx = (XA_MTX *) malloc(sizeof(XA_MTX));
-    assert(mtx);
-    if (pMtx)
-        {
-        pthread_mutexattr_t *pAttr = NULL;
-#ifdef _MUTEXERRORSUPPORT
-        pthread_mutexattr_t attr;
-        pAttr = &attr;
-        pthread_mutexattr_init(pAttr);
-        pthread_mutexattr_settype(pAttr, PTHREAD_MUTEX_ERRORCHECK);
-        if(pthread_mutex_init(pMtx, pAttr))
-#else
-        if (pthread_mutex_init(&(pMtx->mutex), pAttr))
-#endif
-            {
-            free(pMtx);
-            *mtx = NULL;
-            return XA_RESULT_INTERNAL_ERROR;
-            }
-        *mtx = (XAImplMutexHandle) pMtx;
-        return XA_RESULT_SUCCESS;
-        }
-    else
-        {
-        return XA_RESULT_MEMORY_FAILURE;
-        }
-    }
-
-XAresult XAImpl_LockMutex(XAImplMutexHandle mtx)
-    {
-    XA_MTX *pMtx = (XA_MTX*) mtx;
-    assert(pMtx);
-#ifdef _MUTEXERRORSUPPORT
-    if(pthread_mutex_lock(pMtx))
-        {
-        return XA_RESULT_PRECONDITIONS_VIOLATED;
-        }
-#else
-    if (pthread_self() == pMtx->owner || pthread_mutex_unlock(&(pMtx->mutex)))
-        {
-        return XA_RESULT_PRECONDITIONS_VIOLATED;
-        }
-    pMtx->owner = pthread_self();
-#endif
-    return XA_RESULT_SUCCESS;
-    }
-
-XAresult XAImpl_TryLockMutex(XAImplMutexHandle mtx)
-    {
-    XA_MTX *pMtx = (XA_MTX*) mtx;
-    XAint32 mutexRet;
-    XAresult ret = XA_RESULT_SUCCESS;
-    assert(pMtx);
-
-#ifdef _MUTEXERRORSUPPORT
-    mutexRet = pthread_ mutex_trylock(pMtx);
-    switch (mutexRet)
-        {
-        case EBUSY:
-        /* if mutex is already locked, return permission denied */
-        ret = XA_RESULT_PERMISSION_DENIED;
-        break;
-        case 0:
-        ret = XA_RESULT_SUCCESS;
-        break;
-        default:
-        ret = XA_RESULT_PRECONDITIONS_VIOLATED;
-        break;
-        }
-#else
-    if (pthread_self() == pMtx->owner)
-        {
-        return XA_RESULT_PRECONDITIONS_VIOLATED;
-        }
-
-    mutexRet = pthread_mutex_trylock(&(pMtx->mutex));
-    switch (mutexRet)
-        {
-        case EBUSY:
-            /* if mutex is already locked, return permission denied */
-            ret = XA_RESULT_PERMISSION_DENIED;
-            break;
-        case 0:
-            pMtx->owner = pthread_self();
-            ret = XA_RESULT_SUCCESS;
-            break;
-        default:
-            ret = XA_RESULT_PRECONDITIONS_VIOLATED;
-            break;
-        }
-#endif
-    return ret;
-    }
-
-XAresult XAImpl_UnlockMutex(XAImplMutexHandle mtx)
-    {
-    XA_MTX *pMtx = (XA_MTX*) mtx;
-    assert(pMtx);
-#ifdef _MUTEXERRORSUPPORT
-    if(pthread_mutex_lock(pMtx))
-        {
-        return XA_RESULT_PRECONDITIONS_VIOLATED;
-        }
-#else
-    if (pthread_self() != pMtx->owner || pthread_mutex_unlock(&(pMtx->mutex)))
-        {
-        return XA_RESULT_PRECONDITIONS_VIOLATED;
-        }
-    // Changing the below value to 0 since owner is an unsigned int.
-    // pMtx->owner = -1;
-    pMtx->owner = 0;
-#endif
-    return XA_RESULT_SUCCESS;
-    }
-
-void XAImpl_DeleteMutex(XAImplMutexHandle mtx)
-    {
-    XA_MTX *pMtx = (XA_MTX*) mtx;
-    if (pMtx)
-        {
-#ifdef _MUTEXERRORSUPPORT
-        pthread_mutex_destroy(pMtx);
-#else
-        pthread_mutex_destroy(&(pMtx->mutex));
-#endif
-        free(pMtx);
-        }
-    }
-
-/**********************************************************************
- * semaphores
- **********************************************************************/
-
-XAresult XAImpl_CreateSemaphore(XAImplSemHandle *sem)
-    {
-    sem_t *pSem = (sem_t*) malloc(sizeof(sem_t));
-    assert(sem);
-    if (pSem)
-        {
-        if (sem_init(pSem, 0, 0))
-            {
-            free(pSem);
-            *sem = NULL;
-            return XA_RESULT_INTERNAL_ERROR;
-            }
-        *sem = (XAImplSemHandle) pSem;
-        return XA_RESULT_SUCCESS;
-        }
-    else
-        {
-        return XA_RESULT_MEMORY_FAILURE;
-        }
-    }
-
-XAresult XAImpl_WaitSemaphore(XAImplSemHandle sem)
-    {
-    sem_t* pSem = (sem_t*) sem;
-    assert(pSem);
-    sem_wait(pSem);
-    return XA_RESULT_SUCCESS;
-    }
-
-XAresult XAImpl_PostSemaphore(XAImplSemHandle sem)
-    {
-    sem_t *pSem = (sem_t*) sem;
-    assert(pSem);
-    sem_post(pSem);
-    return XA_RESULT_SUCCESS;
-    }
-
-void XAImpl_DeleteSemaphore(XAImplSemHandle sem)
-    {
-    sem_t *pSem = (sem_t*) sem;
-    if (pSem)
-        {
-        sem_destroy(pSem);
-        free(pSem);
-        }
-    }
-
-/**********************************************************************
- * THREADS
- **********************************************************************/
-
-XAresult XAImpl_CreateThreadHandle(XAImplThreadHandle *thd)
-    {
-    pthread_t *pThd = (pthread_t*) malloc(sizeof(pthread_t));
-    assert(thd);
-    if (!pThd)
-        {
-        return XA_RESULT_MEMORY_FAILURE;
-        }
-    *thd = (XAImplThreadHandle) pThd;
-    return XA_RESULT_SUCCESS;
-    }
-
-XAresult XAImpl_StartThread(XAImplThreadHandle thd, void *thdattrib,
-        XAImplThreadFunction thdfunc, void* thdfuncargs)
-    {
-    pthread_t *pThd = (pthread_t*) thd;
-    assert(thd);
-    if (pthread_create(pThd, thdattrib, thdfunc, thdfuncargs))
-        {
-        return XA_RESULT_INTERNAL_ERROR;
-        }
-    return XA_RESULT_SUCCESS;
-    }
-
-void XAImpl_CancelThread(XAImplThreadHandle thd)
-    {
-    // int res;
-    // TL: TODO: There is no pthread_cancel API in S60, need to replace
-    //res = pthread_cancel(*pThd);
-
-    }
-
-void XAImpl_ExitThread(XAImplThreadHandle thd)
-    {
-    pthread_exit(NULL);
-    }
-
-void XAImpl_DeleteThreadHandle(XAImplThreadHandle thd)
-    {
-    pthread_t *pThd = (pthread_t*) thd;
-    if (pThd)
-        {
-        free(pThd);
-        }
-    }
-