Home | History | Annotate | Download | only in encoder
      1 /******************************************************************************
      2  *
      3  * Copyright (C) 2018 The Android Open Source Project
      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  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
     19 */
     20 
     21 /*****************************************************************************/
     22 /*                                                                           */
     23 /*  File Name         : osal_select_engine.h                                 */
     24 /*                                                                           */
     25 /*  Description       : This file contains OSAL Select Engine handle         */
     26 /*                      structure definition.                                */
     27 /*                                                                           */
     28 /*  List of Functions : None                                                 */
     29 /*                                                                           */
     30 /*  Issues / Problems : None                                                 */
     31 /*                                                                           */
     32 /*  Revision History  :                                                      */
     33 /*                                                                           */
     34 /*         DD MM YYYY   Author(s)       Changes (Describe the changes made)  */
     35 /*         26 05 2006   Ittiam          Draft                                */
     36 /*                                                                           */
     37 /*****************************************************************************/
     38 
     39 #ifndef OSAL_SELECT_ENGINE_H
     40 #define OSAL_SELECT_ENGINE_H
     41 
     42 /*****************************************************************************/
     43 /* Constants                                                                 */
     44 /*****************************************************************************/
     45 
     46 #define ACTIVE 1
     47 #define SHUTDOWN 2
     48 #define DEAD 3
     49 
     50 /*****************************************************************************/
     51 /* Structures                                                                */
     52 /*****************************************************************************/
     53 
     54 typedef struct
     55 {
     56     osal_select_entry_t *readfds[MAX_FDS]; /* To check for read             */
     57     UWORD32 read_count; /* Count of read descriptors     */
     58     osal_select_entry_t *writefds[MAX_FDS]; /* To check for write            */
     59     UWORD32 write_count; /* Count of write descriptors    */
     60     osal_select_entry_t *exceptfds[MAX_FDS]; /* Check for errors              */
     61     UWORD32 except_count; /* Count of write descriptors    */
     62     WORD32 id; /* To generate id for each entry */
     63     volatile WORD32 state; /* State of select engine        */
     64     void *thread_handle; /* Select engine thread handle   */
     65     void *mutex_handle; /* Mutex for mutual exclusion.   */
     66     void *mmr_handle; /* Handle to memory manager      */
     67     osal_t *hdl; /* Associated OSAL handle        */
     68 
     69     /* Timeout for thread sleep */
     70     UWORD32 select_timeout;
     71 
     72     /* Timeout for SELECT system called by osal library */
     73     UWORD32 select_poll_interval;
     74 } select_engine_t;
     75 
     76 #endif /* OSAL_SELECT_ENGINE_H */
     77