|
OpenCore
1.0.5
OpenCore Bootloader
|
#include <Uefi.h>#include <Library/BaseMemoryLib.h>#include <Library/BaseOverflowLib.h>#include <Library/MemoryAllocationLib.h>#include <Library/OcDebugLogLib.h>#include <Library/OcFlexArrayLib.h>Go to the source code of this file.
Macros | |
| #define | INITIAL_NUM_ITEMS (8) |
Functions | |
| VOID | OcFlexArrayFreePointerItem (IN VOID *Item) |
| OC_FLEX_ARRAY * | OcFlexArrayInit (IN CONST UINTN ItemSize, IN CONST OC_FLEX_ARRAY_FREE_ITEM FreeItem OPTIONAL) |
| STATIC VOID * | InternalFlexArrayItemAt (IN CONST OC_FLEX_ARRAY *FlexArray, IN CONST UINTN Index) |
| STATIC VOID * | InternalFlexArrayAddItem (IN OUT OC_FLEX_ARRAY *FlexArray) |
| VOID * | OcFlexArrayAddItem (IN OUT OC_FLEX_ARRAY *FlexArray) |
| VOID * | OcFlexArrayInsertItem (IN OUT OC_FLEX_ARRAY *FlexArray, IN CONST UINTN InsertIndex) |
| VOID * | OcFlexArrayItemAt (IN CONST OC_FLEX_ARRAY *FlexArray, IN CONST UINTN Index) |
| VOID | OcFlexArrayFree (IN OC_FLEX_ARRAY **FlexArray) |
| VOID | OcFlexArrayDiscardItem (IN OUT OC_FLEX_ARRAY *FlexArray, IN CONST BOOLEAN FreeItem) |
| VOID | OcFlexArrayFreeContainer (IN OC_FLEX_ARRAY **FlexArray, IN VOID **Items, IN UINTN *Count) |
Auto-resizing array.
Copyright (c) 2021, Mike Beaton. All rights reserved.
SPDX-License-Identifier: BSD-3-Clause
Definition in file FlexArray.c.
| #define INITIAL_NUM_ITEMS (8) |
Definition at line 15 of file FlexArray.c.
| STATIC VOID * InternalFlexArrayAddItem | ( | IN OUT OC_FLEX_ARRAY * | FlexArray | ) |
Add an item in a flex array.
| [in,out] | FlexArray | A pointer to the flex array. |
Definition at line 86 of file FlexArray.c.
| STATIC VOID * InternalFlexArrayItemAt | ( | IN CONST OC_FLEX_ARRAY * | FlexArray, |
| IN CONST UINTN | Index ) |
Retrieve the Index-th item in a flex array.
| [in] | FlexArray | A pointer to the flex array. |
| [in] | Index | The Index-th item to be retrieved in FlexArray. |
Definition at line 61 of file FlexArray.c.
| VOID * OcFlexArrayAddItem | ( | IN OUT OC_FLEX_ARRAY * | FlexArray | ) |
Add new item to flex array, resizing if necessary. New item memory is zeroed.
| [in,out] | FlexArray | Flex array to modify. |
| Non-NULL | Address of item created. |
| NULL | Out of memory, in which case FlexArray->Items will be set to NULL, but FlexArray itself will still be allocated. |
Definition at line 136 of file FlexArray.c.
| VOID OcFlexArrayDiscardItem | ( | IN OUT OC_FLEX_ARRAY * | FlexArray, |
| IN CONST BOOLEAN | FreeItem ) |
Discard last item on flex array, optionally calling item free method.
| [in,out] | FlexArray | Flex array to modify. |
| [in] | FreeItem | Whether to call item free method. |
Definition at line 238 of file FlexArray.c.
| VOID OcFlexArrayFree | ( | IN OC_FLEX_ARRAY ** | FlexArray | ) |
Definition at line 211 of file FlexArray.c.
| VOID OcFlexArrayFreeContainer | ( | IN OC_FLEX_ARRAY ** | FlexArray, |
| IN VOID ** | Items, | ||
| IN UINTN * | Count ) |
Definition at line 257 of file FlexArray.c.
| VOID OcFlexArrayFreePointerItem | ( | IN VOID * | Item | ) |
Utility method to free memory pointed to by flex array item when the item is a single pointer, or when the only allocated memory is pointed to by a pointer which is the first element.
| [in] | Item | Flex array item to free. |
Definition at line 18 of file FlexArray.c.
| OC_FLEX_ARRAY * OcFlexArrayInit | ( | IN CONST UINTN | ItemSize, |
| IN CONST OC_FLEX_ARRAY_FREE_ITEM FreeItem | OPTIONAL ) |
Initialize flex array.
| [in] | ItemSize | Size of each item in the array. |
| [in] | FreeItem | Method to free one item, called once per item by OcFlexArrayFree; may be NULL if there is nothing pointed to by pool items which needs freeing. |
| Non-NULL | Flex array was created. |
| NULL | Out of memory. |
Definition at line 31 of file FlexArray.c.
| VOID * OcFlexArrayInsertItem | ( | IN OUT OC_FLEX_ARRAY * | FlexArray, |
| IN CONST UINTN | InsertIndex ) |
Insert new item at position in flex array, resizing array if necessary. New item memory is zeroed.
| [in,out] | FlexArray | Flex array to modify. |
| [in] | InsertIndex | Index at which to insert; must be less than or equal to current item count. |
| Non-NULL | Address of item created. |
| NULL | Out of memory, in which case FlexArray->Items will be set to NULL, but FlexArray itself will still be allocated. |
Definition at line 156 of file FlexArray.c.
| VOID * OcFlexArrayItemAt | ( | IN CONST OC_FLEX_ARRAY * | FlexArray, |
| IN CONST UINTN | Index ) |
Return item at index in array.
| [in,out] | FlexArray | Flex array to access. |
| [in,out] | Index | Index of item to return. |
| Non-NULL | Item. |
| NULL | Out-of-range item requested. This also ASSERTs. |
Definition at line 189 of file FlexArray.c.