1*c83a76b0SSuyog Pawar /****************************************************************************** 2*c83a76b0SSuyog Pawar * 3*c83a76b0SSuyog Pawar * Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore 4*c83a76b0SSuyog Pawar * 5*c83a76b0SSuyog Pawar * Licensed under the Apache License, Version 2.0 (the "License"); 6*c83a76b0SSuyog Pawar * you may not use this file except in compliance with the License. 7*c83a76b0SSuyog Pawar * You may obtain a copy of the License at: 8*c83a76b0SSuyog Pawar * 9*c83a76b0SSuyog Pawar * http://www.apache.org/licenses/LICENSE-2.0 10*c83a76b0SSuyog Pawar * 11*c83a76b0SSuyog Pawar * Unless required by applicable law or agreed to in writing, software 12*c83a76b0SSuyog Pawar * distributed under the License is distributed on an "AS IS" BASIS, 13*c83a76b0SSuyog Pawar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*c83a76b0SSuyog Pawar * See the License for the specific language governing permissions and 15*c83a76b0SSuyog Pawar * limitations under the License. 16*c83a76b0SSuyog Pawar * 17*c83a76b0SSuyog Pawar ******************************************************************************/ 18*c83a76b0SSuyog Pawar /** 19*c83a76b0SSuyog Pawar ******************************************************************************* 20*c83a76b0SSuyog Pawar * @file 21*c83a76b0SSuyog Pawar * ihevc_mem_fns.h 22*c83a76b0SSuyog Pawar * 23*c83a76b0SSuyog Pawar * @brief 24*c83a76b0SSuyog Pawar * Function declarations used for memory functions 25*c83a76b0SSuyog Pawar * 26*c83a76b0SSuyog Pawar * @author 27*c83a76b0SSuyog Pawar * Naveen SR 28*c83a76b0SSuyog Pawar * 29*c83a76b0SSuyog Pawar * @remarks 30*c83a76b0SSuyog Pawar * None 31*c83a76b0SSuyog Pawar * 32*c83a76b0SSuyog Pawar ******************************************************************************* 33*c83a76b0SSuyog Pawar */ 34*c83a76b0SSuyog Pawar #ifndef _MEM_FNS_H_ 35*c83a76b0SSuyog Pawar #define _MEM_FNS_H_ 36*c83a76b0SSuyog Pawar 37*c83a76b0SSuyog Pawar typedef void ihevc_memcpy_ft(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes); 38*c83a76b0SSuyog Pawar 39*c83a76b0SSuyog Pawar typedef void ihevc_memcpy_mul_8_ft(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes); 40*c83a76b0SSuyog Pawar /** 41*c83a76b0SSuyog Pawar ******************************************************************************* 42*c83a76b0SSuyog Pawar * 43*c83a76b0SSuyog Pawar * @brief 44*c83a76b0SSuyog Pawar * memset of a 8,16 or 32 bytes 45*c83a76b0SSuyog Pawar * 46*c83a76b0SSuyog Pawar * @par Description: 47*c83a76b0SSuyog Pawar * Does memset of 8bit data for 8,16 or 32 number of bytes 48*c83a76b0SSuyog Pawar * 49*c83a76b0SSuyog Pawar * @param[in] pu1_dst 50*c83a76b0SSuyog Pawar * UWORD8 pointer to the destination 51*c83a76b0SSuyog Pawar * 52*c83a76b0SSuyog Pawar * @param[in] value 53*c83a76b0SSuyog Pawar * UWORD8 value used for memset 54*c83a76b0SSuyog Pawar * 55*c83a76b0SSuyog Pawar * @param[in] num_bytes 56*c83a76b0SSuyog Pawar * number of bytes to set 57*c83a76b0SSuyog Pawar * @returns 58*c83a76b0SSuyog Pawar * 59*c83a76b0SSuyog Pawar * @remarks 60*c83a76b0SSuyog Pawar * None 61*c83a76b0SSuyog Pawar * 62*c83a76b0SSuyog Pawar ******************************************************************************* 63*c83a76b0SSuyog Pawar */ 64*c83a76b0SSuyog Pawar typedef void ihevc_memset_ft(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes); 65*c83a76b0SSuyog Pawar 66*c83a76b0SSuyog Pawar typedef void ihevc_memset_mul_8_ft(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes); 67*c83a76b0SSuyog Pawar 68*c83a76b0SSuyog Pawar /** 69*c83a76b0SSuyog Pawar ******************************************************************************* 70*c83a76b0SSuyog Pawar * 71*c83a76b0SSuyog Pawar * @brief 72*c83a76b0SSuyog Pawar * memset of 16bit data of a 8,16 or 32 bytes 73*c83a76b0SSuyog Pawar * 74*c83a76b0SSuyog Pawar * @par Description: 75*c83a76b0SSuyog Pawar * Does memset of 16bit data for 8,16 or 32 number of bytes 76*c83a76b0SSuyog Pawar * 77*c83a76b0SSuyog Pawar * @param[in] pu2_dst 78*c83a76b0SSuyog Pawar * UWORD8 pointer to the destination 79*c83a76b0SSuyog Pawar * 80*c83a76b0SSuyog Pawar * @param[in] value 81*c83a76b0SSuyog Pawar * UWORD16 value used for memset 82*c83a76b0SSuyog Pawar * 83*c83a76b0SSuyog Pawar * @param[in] num_words 84*c83a76b0SSuyog Pawar * number of words to set 85*c83a76b0SSuyog Pawar * @returns 86*c83a76b0SSuyog Pawar * 87*c83a76b0SSuyog Pawar * @remarks 88*c83a76b0SSuyog Pawar * None 89*c83a76b0SSuyog Pawar * 90*c83a76b0SSuyog Pawar ******************************************************************************* 91*c83a76b0SSuyog Pawar */ 92*c83a76b0SSuyog Pawar typedef void ihevc_memset_16bit_ft(UWORD16 *pu2_dst, UWORD16 value, UWORD32 num_words); 93*c83a76b0SSuyog Pawar 94*c83a76b0SSuyog Pawar typedef void ihevc_memset_16bit_mul_8_ft(UWORD16 *pu2_dst, UWORD16 value, UWORD32 num_words); 95*c83a76b0SSuyog Pawar 96*c83a76b0SSuyog Pawar /* C function declarations */ 97*c83a76b0SSuyog Pawar ihevc_memcpy_ft ihevc_memcpy; 98*c83a76b0SSuyog Pawar ihevc_memcpy_mul_8_ft ihevc_memcpy_mul_8; 99*c83a76b0SSuyog Pawar ihevc_memset_ft ihevc_memset; 100*c83a76b0SSuyog Pawar ihevc_memset_mul_8_ft ihevc_memset_mul_8; 101*c83a76b0SSuyog Pawar ihevc_memset_16bit_ft ihevc_memset_16bit; 102*c83a76b0SSuyog Pawar ihevc_memset_16bit_mul_8_ft ihevc_memset_16bit_mul_8; 103*c83a76b0SSuyog Pawar 104*c83a76b0SSuyog Pawar /* A9 Q function declarations */ 105*c83a76b0SSuyog Pawar ihevc_memcpy_ft ihevc_memcpy_a9q; 106*c83a76b0SSuyog Pawar ihevc_memcpy_mul_8_ft ihevc_memcpy_mul_8_a9q; 107*c83a76b0SSuyog Pawar ihevc_memset_ft ihevc_memset_a9q; 108*c83a76b0SSuyog Pawar ihevc_memset_mul_8_ft ihevc_memset_mul_8_a9q; 109*c83a76b0SSuyog Pawar ihevc_memset_16bit_ft ihevc_memset_16bit_a9q; 110*c83a76b0SSuyog Pawar ihevc_memset_16bit_mul_8_ft ihevc_memset_16bit_mul_8_a9q; 111*c83a76b0SSuyog Pawar 112*c83a76b0SSuyog Pawar /* A9 A function declarations */ 113*c83a76b0SSuyog Pawar ihevc_memcpy_ft ihevc_memcpy_a9a; 114*c83a76b0SSuyog Pawar ihevc_memcpy_mul_8_ft ihevc_memcpy_mul_8_a9a; 115*c83a76b0SSuyog Pawar ihevc_memset_ft ihevc_memset_a9a; 116*c83a76b0SSuyog Pawar ihevc_memset_mul_8_ft ihevc_memset_mul_8_a9a; 117*c83a76b0SSuyog Pawar ihevc_memset_16bit_ft ihevc_memset_16bit_a9a; 118*c83a76b0SSuyog Pawar ihevc_memset_16bit_mul_8_ft ihevc_memset_16bit_mul_8_a9a; 119*c83a76b0SSuyog Pawar 120*c83a76b0SSuyog Pawar /* SSSE3 function declarations */ 121*c83a76b0SSuyog Pawar ihevc_memcpy_mul_8_ft ihevc_memcpy_mul_8_ssse3; 122*c83a76b0SSuyog Pawar ihevc_memset_mul_8_ft ihevc_memset_mul_8_ssse3; 123*c83a76b0SSuyog Pawar ihevc_memset_16bit_mul_8_ft ihevc_memset_16bit_mul_8_ssse3; 124*c83a76b0SSuyog Pawar 125*c83a76b0SSuyog Pawar /* armv8 function declarations */ 126*c83a76b0SSuyog Pawar ihevc_memcpy_ft ihevc_memcpy_av8; 127*c83a76b0SSuyog Pawar ihevc_memcpy_mul_8_ft ihevc_memcpy_mul_8_av8; 128*c83a76b0SSuyog Pawar ihevc_memset_ft ihevc_memset_av8; 129*c83a76b0SSuyog Pawar ihevc_memset_mul_8_ft ihevc_memset_mul_8_av8; 130*c83a76b0SSuyog Pawar ihevc_memset_16bit_ft ihevc_memset_16bit_av8; 131*c83a76b0SSuyog Pawar ihevc_memset_16bit_mul_8_ft ihevc_memset_16bit_mul_8_av8; 132*c83a76b0SSuyog Pawar #endif //_MEM_FNS_H_ 133