Home | History | Annotate | Download | only in common
      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