|
virtmem
virtual memory library for Arduino
|
Virtual memory allocator that uses a regular file (via stdio) as memory pool. More...
#include <stdio_alloc.h>
Public Member Functions | |
| StdioVAllocP (VPtrSize ps=VIRTMEM_DEFAULT_POOLSIZE) | |
| Constructs (but not initializes) the allocator. More... | |
Public Member Functions inherited from virtmem::VAlloc< Properties, StdioVAllocP< Properties > > | |
| VPtr< T, StdioVAllocP< Properties > > | alloc (VPtrSize size=sizeof(T)) |
| Allocates memory from the linked virtual memory allocator. More... | |
| void | free (VPtr< T, StdioVAllocP< Properties > > &p) |
| Frees a block of virtual memory. More... | |
| VPtr< T, StdioVAllocP< Properties > > | newClass (VPtrSize size=sizeof(T)) |
| Allocates memory and constructs data type. More... | |
| void | deleteClass (VPtr< T, StdioVAllocP< Properties > > &p) |
| Destructs data type and frees memory. More... | |
| VPtr< T, StdioVAllocP< Properties > > | newArray (VPtrSize elements) |
| Allocates and constructs an array of objects. More... | |
| void | deleteArray (VPtr< T, StdioVAllocP< Properties > > &p) |
| Destructs and frees an array of objects. More... | |
Public Member Functions inherited from virtmem::BaseVAlloc | |
| void | start (void) |
| Starts the allocator. More... | |
| void | stop (void) |
| Deinitializes the allocator. More... | |
| void | setPoolSize (VPtrSize ps) |
| Sets the total size of the memory pool. More... | |
| VPtrNum | allocRaw (VPtrSize size) |
| Allocates a piece of raw (virtual) memory. More... | |
| void | freeRaw (VPtrNum ptr) |
| Frees a memory block for re-usage. More... | |
| void * | read (VPtrNum p, VPtrSize size) |
| Reads a raw block of (virtual) memory. More... | |
| void | write (VPtrNum p, const void *d, VPtrSize size) |
| Writes a piece of raw data to (virtual) memory. More... | |
| void | flush (void) |
| Synchronizes all big memory pages. More... | |
| void | clearPages (void) |
| Synchronizes and clears all big memory pages. More... | |
| uint8_t | getFreeBigPages (void) const |
| uint8_t | getUnlockedSmallPages (void) const |
| Returns amount of small pages which are not locked. | |
| uint8_t | getUnlockedMediumPages (void) const |
| Returns amount of medium pages which are not locked. | |
| uint8_t | getUnlockedBigPages (void) const |
| Returns amount of big pages which are not locked. | |
| uint8_t | getSmallPageCount (void) const |
| Returns total amount of small pages. | |
| uint8_t | getMediumPageCount (void) const |
| Returns total amount of medium pages. | |
| uint8_t | getBigPageCount (void) const |
| Returns total amount of big pages. | |
| VirtPageSize | getSmallPageSize (void) const |
| Returns the size of a small page. | |
| VirtPageSize | getMediumPageSize (void) const |
| Returns the size of a medium page. | |
| VirtPageSize | getBigPageSize (void) const |
| Returns the size of a big page. | |
| VPtrSize | getPoolSize (void) const |
| Returns the size the memory pool. More... | |
| VPtrSize | getMemUsed (void) const |
| Returns total memory used. | |
| VPtrSize | getMaxMemUsed (void) const |
| Returns the maximum memory used so far. | |
| uint32_t | getBigPageReads (void) const |
| Returns the times big pages were read (swapped). | |
| uint32_t | getBigPageWrites (void) const |
| Returns the times big pages written (synchronized). | |
| uint32_t | getBytesRead (void) const |
| Returns the amount of bytes read as a result of page swaps. | |
| uint32_t | getBytesWritten (void) const |
| Returns the amount of bytes written as a results of page swaps. | |
| void | resetStats (void) |
| Reset all statistics. Called by start() | |
Additional Inherited Members | |
Public Types inherited from virtmem::VAlloc< Properties, StdioVAllocP< Properties > > | |
| using | VPtr = virtmem::VPtr< T, StdioVAllocP< Properties > > |
Static Public Member Functions inherited from virtmem::VAlloc< Properties, StdioVAllocP< Properties > > | |
| static VAlloc * | getInstance (void) |
| Returns a pointer to the instance of the class. More... | |
Protected Member Functions inherited from virtmem::BaseVAlloc | |
| void | writeZeros (VPtrNum start, VPtrSize n) |
| Writes zeros to raw virtual memory. Can be used to initialize the memory pool. More... | |
Virtual memory allocator that uses a regular file (via stdio) as memory pool.
This class is meant for debugging and can only be used on systems supporting stdio (e.g. PCs).
| Properties | Allocator properties, see DefaultAllocProperties |
|
inline |
Constructs (but not initializes) the allocator.
| ps | Total amount of bytes of the memory pool. |