1 /****************************************************************************** 2 * 3 * Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore 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 /** 19 ******************************************************************************* 20 * @file 21 * ihevc_mem_fns.c 22 * 23 * @brief 24 * Functions used for memory operations 25 * 26 * @author 27 * Ittiam 28 * 29 * @par List of Functions: 30 * 31 * @remarks 32 * None 33 * 34 ******************************************************************************* 35 */ 36 37 /*****************************************************************************/ 38 /* File Includes */ 39 /*****************************************************************************/ 40 #include <stdio.h> 41 #include <stddef.h> 42 #include <stdlib.h> 43 #include <string.h> 44 #include <assert.h> 45 46 #include "ihevc_typedefs.h" 47 #include "ihevc_func_selector.h" 48 #include "ihevc_mem_fns.h" 49 50 /** 51 ******************************************************************************* 52 * 53 * @brief 54 * memcpy of a 8,16 or 32 bytes 55 * 56 * @par Description: 57 * Does memcpy of 8bit data from source to destination for 8,16 or 32 number of bytes 58 * 59 * @param[in] pu1_dst 60 * UWORD8 pointer to the destination 61 * 62 * @param[in] pu1_src 63 * UWORD8 pointer to the source 64 * 65 * @param[in] num_bytes 66 * number of bytes to copy 67 * @returns 68 * 69 * @remarks 70 * None 71 * 72 ******************************************************************************* 73 */ 74 75 void ihevc_memcpy(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes) 76 { 77 memcpy(pu1_dst, pu1_src, num_bytes); 78 } 79 80 81 void ihevc_memcpy_mul_8(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes) 82 { 83 memcpy(pu1_dst, pu1_src, num_bytes); 84 } 85 86 /** 87 ******************************************************************************* 88 * 89 * @brief 90 * memset of a 8,16 or 32 bytes 91 * 92 * @par Description: 93 * Does memset of 8bit data for 8,16 or 32 number of bytes 94 * 95 * @param[in] pu1_dst 96 * UWORD8 pointer to the destination 97 * 98 * @param[in] value 99 * UWORD8 value used for memset 100 * 101 * @param[in] num_bytes 102 * number of bytes to set 103 * @returns 104 * 105 * @remarks 106 * None 107 * 108 ******************************************************************************* 109 */ 110 111 void ihevc_memset(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes) 112 { 113 memset(pu1_dst, value, num_bytes); 114 } 115 116 117 void ihevc_memset_mul_8(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes) 118 { 119 memset(pu1_dst, value, num_bytes); 120 } 121 122 /** 123 ******************************************************************************* 124 * 125 * @brief 126 * memset of 16bit data of a 8,16 or 32 bytes 127 * 128 * @par Description: 129 * Does memset of 16bit data for 8,16 or 32 number of bytes 130 * 131 * @param[in] pu2_dst 132 * UWORD8 pointer to the destination 133 * 134 * @param[in] value 135 * UWORD16 value used for memset 136 * 137 * @param[in] num_words 138 * number of words to set 139 * @returns 140 * 141 * @remarks 142 * None 143 * 144 ******************************************************************************* 145 */ 146 147 void ihevc_memset_16bit(UWORD16 *pu2_dst, UWORD16 value, UWORD32 num_words) 148 { 149 UWORD32 i; 150 for(i = 0; i < num_words; i++) 151 { 152 *pu2_dst++ = value; 153 } 154 } 155 156 157 158 void ihevc_memset_16bit_mul_8(UWORD16 *pu2_dst, UWORD16 value, UWORD32 num_words) 159 { 160 UWORD32 i; 161 for(i = 0; i < num_words; i++) 162 { 163 *pu2_dst++ = value; 164 } 165 } 166 167