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