OpenCore
1.0.4
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.