OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
OcFlexArrayLib.h
Go to the documentation of this file.
1
6#ifndef OC_FLEX_ARRAY_LIB_H
7#define OC_FLEX_ARRAY_LIB_H
8
9#if !defined (OC_TRACE_FLEX)
10#define OC_TRACE_FLEX DEBUG_VERBOSE
11#endif
12
13#include <Uefi.h>
14#include <Library/OcStringLib.h>
16
21
27typedef
28VOID
30 IN VOID *Item
31 );
32
41VOID
43 IN VOID *Item
44 );
45
59 IN CONST UINTN ItemSize,
60 IN CONST OC_FLEX_ARRAY_FREE_ITEM FreeItem OPTIONAL
61 );
62
72VOID *
74 IN OUT OC_FLEX_ARRAY *FlexArray
75 );
76
87VOID *
89 IN OUT OC_FLEX_ARRAY *FlexArray,
90 IN CONST UINTN InsertIndex
91 );
92
102VOID *
104 IN CONST OC_FLEX_ARRAY *FlexArray,
105 IN CONST UINTN Index
106 );
107
113VOID
115 IN OUT OC_FLEX_ARRAY **FlexArray
116 );
117
124VOID
126 IN OUT OC_FLEX_ARRAY *FlexArray,
127 IN CONST BOOLEAN FreeItem
128 );
129
138VOID
140 IN OUT OC_FLEX_ARRAY **FlexArray,
141 IN OUT VOID **Items,
142 IN OUT UINTN *Count
143 );
144
145/*
146 Flex array.
147*/
149 //
150 // Allocated array.
151 //
152 VOID *Items;
153 //
154 // Item size.
155 //
156 UINTN ItemSize;
157 //
158 // Current used count.
159 //
160 UINTN Count;
161 //
162 // Current allocated count.
163 //
165 //
166 // Optional method to free memory pointed to from item.
167 //
169};
170
171/*
172 Forward declaration of OC_ASCII_STRING_BUFFER structure.
173*/
175
184 VOID
185 );
186
197EFI_STATUS
200 IN CONST CHAR8 *AppendString OPTIONAL
201 );
202
215EFI_STATUS
218 IN CONST CHAR8 *AppendString, OPTIONAL
219 IN CONST UINTN Length
220 );
221
233EFI_STATUS
234EFIAPI
237 IN CONST CHAR8 *FormatString,
238 ...
239 );
240
251CHAR8 *
253 IN OUT OC_ASCII_STRING_BUFFER **StringBuffer
254 );
255
264VOID
266 IN OUT OC_ASCII_STRING_BUFFER **StringBuffer
267 );
268
269/*
270 String buffer.
271*/
277
289 IN CONST VOID *String,
290 IN CONST CHAR16 Delim,
291 IN CONST OC_STRING_FORMAT StringFormat
292 );
293
294#endif // OC_FLEX_ARRAY_LIB_H
UINT64 Length
VOID OcFlexArrayFree(IN OUT OC_FLEX_ARRAY **FlexArray)
VOID * OcFlexArrayInsertItem(IN OUT OC_FLEX_ARRAY *FlexArray, IN CONST UINTN InsertIndex)
Definition FlexArray.c:156
CHAR8 * OcAsciiStringBufferFreeContainer(IN OUT OC_ASCII_STRING_BUFFER **StringBuffer)
OC_FLEX_ARRAY * OcFlexArrayInit(IN CONST UINTN ItemSize, IN CONST OC_FLEX_ARRAY_FREE_ITEM FreeItem OPTIONAL)
Definition FlexArray.c:31
VOID(* OC_FLEX_ARRAY_FREE_ITEM)(IN VOID *Item)
EFI_STATUS OcAsciiStringBufferAppendN(IN OUT OC_ASCII_STRING_BUFFER *Buffer, IN CONST CHAR8 *AppendString, OPTIONAL IN CONST UINTN Length)
VOID OcFlexArrayFreePointerItem(IN VOID *Item)
Definition FlexArray.c:18
VOID OcFlexArrayFreeContainer(IN OUT OC_FLEX_ARRAY **FlexArray, IN OUT VOID **Items, IN OUT UINTN *Count)
VOID * OcFlexArrayAddItem(IN OUT OC_FLEX_ARRAY *FlexArray)
Definition FlexArray.c:136
EFI_STATUS OcAsciiStringBufferAppend(IN OUT OC_ASCII_STRING_BUFFER *Buffer, IN CONST CHAR8 *AppendString OPTIONAL)
VOID * OcFlexArrayItemAt(IN CONST OC_FLEX_ARRAY *FlexArray, IN CONST UINTN Index)
Definition FlexArray.c:189
VOID OcFlexArrayDiscardItem(IN OUT OC_FLEX_ARRAY *FlexArray, IN CONST BOOLEAN FreeItem)
Definition FlexArray.c:238
EFI_STATUS EFIAPI OcAsciiStringBufferSPrint(IN OUT OC_ASCII_STRING_BUFFER *Buffer, IN CONST CHAR8 *FormatString,...)
OC_FLEX_ARRAY * OcStringSplit(IN CONST VOID *String, IN CONST CHAR16 Delim, IN CONST OC_STRING_FORMAT StringFormat)
Definition FlexString.c:15
OC_ASCII_STRING_BUFFER * OcAsciiStringBufferInit(VOID)
VOID OcAsciiStringBufferFree(IN OUT OC_ASCII_STRING_BUFFER **StringBuffer)
enum _OC_STRING_FORMAT OC_STRING_FORMAT
OC_TYPING_BUFFER_ENTRY Buffer[OC_TYPING_BUFFER_SIZE]
Definition OcTypingLib.h:42
OC_FLEX_ARRAY_FREE_ITEM FreeItem