]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/PeiMemoryLib/MemLibInternals.h
Synchronize interface function comment from declaration in library class header file...
[mirror_edk2.git] / MdePkg / Library / PeiMemoryLib / 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 The following BaseMemoryLib instances contain the same copy of this file:
14
15 BaseMemoryLib
16 BaseMemoryLibMmx
17 BaseMemoryLibSse2
18 BaseMemoryLibRepStr
19 BaseMemoryLibOptDxe
20 BaseMemoryLibOptPei
21 PeiMemoryLib
22 DxeMemoryLib
23
24 **/
25
26 #ifndef __MEM_LIB_INTERNALS__
27 #define __MEM_LIB_INTERNALS__
28
29
30 #include <PiPei.h>
31
32 #include <Library/BaseMemoryLib.h>
33 #include <Library/PeiServicesTablePointerLib.h>
34 #include <Library/DebugLib.h>
35 #include <Library/BaseLib.h>
36
37 /**
38 Copies a source buffer to a destination buffer, and returns the destination buffer.
39
40 This function wraps the gPS->CopyMem ().
41
42 @param DestinationBuffer Pointer to the destination buffer of the memory copy.
43 @param SourceBuffer Pointer to the source buffer of the memory copy.
44 @param Length Number of bytes to copy from SourceBuffer to DestinationBuffer.
45
46 @return DestinationBuffer.
47
48 **/
49 VOID *
50 EFIAPI
51 InternalMemCopyMem (
52 OUT VOID *Destination,
53 IN CONST VOID *Source,
54 IN UINTN Length
55 );
56
57 /**
58 Fills a target buffer with a byte value, and returns the target buffer.
59
60 This function wraps the gPS->SetMem ().
61
62 @param Buffer Memory to set.
63 @param Size Number of bytes to set.
64 @param Value Value of the set operation.
65
66 @return Buffer.
67
68 **/
69 VOID *
70 EFIAPI
71 InternalMemSetMem (
72 OUT VOID *Buffer,
73 IN UINTN Size,
74 IN UINT8 Value
75 );
76
77 /**
78 Fills a target buffer with a 16-bit value, and returns the target buffer.
79
80 @param Buffer Pointer to the target buffer to fill.
81 @param Length Number of bytes in Buffer to fill.
82 @param Value Value with which to fill Length bytes of Buffer.
83
84 @return Buffer
85
86 **/
87 VOID *
88 EFIAPI
89 InternalMemSetMem16 (
90 OUT VOID *Buffer,
91 IN UINTN Length,
92 IN UINT16 Value
93 );
94
95 /**
96 Fills a target buffer with a 32-bit value, and returns the target buffer.
97
98 @param Buffer Pointer to the target buffer to fill.
99 @param Length Number of bytes in Buffer to fill.
100 @param Value Value with which to fill Length bytes of Buffer.
101
102 @return Buffer
103
104 **/
105 VOID *
106 EFIAPI
107 InternalMemSetMem32 (
108 OUT VOID *Buffer,
109 IN UINTN Length,
110 IN UINT32 Value
111 );
112
113 /**
114 Fills a target buffer with a 64-bit value, and returns the target buffer.
115
116 @param Buffer Pointer to the target buffer to fill.
117 @param Length Number of bytes in Buffer to fill.
118 @param Value Value with which to fill Length bytes of Buffer.
119
120 @return Buffer
121
122 **/
123 VOID *
124 EFIAPI
125 InternalMemSetMem64 (
126 OUT VOID *Buffer,
127 IN UINTN Length,
128 IN UINT64 Value
129 );
130
131 /**
132 Set Buffer to 0 for Size bytes.
133
134 @param Buffer Memory to set.
135 @param Length Number of bytes to set
136
137 @return Buffer
138
139 **/
140 VOID *
141 EFIAPI
142 InternalMemZeroMem (
143 OUT VOID *Buffer,
144 IN UINTN Length
145 );
146
147 /**
148 Compares two memory buffers of a given length.
149
150 @param DestinationBuffer First memory buffer
151 @param SourceBuffer Second memory buffer
152 @param Length Length of DestinationBuffer and SourceBuffer memory
153 regions to compare. Must be non-zero.
154
155 @return 0 All Length bytes of the two buffers are identical.
156 @retval Non-zero The first mismatched byte in SourceBuffer subtracted from the first
157 mismatched byte in DestinationBuffer.
158
159 **/
160 INTN
161 EFIAPI
162 InternalMemCompareMem (
163 IN CONST VOID *DestinationBuffer,
164 IN CONST VOID *SourceBuffer,
165 IN UINTN Length
166 );
167
168 /**
169 Scans a target buffer for an 8-bit value, and returns a pointer to the
170 matching 8-bit value in the target buffer.
171
172 @param Buffer Pointer to the target buffer to scan.
173 @param Length Number of bytes in Buffer to scan. Must be non-zero.
174 @param Value Value to search for in the target buffer.
175
176 @return Pointer to the first occurrence or NULL if not found.
177
178 **/
179 CONST VOID *
180 EFIAPI
181 InternalMemScanMem8 (
182 IN CONST VOID *Buffer,
183 IN UINTN Length,
184 IN UINT8 Value
185 );
186
187 /**
188 Scans a target buffer for a 16-bit value, and returns a pointer to the
189 matching 16-bit value in the target buffer.
190
191 @param Buffer Pointer to the target buffer to scan.
192 @param Length Number of bytes in Buffer to scan. Must be non-zero.
193 @param Value Value to search for in the target buffer.
194
195 @return Pointer to the first occurrence or NULL if not found.
196
197 **/
198 CONST VOID *
199 EFIAPI
200 InternalMemScanMem16 (
201 IN CONST VOID *Buffer,
202 IN UINTN Length,
203 IN UINT16 Value
204 );
205
206 /**
207 Scans a target buffer for a 32-bit value, and returns a pointer to the
208 matching 32-bit value in the target buffer.
209
210 @param Buffer Pointer to the target buffer to scan.
211 @param Length Number of bytes in Buffer to scan. Must be non-zero.
212 @param Value Value to search for in the target buffer.
213
214 @return Pointer to the first occurrence or NULL if not found.
215
216 **/
217 CONST VOID *
218 EFIAPI
219 InternalMemScanMem32 (
220 IN CONST VOID *Buffer,
221 IN UINTN Length,
222 IN UINT32 Value
223 );
224
225 /**
226 Scans a target buffer for a 64-bit value, and returns a pointer to the
227 matching 64-bit value in the target buffer.
228
229 @param Buffer Pointer to the target buffer to scan.
230 @param Length Number of bytes in Buffer to scan. Must be non-zero.
231 @param Value Value to search for in the target buffer.
232
233 @return Pointer to the first occurrence or NULL if not found.
234
235 **/
236 CONST VOID *
237 EFIAPI
238 InternalMemScanMem64 (
239 IN CONST VOID *Buffer,
240 IN UINTN Length,
241 IN UINT64 Value
242 );
243
244 #endif