• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *
3  * Copyright 2013 Rockchip Electronics Co., LTD.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 /*
19  * @file        Rockchip_OSAL_Queue.h
20  * @brief
21  * @author      csy(csy@rock-chips.com)
22  * @version     1.0.0
23  * @history
24  *   2013.11.26 : Create
25  */
26 
27 #ifndef ROCKCHIP_OSAL_QUEUE
28 #define ROCKCHIP_OSAL_QUEUE
29 
30 #include "OMX_Types.h"
31 #include "OMX_Core.h"
32 
33 #define QUEUE_ELEMENTS        10
34 #define MAX_QUEUE_ELEMENTS    40
35 
36 typedef struct _ROCKCHIP_QElem {
37     void             *data;
38     struct _ROCKCHIP_QElem *qNext;
39 } ROCKCHIP_QElem;
40 
41 typedef struct _ROCKCHIP_QUEUE {
42     ROCKCHIP_QElem     *first;
43     ROCKCHIP_QElem     *last;
44     int            numElem;
45     int            maxNumElem;
46     OMX_HANDLETYPE qMutex;
47 } ROCKCHIP_QUEUE;
48 
49 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
54 OMX_ERRORTYPE Rockchip_OSAL_QueueCreate(ROCKCHIP_QUEUE *queueHandle, int maxNumElem);
55 OMX_ERRORTYPE Rockchip_OSAL_QueueTerminate(ROCKCHIP_QUEUE *queueHandle);
56 int           Rockchip_OSAL_Queue(ROCKCHIP_QUEUE *queueHandle, void *data);
57 void         *Rockchip_OSAL_Dequeue(ROCKCHIP_QUEUE *queueHandle);
58 int           Rockchip_OSAL_GetElemNum(ROCKCHIP_QUEUE *queueHandle);
59 int           Rockchip_OSAL_SetElemNum(ROCKCHIP_QUEUE *queueHandle, int ElemNum);
60 int           Rockchip_OSAL_ResetQueue(ROCKCHIP_QUEUE *queueHandle);
61 
62 #ifdef __cplusplus
63 }
64 #endif
65 
66 #endif
67