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