120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/* 220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * Copyright 2012 Samsung Electronics S.LSI Co. LTD 420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Licensed under the Apache License, Version 2.0 (the "License"); 620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * you may not use this file except in compliance with the License. 720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * You may obtain a copy of the License at 820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * http://www.apache.org/licenses/LICENSE-2.0 1020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 1120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Unless required by applicable law or agreed to in writing, software 1220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * distributed under the License is distributed on an "AS IS" BASIS, 1320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * See the License for the specific language governing permissions and 1520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * limitations under the License. 1620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 1720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 1820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/* 1920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @file Exynos_OSAL_Queue.h 2020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @brief 2120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @author SeungBeom Kim (sbcrux.kim@samsung.com) 2238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * @version 2.0.0 2320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @history 2438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * 2012.02.20 : Create 2520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 2620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 2738ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#ifndef EXYNOS_OSAL_QUEUE 2838ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#define EXYNOS_OSAL_QUEUE 2920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include "OMX_Types.h" 3120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include "OMX_Core.h" 3220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#define QUEUE_ELEMENTS 10 3438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#define MAX_QUEUE_ELEMENTS 40 3520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct _EXYNOS_QElem 3720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang{ 3820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang void *data; 3920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang struct _EXYNOS_QElem *qNext; 4020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} EXYNOS_QElem; 4120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 4220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct _EXYNOS_QUEUE 4320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang{ 4420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang EXYNOS_QElem *first; 4520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang EXYNOS_QElem *last; 4620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang int numElem; 4738ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang int maxNumElem; 4820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_HANDLETYPE qMutex; 4920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} EXYNOS_QUEUE; 5020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 5120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 5220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifdef __cplusplus 5320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changextern "C" { 5420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif 5520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 5638ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OSAL_QueueCreate(EXYNOS_QUEUE *queueHandle, int maxNumElem); 5720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangOMX_ERRORTYPE Exynos_OSAL_QueueTerminate(EXYNOS_QUEUE *queueHandle); 5820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint Exynos_OSAL_Queue(EXYNOS_QUEUE *queueHandle, void *data); 5920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changvoid *Exynos_OSAL_Dequeue(EXYNOS_QUEUE *queueHandle); 6020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint Exynos_OSAL_GetElemNum(EXYNOS_QUEUE *queueHandle); 6120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint Exynos_OSAL_SetElemNum(EXYNOS_QUEUE *queueHandle, int ElemNum); 6238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Changint Exynos_OSAL_ResetQueue(EXYNOS_QUEUE *queueHandle); 6320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 6420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifdef __cplusplus 6520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} 6620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif 6720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 6820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif 69