/****************************************************************************** * * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ***************************************************************************** * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore */ /*****************************************************************************/ /* */ /* File Name : osal.c */ /* */ /* Description : This file contains all the API's of OSAL */ /* initialization and closure */ /* */ /* List of Functions : osal_init */ /* osal_register_callbacks */ /* osal_close */ /* osal_get_version */ /* osal_print_status_log */ /* */ /* Issues / Problems : None */ /* */ /* Revision History : */ /* */ /* DD MM YYYY Author(s) Changes (Describe the changes made) */ /* 19 04 2006 Ittiam Draft */ /* */ /*****************************************************************************/ /*****************************************************************************/ /* File Includes */ /*****************************************************************************/ /* System include files */ #include #include #include #include /* User include files */ #include "cast_types.h" #include "osal.h" #include "osal_handle.h" /*****************************************************************************/ /* Constant Macros */ /*****************************************************************************/ #define OSAL_VERSION "OSAL_v13.1" /*****************************************************************************/ /* */ /* Function Name : osal_init */ /* */ /* Description : This function creates and initializes the OSAL instance */ /* */ /* Inputs : Memory for OSAL handle */ /* */ /* Globals : None */ /* */ /* Processing : Initializes OSAL handle parameters to default values. */ /* */ /* Outputs : Status of OSAL handle initialization */ /* */ /* Returns : On SUCCESS - OSAL_SUCCESS */ /* On FAILURE - OSAL_ERROR */ /* */ /* Issues : None */ /* */ /* Revision History: */ /* */ /* DD MM YYYY Author(s) Changes (Describe the changes made) */ /* 19 04 2006 Ittiam Draft */ /* */ /*****************************************************************************/ WORD32 osal_init(IN void *osal_handle) { osal_t *handle = (osal_t *)osal_handle; /* Validate the input */ if(0 == osal_handle) return OSAL_ERROR; /* Initialize call back functions */ handle->alloc = 0; handle->free = 0; handle->mmr_handle = 0; return OSAL_SUCCESS; } /*****************************************************************************/ /* */ /* Function Name : osal_register_callbacks */ /* */ /* Description : This function registers MMR handle and allocation and */ /* freeing call back functions. */ /* */ /* Inputs : OSAL handle */ /* OSAL callback attributes */ /* */ /* Globals : None */ /* */ /* Processing : This function initializes OSAL call back parameters. */ /* */ /* Outputs : Status of OSAL callback registration */ /* */ /* Returns : On SUCCESS - OSAL_SUCCESS */ /* On FAILURE - OSAL_ERROR */ /* */ /* Issues : None */ /* */ /* Revision History: */ /* */ /* DD MM YYYY Author(s) Changes (Describe the changes made) */ /* 10 05 2006 Ittiam Draft */ /* */ /*****************************************************************************/ WORD32 osal_register_callbacks(IN void *osal_handle, IN osal_cb_funcs_t *cb_funcs) { osal_t *handle = (osal_t *)osal_handle; /* Validate the input */ if(0 == handle || 0 == cb_funcs) return OSAL_ERROR; if(0 == cb_funcs->osal_alloc || 0 == cb_funcs->osal_free) return OSAL_ERROR; /* Initialize call back parameters */ handle->mmr_handle = cb_funcs->mmr_handle; handle->alloc = cb_funcs->osal_alloc; handle->free = cb_funcs->osal_free; return OSAL_SUCCESS; } /*****************************************************************************/ /* */ /* Function Name : osal_close */ /* */ /* Description : This function closes the OSAL instance */ /* */ /* Inputs : OSAL handle */ /* */ /* Globals : None */ /* */ /* Processing : Frees the memory allocated for the OSAL handle */ /* */ /* Outputs : Status of OSAL instance close */ /* */ /* Returns : On SUCCESS - 0 */ /* On FALIURE - -1 */ /* */ /* Issues : None */ /* */ /* Revision History: */ /* */ /* DD MM YYYY Author(s) Changes (Describe the changes made) */ /* 19 04 2006 Ittiam Draft */ /* */ /*****************************************************************************/ WORD32 osal_close(IN void *osal_handle) { /* Validate input */ if(0 == osal_handle) return OSAL_ERROR; return OSAL_SUCCESS; } /*****************************************************************************/ /* */ /* Function Name : osal_get_version */ /* */ /* Description : This function gets the version of OSAL library. */ /* */ /* Inputs : None */ /* Globals : None */ /* */ /* Processing : Returns a NULL terminated string with has the version of */ /* library being used. */ /* */ /* Outputs : Version of OSAL library. */ /* */ /* Returns : Pointer to a NULL terminated string */ /* */ /* Issues : None */ /* */ /* Revision History: */ /* */ /* DD MM YYYY Author(s) Changes (Describe the changes made) */ /* 07 03 2006 Ittiam Draft */ /* */ /*****************************************************************************/ WORD8 *osal_get_version() { return ((WORD8 *)OSAL_VERSION); }