virtmem
virtual memory library for Arduino
|
Virtual memory allocator class that uses SD card as virtual pool. More...
#include <sd_alloc.h>
Public Member Functions | |
SDVAllocP (VPtrSize ps=VIRTMEM_DEFAULT_POOLSIZE) | |
void | removeTempFile (void) |
Public Member Functions inherited from virtmem::VAlloc< Properties, SDVAllocP< Properties > > | |
VPtr< T, SDVAllocP< Properties > > | alloc (VPtrSize size=sizeof(T)) |
Allocates memory from the linked virtual memory allocator. More... | |
void | free (VPtr< T, SDVAllocP< Properties > > &p) |
Frees a block of virtual memory. More... | |
VPtr< T, SDVAllocP< Properties > > | newClass (VPtrSize size=sizeof(T)) |
Allocates memory and constructs data type. More... | |
void | deleteClass (VPtr< T, SDVAllocP< Properties > > &p) |
Destructs data type and frees memory. More... | |
VPtr< T, SDVAllocP< Properties > > | newArray (VPtrSize elements) |
Allocates and constructs an array of objects. More... | |
void | deleteArray (VPtr< T, SDVAllocP< 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, SDVAllocP< Properties > > | |
using | VPtr = virtmem::VPtr< T, SDVAllocP< Properties > > |
Static Public Member Functions inherited from virtmem::VAlloc< Properties, SDVAllocP< 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 class that uses SD card as virtual pool.
This class uses a file on an FAT formatted SD card as virtual memory pool. The SD FAT library is used to interface with the SD card and therefore has to be installed.
When the allocator is initialized (i.e. by calling start()) it will create a file called 'ramfile.vm' in the root directory. Existing files will be reused and resized if necessary.
Properties | Allocator properties, see DefaultAllocProperties |
|
inline |
Constructs (but not initializes) the SD FAT allocator.
ps | The size of the virtual memory pool |
|
inline |
Removes the temporary file used as virtual memory pool.