]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/BaseMemoryLibMmx/MemLibInternals.h
Update copyright for files modified in this year
[mirror_edk2.git] / MdePkg / Library / BaseMemoryLibMmx / MemLibInternals.h
1 /** @file
2 Declaration of internal functions for Base Memory Library.
3
4 The following BaseMemoryLib instances contain the same copy of this file:
5 BaseMemoryLib
6 BaseMemoryLibMmx
7 BaseMemoryLibSse2
8 BaseMemoryLibRepStr
9 BaseMemoryLibOptDxe
10 BaseMemoryLibOptPei
11 PeiMemoryLib
12 DxeMemoryLib
13
14 Copyright (c) 2006 - 2008, Intel Corporation<BR>
15 All rights reserved. This program and the accompanying materials
16 are licensed and made available under the terms and conditions of the BSD License
17 which accompanies this distribution. The full text of the license may be found at
18 http://opensource.org/licenses/bsd-license.php
19
20 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
21 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
22
23 **/
24
25 #ifndef __MEM_LIB_INTERNALS__
26 #define __MEM_LIB_INTERNALS__
27
28 #include <Base.h>
29 #include <Library/BaseMemoryLib.h>
30 #include <Library/BaseLib.h>
31 #include <Library/DebugLib.h>
32
33 /**
34 Copy Length bytes from Source to Destination.
35
36 @param DestinationBuffer Target of copy
37 @param SourceBuffer Place to copy from
38 @param Length Number of bytes to copy
39
40 @return Destination
41
42 **/
43 VOID *
44 EFIAPI
45 InternalMemCopyMem (
46 OUT VOID *DestinationBuffer,
47 IN CONST VOID *SourceBuffer,
48 IN UINTN Length
49 );
50
51 /**
52 Set Buffer to Value for Size bytes.
53
54 @param Buffer Memory to set.
55 @param Length Number of bytes to set
56 @param Value Value of the set operation.
57
58 @return Buffer
59
60 **/
61 VOID *
62 EFIAPI
63 InternalMemSetMem (
64 OUT VOID *Buffer,
65 IN UINTN Length,
66 IN UINT8 Value
67 );
68
69 /**
70 Fills a target buffer with a 16-bit value, and returns the target buffer.
71
72 @param Buffer Pointer to the target buffer to fill.
73 @param Length Number of bytes in Buffer to fill.
74 @param Value Value with which to fill Length bytes of Buffer.
75
76 @return Buffer
77
78 **/
79 VOID *
80 EFIAPI
81 InternalMemSetMem16 (
82 OUT VOID *Buffer,
83 IN UINTN Length,
84 IN UINT16 Value
85 );
86
87 /**
88 Fills a target buffer with a 32-bit value, and returns the target buffer.
89
90 @param Buffer Pointer to the target buffer to fill.
91 @param Length Number of bytes in Buffer to fill.
92 @param Value Value with which to fill Length bytes of Buffer.
93
94 @return Buffer
95
96 **/
97 VOID *
98 EFIAPI
99 InternalMemSetMem32 (
100 OUT VOID *Buffer,
101 IN UINTN Length,
102 IN UINT32 Value
103 );
104
105 /**
106 Fills a target buffer with a 64-bit value, and returns the target buffer.
107
108 @param Buffer Pointer to the target buffer to fill.
109 @param Length Number of bytes in Buffer to fill.
110 @param Value Value with which to fill Length bytes of Buffer.
111
112 @return Buffer
113
114 **/
115 VOID *
116 EFIAPI
117 InternalMemSetMem64 (
118 OUT VOID *Buffer,
119 IN UINTN Length,
120 IN UINT64 Value
121 );
122
123 /**
124 Set Buffer to 0 for Size bytes.
125
126 @param Buffer Memory to set.
127 @param Length Number of bytes to set
128
129 @return Buffer
130
131 **/
132 VOID *
133 EFIAPI
134 InternalMemZeroMem (
135 OUT VOID *Buffer,
136 IN UINTN Length
137 );
138
139 /**
140 Compares two memory buffers of a given length.
141
142 @param DestinationBuffer First memory buffer
143 @param SourceBuffer Second memory buffer
144 @param Length Length of DestinationBuffer and SourceBuffer memory
145 regions to compare. Must be non-zero.
146
147 @return 0 All Length bytes of the two buffers are identical.
148 @retval Non-zero The first mismatched byte in SourceBuffer subtracted from the first
149 mismatched byte in DestinationBuffer.
150
151 **/
152 INTN
153 EFIAPI
154 InternalMemCompareMem (
155 IN CONST VOID *DestinationBuffer,
156 IN CONST VOID *SourceBuffer,
157 IN UINTN Length
158 );
159
160 /**
161 Scans a target buffer for an 8-bit value, and returns a pointer to the
162 matching 8-bit value in the target buffer.
163
164 @param Buffer Pointer to the target buffer to scan.
165 @param Length Number of bytes in Buffer to scan. Must be non-zero.
166 @param Value Value to search for in the target buffer.
167
168 @return Pointer to the first occurrence or NULL if not found.
169
170 **/
171 CONST VOID *
172 EFIAPI
173 InternalMemScanMem8 (
174 IN CONST VOID *Buffer,
175 IN UINTN Length,
176 IN UINT8 Value
177 );
178
179 /**
180 Scans a target buffer for a 16-bit value, and returns a pointer to the
181 matching 16-bit value in the target buffer.
182
183 @param Buffer Pointer to the target buffer to scan.
184 @param Length Number of bytes in Buffer to scan. Must be non-zero.
185 @param Value Value to search for in the target buffer.
186
187 @return Pointer to the first occurrence or NULL if not found.
188
189 **/
190 CONST VOID *
191 EFIAPI
192 InternalMemScanMem16 (
193 IN CONST VOID *Buffer,
194 IN UINTN Length,
195 IN UINT16 Value
196 );
197
198 /**
199 Scans a target buffer for a 32-bit value, and returns a pointer to the
200 matching 32-bit value in the target buffer.
201
202 @param Buffer Pointer to the target buffer to scan.
203 @param Length Number of bytes in Buffer to scan. Must be non-zero.
204 @param Value Value to search for in the target buffer.
205
206 @return Pointer to the first occurrence or NULL if not found.
207
208 **/
209 CONST VOID *
210 EFIAPI
211 InternalMemScanMem32 (
212 IN CONST VOID *Buffer,
213 IN UINTN Length,
214 IN UINT32 Value
215 );
216
217 /**
218 Scans a target buffer for a 64-bit value, and returns a pointer to the
219 matching 64-bit value in the target buffer.
220
221 @param Buffer Pointer to the target buffer to scan.
222 @param Length Number of bytes in Buffer to scan. Must be non-zero.
223 @param Value Value to search for in the target buffer.
224
225 @return Pointer to the first occurrence or NULL if not found.
226
227 **/
228 CONST VOID *
229 EFIAPI
230 InternalMemScanMem64 (
231 IN CONST VOID *Buffer,
232 IN UINTN Length,
233 IN UINT64 Value
234 );
235
236 #endif