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