Home | History | Annotate | Download | only in mips
      1 /******************************************************************************
      2  *
      3  * Copyright (C) 2015 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  * @file
     23  *  ih264e_platform_macros.h
     24  *
     25  * @brief
     26  *  Contains platform specific routines used for codec context intialization
     27  *
     28  * @author
     29  *  ittiam
     30  *
     31  * @remarks
     32  *  none
     33  *
     34  *******************************************************************************
     35  */
     36 
     37 
     38 #ifndef IH264E_PLATFORM_MACROS_H_
     39 #define IH264E_PLATFORM_MACROS_H_
     40 
     41 #define DATA_SYNC()
     42 /*****************************************************************************/
     43 /* Extern Function Declarations                                              */
     44 /*****************************************************************************/
     45 
     46 /**
     47 *******************************************************************************
     48 *
     49 * @brief Initialize the intra/inter/transform/deblk function pointers of
     50 * codec context
     51 *
     52 * @par Description: the current routine initializes the function pointers of
     53 * codec context basing on the architecture in use
     54 *
     55 * @param[in] ps_codec
     56 *  Codec context pointer
     57 *
     58 * @returns  none
     59 *
     60 * @remarks none
     61 *
     62 *******************************************************************************
     63 */
     64 void ih264e_init_function_ptr_generic(codec_t *ps_codec);
     65 
     66 /**
     67 *******************************************************************************
     68 *
     69 * @brief Initialize the intra/inter/transform/deblk function pointers of
     70 * codec context
     71 *
     72 * @par Description: the current routine initializes the function pointers of
     73 * codec context basing on the architecture in use
     74 *
     75 * @param[in] ps_codec
     76 *  Codec context pointer
     77 *
     78 * @returns  none
     79 *
     80 * @remarks none
     81 *
     82 *******************************************************************************
     83 */
     84 void ih264e_init_function_ptr(void *pv_codec);
     85 
     86 /**
     87 *******************************************************************************
     88 *
     89 * @brief Determine the architecture of the encoder executing environment
     90 *
     91 * @par Description: This routine returns the architecture of the enviro-
     92 * ment in which the current encoder is being tested
     93 *
     94 * @param[in] void
     95 *
     96 * @returns  IV_ARCH_T
     97 *  architecture
     98 *
     99 * @remarks none
    100 *
    101 *******************************************************************************
    102 */
    103 IV_ARCH_T ih264e_default_arch(void);
    104 
    105 /**
    106 *******************************************************************************
    107 *
    108 * @brief Data Memory Barrier, Data Synchronization Barrier
    109 *
    110 *
    111 * @par Description: These functions do nothing on x86 side. But on arm platforms,
    112 *
    113 * Data Memory Barrier acts as a memory barrier. It ensures that all explicit
    114 * memory accesses that appear in program order before the DMB instruction are
    115 * observed before any explicit memory accesses that appear in program order
    116 * after the DMB instruction. It does not affect the ordering of any other
    117 * instructions executing on the processor
    118 *
    119 * Data Synchronization Barrier acts as a special kind of memory barrier. No
    120 * instruction in program order after this instruction executes until this instruction
    121 * completes. This instruction completes when:
    122 *       1. All explicit memory accesses before this instruction complete.
    123 *       2. All Cache, Branch predictor and TLB maintenance operations before
    124 *       this instruction complete.
    125 *
    126 * @param[in] void
    127 *
    128 * @returns  void
    129 *
    130 * @remarks none
    131 *
    132 *******************************************************************************
    133 */
    134 
    135 #endif /* IH264E_PLATFORM_MACROS_H_ */
    136