• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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