VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Library/PeiMemoryLib/MemLibInternals.h

Last change on this file was 99404, checked in by vboxsync, 2 years ago

Devices/EFI/FirmwareNew: Update to edk2-stable202302 and make it build, bugref:4643

  • Property svn:eol-style set to native
File size: 6.0 KB
Line 
1/** @file
2 Declaration of internal functions for Base Memory Library.
3
4 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7**/
8
9#ifndef __MEM_LIB_INTERNALS__
10#define __MEM_LIB_INTERNALS__
11
12#include <PiPei.h>
13
14#include <Library/BaseMemoryLib.h>
15#include <Library/PeiServicesTablePointerLib.h>
16#include <Library/DebugLib.h>
17#include <Library/BaseLib.h>
18
19/**
20 Copies a source buffer to a destination buffer, and returns the destination buffer.
21
22 This function wraps the (*PeiServices)->CopyMem ().
23
24 @param DestinationBuffer The pointer to the destination buffer of the memory copy.
25 @param SourceBuffer The pointer to the source buffer of the memory copy.
26 @param Length The number of bytes to copy from SourceBuffer to DestinationBuffer.
27
28 @return DestinationBuffer.
29
30**/
31VOID *
32EFIAPI
33InternalMemCopyMem (
34 OUT VOID *Destination,
35 IN CONST VOID *Source,
36 IN UINTN Length
37 );
38
39/**
40 Fills a target buffer with a byte value, and returns the target buffer.
41
42 This function wraps the (*PeiServices)->SetMem ().
43
44 @param Buffer The memory to set.
45 @param Size The number of bytes to set.
46 @param Value Value of the set operation.
47
48 @return Buffer.
49
50**/
51VOID *
52EFIAPI
53InternalMemSetMem (
54 OUT VOID *Buffer,
55 IN UINTN Size,
56 IN UINT8 Value
57 );
58
59/**
60 Fills a target buffer with a 16-bit value, and returns the target buffer.
61
62 @param Buffer The pointer to the target buffer to fill.
63 @param Length The count of 16-bit value to fill.
64 @param Value The value with which to fill Length bytes of Buffer.
65
66 @return Buffer
67
68**/
69VOID *
70EFIAPI
71InternalMemSetMem16 (
72 OUT VOID *Buffer,
73 IN UINTN Length,
74 IN UINT16 Value
75 );
76
77/**
78 Fills a target buffer with a 32-bit value, and returns the target buffer.
79
80 @param Buffer The pointer to the target buffer to fill.
81 @param Length The count of 32-bit value to fill.
82 @param Value The value with which to fill Length bytes of Buffer.
83
84 @return Buffer
85
86**/
87VOID *
88EFIAPI
89InternalMemSetMem32 (
90 OUT VOID *Buffer,
91 IN UINTN Length,
92 IN UINT32 Value
93 );
94
95/**
96 Fills a target buffer with a 64-bit value, and returns the target buffer.
97
98 @param Buffer The pointer to the target buffer to fill.
99 @param Length The count of 64-bit value to fill.
100 @param Value The value with which to fill Length bytes of Buffer.
101
102 @return Buffer
103
104**/
105VOID *
106EFIAPI
107InternalMemSetMem64 (
108 OUT VOID *Buffer,
109 IN UINTN Length,
110 IN UINT64 Value
111 );
112
113/**
114 Set Buffer to 0 for Size bytes.
115
116 @param Buffer The memory to set.
117 @param Length The number of bytes to set
118
119 @return Buffer
120
121**/
122VOID *
123EFIAPI
124InternalMemZeroMem (
125 OUT VOID *Buffer,
126 IN UINTN Length
127 );
128
129/**
130 Compares two memory buffers of a given length.
131
132 @param DestinationBuffer The first memory buffer
133 @param SourceBuffer The second memory buffer
134 @param Length The length of DestinationBuffer and SourceBuffer memory
135 regions to compare. Must be non-zero.
136
137 @return 0 All Length bytes of the two buffers are identical.
138 @retval Non-zero The first mismatched byte in SourceBuffer subtracted from the first
139 mismatched byte in DestinationBuffer.
140
141**/
142INTN
143EFIAPI
144InternalMemCompareMem (
145 IN CONST VOID *DestinationBuffer,
146 IN CONST VOID *SourceBuffer,
147 IN UINTN Length
148 );
149
150/**
151 Scans a target buffer for an 8-bit value, and returns a pointer to the
152 matching 8-bit value in the target buffer.
153
154 @param Buffer The pointer to the target buffer to scan.
155 @param Length The count of 8-bit value to scan. Must be non-zero.
156 @param Value The value to search for in the target buffer.
157
158 @return The pointer to the first occurrence, or NULL if not found.
159
160**/
161CONST VOID *
162EFIAPI
163InternalMemScanMem8 (
164 IN CONST VOID *Buffer,
165 IN UINTN Length,
166 IN UINT8 Value
167 );
168
169/**
170 Scans a target buffer for a 16-bit value, and returns a pointer to the
171 matching 16-bit value in the target buffer.
172
173 @param Buffer The pointer to the target buffer to scan.
174 @param Length The count of 16-bit value to scan. Must be non-zero.
175 @param Value The value to search for in the target buffer.
176
177 @return The pointer to the first occurrence, or NULL if not found.
178
179**/
180CONST VOID *
181EFIAPI
182InternalMemScanMem16 (
183 IN CONST VOID *Buffer,
184 IN UINTN Length,
185 IN UINT16 Value
186 );
187
188/**
189 Scans a target buffer for a 32-bit value, and returns a pointer to the
190 matching 32-bit value in the target buffer.
191
192 @param Buffer The pointer to the target buffer to scan.
193 @param Length The count of 32-bit value to scan. Must be non-zero.
194 @param Value The value to search for in the target buffer.
195
196 @return The pointer to the first occurrence, or NULL if not found.
197
198**/
199CONST VOID *
200EFIAPI
201InternalMemScanMem32 (
202 IN CONST VOID *Buffer,
203 IN UINTN Length,
204 IN UINT32 Value
205 );
206
207/**
208 Scans a target buffer for a 64-bit value, and returns a pointer to the
209 matching 64-bit value in the target buffer.
210
211 @param Buffer The pointer to the target buffer to scan.
212 @param Length The count of 64-bit value to scan. Must be non-zero.
213 @param Value The value to search for in the target buffer.
214
215 @return The pointer to the first occurrence, or NULL if not found.
216
217**/
218CONST VOID *
219EFIAPI
220InternalMemScanMem64 (
221 IN CONST VOID *Buffer,
222 IN UINTN Length,
223 IN UINT64 Value
224 );
225
226/**
227 Checks whether the contents of a buffer are all zeros.
228
229 @param Buffer The pointer to the buffer to be checked.
230 @param Length The size of the buffer (in bytes) to be checked.
231
232 @retval TRUE Contents of the buffer are all zeros.
233 @retval FALSE Contents of the buffer are not all zeros.
234
235**/
236BOOLEAN
237EFIAPI
238InternalMemIsZeroBuffer (
239 IN CONST VOID *Buffer,
240 IN UINTN Length
241 );
242
243#endif
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette