| /* This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| * |
| * Copyright 2018 (c) Stefan Profanter, fortiss GmbH |
| */ |
| |
| #ifndef OPEN62541_CUSTOM_MEMORY_MANAGER_H |
| #define OPEN62541_CUSTOM_MEMORY_MANAGER_H |
| |
| #include <open62541/types.h> |
| |
| _UA_BEGIN_DECLS |
| |
| /** |
| * Set memory limit for memory manager. |
| * This allows to reduce the available memory (RAM) for fuzzing tests. |
| * |
| * @param maxMemory Available memory in bytes |
| */ |
| void UA_EXPORT UA_memoryManager_setLimit(unsigned long long maxMemory); |
| |
| /** |
| * Extract the memory limit from the last four bytes of the byte array. |
| * The last four bytes will simply be casted to a uint32_t and that value |
| * represents the new memory limit. |
| * |
| * @param data byte array |
| * @param size size of the byte array |
| * @return 1 on success, 0 if the byte array is too short |
| */ |
| int UA_EXPORT UA_memoryManager_setLimitFromLast4Bytes(const uint8_t *data, size_t size); |
| |
| _UA_END_DECLS |
| |
| #endif /* OPEN62541_CUSTOM_MEMORY_MANAGER_H */ |