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.c                                               */
     24 /*                                                                           */
     25 /*  Description       : This file contains all the API's of OSAL             */
     26 /*                      initialization and closure                           */
     27 /*                                                                           */
     28 /*  List of Functions : osal_init                                            */
     29 /*                      osal_register_callbacks                              */
     30 /*                      osal_close                                           */
     31 /*                      osal_get_version                                     */
     32 /*                      osal_print_status_log                                */
     33 /*                                                                           */
     34 /*  Issues / Problems : None                                                 */
     35 /*                                                                           */
     36 /*  Revision History  :                                                      */
     37 /*                                                                           */
     38 /*         DD MM YYYY   Author(s)       Changes (Describe the changes made)  */
     39 /*         19 04 2006   Ittiam          Draft                                */
     40 /*                                                                           */
     41 /*****************************************************************************/
     42 
     43 /*****************************************************************************/
     44 /* File Includes                                                             */
     45 /*****************************************************************************/
     46 
     47 /* System include files */
     48 #include <stdio.h>
     49 
     50 #include <sys/types.h>
     51 #include <semaphore.h>
     52 #include <pthread.h>
     53 
     54 /* User include files */
     55 #include "cast_types.h"
     56 #include "osal.h"
     57 #include "osal_handle.h"
     58 
     59 /*****************************************************************************/
     60 /* Constant Macros                                                           */
     61 /*****************************************************************************/
     62 
     63 #define OSAL_VERSION "OSAL_v13.1"
     64 
     65 /*****************************************************************************/
     66 /*                                                                           */
     67 /*  Function Name : osal_init                                                */
     68 /*                                                                           */
     69 /*  Description   : This function creates and initializes the OSAL instance  */
     70 /*                                                                           */
     71 /*  Inputs        : Memory for OSAL handle                                   */
     72 /*                                                                           */
     73 /*  Globals       : None                                                     */
     74 /*                                                                           */
     75 /*  Processing    : Initializes OSAL handle parameters to default values.    */
     76 /*                                                                           */
     77 /*  Outputs       : Status of OSAL handle initialization                     */
     78 /*                                                                           */
     79 /*  Returns       : On SUCCESS - OSAL_SUCCESS                                */
     80 /*                  On FAILURE - OSAL_ERROR                                  */
     81 /*                                                                           */
     82 /*  Issues        : None                                                     */
     83 /*                                                                           */
     84 /*  Revision History:                                                        */
     85 /*                                                                           */
     86 /*         DD MM YYYY   Author(s)       Changes (Describe the changes made)  */
     87 /*         19 04 2006   Ittiam          Draft                                */
     88 /*                                                                           */
     89 /*****************************************************************************/
     90 
     91 WORD32 osal_init(IN void *osal_handle)
     92 {
     93     osal_t *handle = (osal_t *)osal_handle;
     94 
     95     /* Validate the input */
     96     if(0 == osal_handle)
     97         return OSAL_ERROR;
     98 
     99     /* Initialize call back functions */
    100     handle->alloc = 0;
    101     handle->free = 0;
    102     handle->mmr_handle = 0;
    103 
    104     return OSAL_SUCCESS;
    105 }
    106 
    107 /*****************************************************************************/
    108 /*                                                                           */
    109 /*  Function Name : osal_register_callbacks                                  */
    110 /*                                                                           */
    111 /*  Description   : This function registers MMR handle and allocation and    */
    112 /*                  freeing call back functions.                             */
    113 /*                                                                           */
    114 /*  Inputs        : OSAL handle                                              */
    115 /*                  OSAL callback attributes                                 */
    116 /*                                                                           */
    117 /*  Globals       : None                                                     */
    118 /*                                                                           */
    119 /*  Processing    : This function initializes OSAL call back parameters.     */
    120 /*                                                                           */
    121 /*  Outputs       : Status of OSAL callback registration                     */
    122 /*                                                                           */
    123 /*  Returns       : On SUCCESS - OSAL_SUCCESS                                */
    124 /*                  On FAILURE - OSAL_ERROR                                  */
    125 /*                                                                           */
    126 /*  Issues        : None                                                     */
    127 /*                                                                           */
    128 /*  Revision History:                                                        */
    129 /*                                                                           */
    130 /*         DD MM YYYY   Author(s)       Changes (Describe the changes made)  */
    131 /*         10 05 2006   Ittiam          Draft                                */
    132 /*                                                                           */
    133 /*****************************************************************************/
    134 
    135 WORD32 osal_register_callbacks(IN void *osal_handle, IN osal_cb_funcs_t *cb_funcs)
    136 {
    137     osal_t *handle = (osal_t *)osal_handle;
    138 
    139     /* Validate the input */
    140     if(0 == handle || 0 == cb_funcs)
    141         return OSAL_ERROR;
    142 
    143     if(0 == cb_funcs->osal_alloc || 0 == cb_funcs->osal_free)
    144         return OSAL_ERROR;
    145 
    146     /* Initialize call back parameters */
    147     handle->mmr_handle = cb_funcs->mmr_handle;
    148     handle->alloc = cb_funcs->osal_alloc;
    149     handle->free = cb_funcs->osal_free;
    150 
    151     return OSAL_SUCCESS;
    152 }
    153 
    154 /*****************************************************************************/
    155 /*                                                                           */
    156 /*  Function Name : osal_close                                               */
    157 /*                                                                           */
    158 /*  Description   : This function closes the OSAL instance                   */
    159 /*                                                                           */
    160 /*  Inputs        : OSAL handle                                              */
    161 /*                                                                           */
    162 /*  Globals       : None                                                     */
    163 /*                                                                           */
    164 /*  Processing    : Frees the memory allocated for the OSAL handle           */
    165 /*                                                                           */
    166 /*  Outputs       : Status of OSAL instance close                            */
    167 /*                                                                           */
    168 /*  Returns       : On SUCCESS - 0                                           */
    169 /*                  On FALIURE - -1                                          */
    170 /*                                                                           */
    171 /*  Issues        : None                                                     */
    172 /*                                                                           */
    173 /*  Revision History:                                                        */
    174 /*                                                                           */
    175 /*         DD MM YYYY   Author(s)       Changes (Describe the changes made)  */
    176 /*         19 04 2006   Ittiam          Draft                                */
    177 /*                                                                           */
    178 /*****************************************************************************/
    179 
    180 WORD32 osal_close(IN void *osal_handle)
    181 {
    182     /* Validate input */
    183     if(0 == osal_handle)
    184         return OSAL_ERROR;
    185 
    186     return OSAL_SUCCESS;
    187 }
    188 
    189 /*****************************************************************************/
    190 /*                                                                           */
    191 /*  Function Name : osal_get_version                                         */
    192 /*                                                                           */
    193 /*  Description   : This function gets the version of OSAL library.          */
    194 /*                                                                           */
    195 /*  Inputs        : None                                                     */
    196 /*  Globals       : None                                                     */
    197 /*                                                                           */
    198 /*  Processing    : Returns a NULL terminated string with has the version of */
    199 /*                  library being used.                                      */
    200 /*                                                                           */
    201 /*  Outputs       : Version of OSAL library.                                 */
    202 /*                                                                           */
    203 /*  Returns       : Pointer to a NULL terminated string                      */
    204 /*                                                                           */
    205 /*  Issues        : None                                                     */
    206 /*                                                                           */
    207 /*  Revision History:                                                        */
    208 /*                                                                           */
    209 /*         DD MM YYYY   Author(s)       Changes (Describe the changes made)  */
    210 /*         07 03 2006   Ittiam          Draft                                */
    211 /*                                                                           */
    212 /*****************************************************************************/
    213 
    214 WORD8 *osal_get_version()
    215 {
    216     return ((WORD8 *)OSAL_VERSION);
    217 }
    218